Keras LocallyConnected1D 层

nik*_*nak 5 python deep-learning keras

我有一个非常具体的问题想要解决。这看起来很简单,但我无法在 keras 中实现它。例如,我有一个 input_dim = 300。我必须在其上应用大小为 100、步幅为 100 的过滤器。因此,基本上独立使用向量的 100 列中的每一列,然后对每个列应用激活。所以我有 3 个输出,然后将它们连接到一个完全连接的层,我知道该怎么做。我尝试谷歌搜索并参考 Keras 文档,但对于参数的值应该是什么还不清楚。如果问题有点含糊,我深表歉意。 它看起来像这样

我还想补充一点,这是我能想到的获得图中提到的配置的一种方法。类似 3 个感知器连接形成一层,然后连接到另一个密集层。但可能还有其他方法。

nik*_*nak 2

显然,我的输出形状完全错误。一旦你知道过滤器的大小为 100 并且步幅的大小为 100,那么很明显,对于 keras 来说,输出激活层的大小也很明显是 3。另一方面,第一个参数可能(我还没有)如果每个输入神经元本身是多维的,则处理滤波器的深度。类似于 RGB 值之类的东西。现在为什么它仍然被称为 1D,我不确定。可能是因为神经元的排列仍然是一维的。但这是你如何做到的。

model.add(LocallyConnected1D(1, 100, strides=100, input_shape=(300, 1)))
Run Code Online (Sandbox Code Playgroud)