我已经训练了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)
您没有显示模型,但是通常,您需要考虑批次。因此,您的输入必须为[batch_size, width, height, channel]
。如果只有一张图像,则必须设置batch_size=1
,在这种情况下,请设置为[1, 28, 28, 1]
。
还要确保您输入的是tf.tensor
。
希望它对您有帮助。