我正在使用CIFAR数据集构建一个深度着色模型。我已经将RGB图像转换为Lab颜色空间。现在,输入X_train只需要Lab颜色空间的灰度部分,而输出标签则是彩色部分。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)
回答:
您需要从输入形状中移除50000。因为您已经在model.fit()中指定了批量大小。
批量大小被视为维度的一部分。在您的情况下,它将变为(128,50000,32,32,1)。
显然,您不会一次性训练50000个样本。