我正在使用 TensorFlow 构建一个用于音频的 1D 模型,但是在模型中的第二个 MaxPool1D 期间我遇到了输入形状的问题。
问题就在这里,在这个池化之后:
x = Convolution1D(32, 3, activation=relu, padding='valid')(x)
x = MaxPool1D(4)(x)
我收到此错误:
ValueError:输入形状为 [?,1,1,32] 的“max_pooling1d_5/MaxPool”(操作:“MaxPool”)从 1 中减去 4 导致的负尺寸大小。
我试图重塑x(这是一个张量),但我认为我的方式不对。
在同一个模型中,在此之前,我有几个卷积层和一个工作正常的 maxpooling。
有人有建议吗?谢谢
MaxPool1D
层输入中的步数小于池大小。
在错误中,它说...input shapes: [?,1,1,32]
,这意味着来自Convolution1D
图层的输出具有 shape [1,32]
。它需要至少 4 个步骤才能用作MaxPool1D(4)
层的输入,因此最小大小为[4,32]
.
你可以继续往回走。例如,该Convolution1D
层将通过 kernel_size-1=2 减小步长。这意味着Convolution1D
层的输入至少需要 4+2=6 步,这意味着形状至少为[6,?]
。继续到输入层,您会发现输入大小太小。
您需要更改架构以允许输入大小,或者,如果适用,更改输入大小。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句