python - 是否可以在 Keras 中实现最大池化层,以提供给定池大小的最大 n 值?
问题描述
我有一个多维时间序列数据集,它具有以下形状 (n_samples, 512, 9),其中 512 是时间步长,9 是通道。
在具有 64 个内核的第一个 1D CNN 层之后,我的输出形状是 (n_samples, 512, 64)。现在我想将我的输入输入到下一层,这是一个 LSTM,形状为 (n_samples, 384, 64)。
如果我有一个 Maxpool 层可以从 4 的池大小返回最大 3 个值,但可以在 Keras 中实现这一点吗?
解决方案
你可能可以用一个keras.layers.Lambda
层来解决这个问题,后端是tf.nn.in_top_k
. 请注意,处理与 略有不同,tf.nn.top_k
因为如果所有值都具有相同的值,则它不会合并!
现在,您可以自己定义一个返回最高k
值的函数(并且这样做有些效率),然后将其作为函数传递给 lambda 层。
遗憾的是,我与 Keras 合作的时间不足以输入特定的代码,但也许这足以为您指明正确的方向。此外, TensorFlow也有一个类似的线程。
推荐阅读
- javascript - 如何使用 React360 使用 VRbutton 运行两个功能?
- react-native - 我可以在导出功能中使用 this.props.navigation.state.params 吗?
- javascript - 如何将对象数组作为 redux API 请求传递?
- python - 如何修复 pyspark 中的 takeUpToNumLeft StopIteration?
- tensorflow - 来自正态分布和柯西分布的独立分布
- python - 如何解决“找不到与平台无关的库”
" 在 Python 和 buildozer 中 - ios - 如何根据背景颜色将图像附加到数组中?
- python - Pandas DataFrame 因 AttributeError 失败:“NoneType”对象没有属性“键”
- server - 如何在共享服务器中安装 libsodium 1.0.18
- jquery - 填充一个对象并通过 jquery ajax 发布它