Keras ValueError:检查输入时出错:预期conv2d_1_输入有4个维度,但得到了具有形状(80、120、3)的数组

Keras ValueError:检查输入时出错:预期conv2d_1_输入有4个维度,但得到了具有形状(80、120、3)的数组,keras,Keras,我是一个刚刚开始学习深度学习的学习者。 我刚开始使用Keras。 我想实现SRCNN。 当我尝试导入图片以首先测试模型时,会出现此问题 问题: ValueError:检查输入时出错:预期conv2d_1_输入具有 4维,但得到了具有形状的数组(80、120、3) 我的代码如下: from PIL import Image import numpy as np from keras import Sequential from keras.layers import Conv2D, Activat

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

问题:

ValueError:检查输入时出错:预期conv2d_1_输入具有 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())

要提供单个输入图像,您需要包括samples维度(第一个维度),因此需要添加值为1的维度:

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

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

因此,您的意思是:形状(x,80,120,3),其中x表示输入图像数量的维数,我的数组是否应该在顶部增加x的维数?只需添加input_image_数组=input_image_数组[np.newaxis,:,:,:]并成功,谢谢!