我基本上是在尝试构建一个深层模型,其中包含许多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) 块引用
但我遵循(样本,渠道,行,列)规范。为什么会这样?
答案 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]))