输入0与图层conv2d_121不兼容:预期ndim = 4,发现ndim = 5

时间:2018-05-19 14:29:59

标签: python machine-learning keras deep-learning conv-neural-network

我正在使用CIFAR数据集构建深色着色模型。我已将rgb图像转换为实验室。现在,输入X_train只需要实验室的灰度部分,而输出标签是彩色部分。 X_train维度= [50000,32,32],Y_train = [50000,32,32,2]。我在训练数据集时出于某种原因得到了这个尺寸误差。

model = Sequential()
    model.add(Conv2D(64, (3, 3), activation='relu', padding='same',input_shape = (50000,32,32,1)))
    model.add(Conv2D(64, (3, 3), activation='relu', padding='same', strides=2))
    model.add(Conv2D(128, (3, 3), activation='relu', padding='same'))

    model.add(Conv2D(512, (3, 3), activation='relu', padding='same'))
    model.add(Conv2D(256, (3, 3), activation='relu', padding='same'))
    model.add(Conv2D(128, (3, 3), activation='relu', padding='same'))
    #model.add(UpSampling2D((2, 2)))
    model.add(Conv2D(64, (3, 3), activation='relu', padding='same'))
    #model.add(UpSampling2D((2, 2)))
    model.add(Conv2D(32, (3, 3), activation='relu', padding='same'))
    model.add(Conv2D(2, (3, 3), activation='tanh', padding='same'))
    #model.add(UpSampling2D((2, 2)))

    model.compile(optimizer='rmsprop', loss='mse')
    model_info = model.fit(X_train, Y_train, 
                           batch_size=128, epochs=200)

1 个答案:

答案 0 :(得分:0)

您需要从输入形状中删除50000。正如您已在model.fit()中指定批量大小。

维度中考虑批量大小。在你的情况下它会成为 (128,50000,32,32,1)。

肯定你不会同时接受50000训练。