我有一个多维时间序列数据集,它具有以下形状(n_samples,512,9),其中512是时间步长,9是通道 .
在具有64个内核的第一个1N CNN层之后,我的输出形状是(n_samples,512,64) . 现在我想让我的输入到下一层,这是一个LSTM形状(n_samples,384,64) .
如果我有一个Maxpool图层从池大小为4返回最多3个值,但是可以在Keras中实现它吗?
您可以使用keras.layers.Lambda层解决此问题,将后端解决为tf.nn.in_top_k . 请注意handling is somewhat different来自 tf.nn.top_k ,因为如果所有值都具有相同的值,则它不会合并!
tf.nn.top_k
现在你可以自己定义一个返回顶部 k 值的函数(并且这样做有效),然后将它作为函数传递给lambda层 .
k
令人遗憾的是,我没有足够的工作与Keras输入特定的代码,但也许这足以帮助您指出正确的方向 . 此外,还存在类似的线程for TensorFlow specifically .
1 回答
您可以使用keras.layers.Lambda层解决此问题,将后端解决为tf.nn.in_top_k . 请注意handling is somewhat different来自
tf.nn.top_k
,因为如果所有值都具有相同的值,则它不会合并!现在你可以自己定义一个返回顶部
k
值的函数(并且这样做有效),然后将它作为函数传递给lambda层 .令人遗憾的是,我没有足够的工作与Keras输入特定的代码,但也许这足以帮助您指出正确的方向 . 此外,还存在类似的线程for TensorFlow specifically .