TensorFlow 1D 模型,MaxPooling 的错误输入形状

我正在使用 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。

有人有建议吗?谢谢


POPMUISE
浏览 214回答 1
1回答

白衣非少年

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,?]。继续到输入层,您会发现输入大小太小。您需要更改架构以允许输入大小,或者,如果适用,更改输入大小。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python