Python CNN没有预测图像的类别

Python CNN没有预测图像的类别,python,python-3.x,tensorflow,cnn,Python,Python 3.x,Tensorflow,Cnn,我用CNN制作了一个脑肿瘤检测模型,当我试图通过预测样本图像的类别来测试样本图像时,出现了一个错误 根据误差,模型的输入应该有一个额外的维度。我如何预测图像的类别。给出错误的代码段是: best_model.predict(image) 错误如下 ValueError:layer zero\u padding2d的输入0与 层:预期ndim=4,发现ndim=3。收到完整形状:[无,240, 3] 可以在警告中看到预期的形状: WARNING:tensorflow:Model was cons

我用CNN制作了一个脑肿瘤检测模型,当我试图通过预测样本图像的类别来测试样本图像时,出现了一个错误

根据误差,模型的输入应该有一个额外的维度。我如何预测图像的类别。给出错误的代码段是:

best_model.predict(image)
错误如下

ValueError:layer zero\u padding2d的输入0与 层:预期ndim=4,发现ndim=3。收到完整形状:[无,240, 3]

可以在警告中看到预期的形状:

WARNING:tensorflow:Model was constructed with shape (None, 240, 240, 3) for input Tensor("input_1_1:0", shape=(None, 240, 240, 3), dtype=float32), but it was called on an input with incompatible shape (None, 240, 3).
我尝试了解决方案,但仍然出现相同的错误:
所以问题是模型假设第一维是批的数量。在您的案例中,它“认为”您有240个批次,其中每个图像的大小
(240,3)

您需要做的是在传递到模型之前展开图像的尺寸。你可以用

例如:

image = tf.zeros([240, 240, 3])
tf.expand_dims(image, axis=0)

这将为图像添加一个批次维度,并且模型可以正确操作它。

图像的形状是什么?它似乎不是模型的有效尺寸expecting@DavidS图像取自用于训练模型的同一数据集。图像的形状是:(240240,3)@nanan我看了你添加到问题中的图像,你应该做
image=tf.expand_dims(image,axis=0)
看文档,它返回一个新的展开张量