检查输入时出错:预期conv2d_17_input具有4维,但数组的形状为(28,28,1)

问题描述 投票:0回答:1

我已经训练了MNIST的手写数字识别模型。第一个Conv2D的输入形状为(28,28,1)训练后,我想预测一个数字的下载图像。图像的形状为(1024,791,3),应用以下代码后,我将图像调整为(28,28,1)的大小,并调用了model.predict():

resized_image = cv2.resize(image, (28, 28))
#resized_image = tf.image.resize(image, size = (28,28))
resized_image = resized_image / 225.0
resized_image = resized_image[:,:,:1] 
prediction = model.predict(resized_image)
#prediction = model.predict(resized_image, batch_size = 1, verbose = 1, steps = 1)
print(labels[np.argmax(prediction)])

但是我遇到以下错误:

检查输入时出错:预期conv2d_17_input具有4维,但数组的形状为(28,28,1)

python tensorflow keras predict
1个回答
0
投票

您没有显示模型,但是通常,您需要考虑批次。因此,您的输入必须为[batch_size, width, height, channel]。如果只有一张图像,则必须设置batch_size=1,在这种情况下,请设置为[1, 28, 28, 1]

还要确保您输入的是tf.tensor

希望它对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.