【发布时间】:2020-02-16 15:11:21
【问题描述】:
我训练了一个 CNN,但我无法使用它进行预测。 我所有的图片都在一个文件夹中
model = tf.keras.models.load_model("C:\Sid\CNNs\MoonRocks.h5")
import os
filepath = "C:\Sid\Projects\LunarMoonRocks\DataSet\Test Images"
for img in os.listdir(filepath):
img_path = os.path.join(filepath, img)
img_array=cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)
new_array=cv2.resize(img_array, (480, 480))
img_tbp = new_array.reshape(-1, 480, 480, 1)
prediction = model.predict([img_tbp])
此代码显示错误
TypeError: Value passed to parameter 'input' has DataType uint8 not in list of allowed values: float16, bfloat16, float32, float64
我尝试使用将图像类型更改为 float32
image = tf.image.decode_jpeg(img_tbp)
image = tf.cast(image, tf.float32)
但这显示了错误
ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type int).
如何让我的模型预测文件夹中的图像?
【问题讨论】:
-
能否提供完整的错误信息?
-
@HuwThomas 完整的错误消息长达数百行 TypeError Traceback(最近一次调用最后一次)
in 7 new_array=cv2.resize(img_array, ( 480, 480)) 8 img_tbp = new_array.reshape(-1, 480, 480, 1) ----> 9 prediction = model.predict([img_tbp]) 10 break 这是开始
标签: python python-3.x tensorflow machine-learning tf.keras