猿问

多个 Conv1D 层:'conv1d_2/convolution/Conv2D 从 1 中减去

我对卷积网络还是很陌生。我正在尝试在 Keras 中实现多个 Conv1D 层。不幸的是,在第一层之后,任何后续层都会抛出以下错误:


tensorflow.python.framework.errors_impl.InvalidArgumentError: Negative dimension size caused by subtracting 8 from 1 for 'conv1d_2/convolution/Conv2D' (op: 'Conv2D') with input shapes: [?,1,1,32], [1,8,32,32].

我曾认为这可能与由于步幅而减小尺寸有关,但在设置strides=1两条 Conv1D 线后它仍然不起作用。这是我的代码。如果 for 循环运行,则抛出错误。


#State branch

x = Conv1D(layerSize,8,strides=1)(inputState)

x = Activation("relu")(x)


for l in range(conv1Layer-1):

    x = Conv1D(layerSize,8,strides=1)(x)

    x = Activation("relu")(x)


x = MaxPooling1D(pool_size=1)(x)

x = Flatten()(x)

x = Model(inputs=inputState, outputs=x)

任何帮助或建议将不胜感激。谢谢!


泛舟湖上清波郎朗
浏览 255回答 2
2回答

慕容708150

如果您不希望卷积后长度发生变化,请考虑padding='same'在 的构造函数中指定Conv1d。有关更多信息,请参阅文档。

宝慕林4294392

kernel_size 必须在第一层之后更改为 1。编辑:或者填充必须设置为相同!谢谢。
随时随地看视频慕课网APP

相关分类

Python
我要回答