ValueError:检查输入时出错:预期conv2d_1_input具有4个维,但数组的形状为(80,120,3)

时间:2019-03-05 10:51:56

标签: keras

我是一名学习者,刚刚开始学习深度学习。 我刚刚开始使用Keras。 我想实现SRCNN。 当我尝试导入图片以首先测试模型时,会发生此问题。

问题:

  

ValueError:检查输入时出错:预期conv2d_1_input具有   4维,但数组的形状为(80,120,3)

我的代码如下:

from PIL import Image
import numpy as np
from keras import Sequential
from keras.layers import Conv2D, Activation

input_image = Image.open('../../res/image/120x80/120x80 (1).png')
input_image_array = np.array(input_image)

model = Sequential()

model.add(Conv2D(64, (9, 9), data_format='channels_last', activation='relu', input_shape=(80, 120, 3)))
model.add(Conv2D(35, (1, 1), data_format='channels_last', activation='relu', input_shape=(80, 120, 3)))
model.add(Conv2D(1, (5, 5), data_format='channels_last', input_shape=(120, 80, 3)))
model.compile(loss='mean_squared_error', optimizer='sgd')
model.fit(input_image_array, input_image_array)
print(model.summary())

1 个答案:

答案 0 :(得分:0)

要提供单个输入图像,您需要包括样本尺寸(第一个),因此您需要添加尺寸值为1的尺寸:

input_image_array = np.array(input_image)
input_image_array = input_image_array[np.newaxis, :, :, :]

这会将形状更改为(1,80,120,3),对应于一个图像样本。