【问题标题】:Keras Convolution2d layer input shapeKeras Convolution2d 层输入形状
【发布时间】:2017-05-25 00:25:13
【问题描述】:

我基本上是在尝试构建一个深度模型,该模型由许多卷积层和 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) 块引用

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

【问题讨论】:

    标签: deep-learning theano keras keras-layer


    【解决方案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]))
    

    【讨论】:

    • 我的输入数据是文本。感谢您的建议,我将尝试它是否能解决问题。
    猜你喜欢
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多