我正在使用 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。有人有建议吗?谢谢
1 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
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,?]
。继续到输入层,您会发现输入大小太小。
您需要更改架构以允许输入大小,或者,如果适用,更改输入大小。
添加回答
举报
0/150
提交
取消