是否可以在 Keras 中实现最大池化层,以提供给定池大小的最大 n 个值?



我有一个多维时间序列数据集,其形状如下(n_samples,512,9(,其中512是时间步长,9是通道。

在第一个具有 64 个内核的 1D CNN 层之后,我的输出形状是 (n_samples, 512, 64(。现在我想将我的输入输入到下一层,即形状为 (n_samples、384、64( 的 LSTM。

如果我有一个 Maxpool 层,该层从池大小 4 中返回最多 3 个值,则可以实现这一点,但是是否可以在 Keras 中实现这一点?

您可能可以使用keras.layers.Lambda层和后端来解决此问题tf.nn.in_top_k。请注意,处理方式与tf.nn.top_k有些不同,因为如果所有值都具有相同的值,它不会合并!

现在,您可以为自己定义一个返回前k个值的函数(并这样做( 有点有效(,然后将其作为函数传递给 lambda 层。

遗憾的是,我对 Keras 的工作还不够多,无法键入特定的代码,但也许这足以帮助您指明正确的方向。 此外,TensorFlow也存在类似的线程。

最新更新