0

我基本上是在尝试构建一个深度模型,该模型由许多卷积层组成,然后是 maxpooling 2d,如下所示:

model.add(Convolution2D(128, 54, 7, input_shape=(1, 54, 180)))
model.add(MaxPooling2D(pool_size=(1, 3)))

model.add(Convolution2D(128, 1, 7))
model.add(MaxPooling2D(pool_size=(1, 3)))

但是,我收到以下错误:

文件“/home/user/anaconda2/lib/python2.7/site-packages/keras/engine/training.py”,第 100 行,在 standardize_input_data str(array.shape)) 异常:检查模型输入时出错:预期的 convolution2d_input_1有 4 个维度,但得到了形状为 (8000, 180, 54) 的数组

但我遵循(样本、通道、行、列)规范。为什么会这样?

4

1 回答 1

1

您的输入数据的形状似乎错误。您应该打印出要输入网络的数据的形状。

看起来您的数组是灰色输入图像,它们通常只使用 2 维,因为它们只有 1 个通道。因此,np 数组是在没有第三维的情况下排序的。通常,您必须通过使用 np.reshape 或以其他方式分配数组来添加它。当我收到像您这样的错误消息时,我会尝试:

X # training data
X = np.transpose(X, (0, 2, 1))
X = np.reshape(X, (X.shape[0], 1, X.shape[1], X.shape[2]))
于 2017-01-10T14:14:12.447 回答