繁体   English   中英

多个Conv1D图层:由于'conv1d_2 / convolution / Conv2D从1中减去8而导致的负尺寸大小

[英]Multiple Conv1D Layers: Negative dimension size caused by subtracting 8 from 1 for 'conv1d_2/convolution/Conv2D

关于卷积网络,我仍然相当新手。 我正在尝试在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].

我原以为它可能与由于步幅导致的尺寸减小有关,但是在为两个Conv1D线设置strides strides=1之后它仍然不起作用。 这是我的代码。 如果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)

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

如果您不想在卷积后更改长度,请考虑在Conv1d的构造函数中指定padding='same'

有关详细信息,请参阅文档

必须在第一层之后将kernel_size更改为1。

编辑:或填充必须设置为相同! 谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM