我是一名学习者,刚刚开始学习深度学习。 我刚刚开始使用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())
答案 0 :(得分:0)
要提供单个输入图像,您需要包括样本尺寸(第一个),因此您需要添加尺寸值为1的尺寸:
input_image_array = np.array(input_image)
input_image_array = input_image_array[np.newaxis, :, :, :]
这会将形状更改为(1,80,120,3),对应于一个图像样本。