首页 文章

Keras Convolution2d层输入形状

提问于
浏览
1

我基本上试图构建一个深层模型,其中包含许多卷积2d层,然后是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)Blockquote

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

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]))
    

相关问题