Keras Convolution2d层输入形状

时间:2017-01-10 13:31:58

标签: deep-learning theano keras keras-layer

我基本上是在尝试构建一个深层模型,其中包含许多convolution2d层,然后按以下方式进行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))例外:检查模型输入时出错:预期卷积2d_input_1有4个维度但是得到了数组   形状(8000,180,54)   块引用

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

1 个答案:

答案 0 :(得分: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]))