TensorFlow 2.9.1中model.predict传入张量数组触发ValueError的解决
解决model.predict()输入张量数量不匹配的问题
错误原因
image_dataset_from_directory返回的是包含图像张量+标签张量的元组数据集,直接把整个数据集传给model.predict()时,模型会误将图像和标签当成两个输入,但你的模型只需要1个图像输入,因此触发ValueError。
解决方法
有两种直接可行的方式:
处理整个数据集,只保留图像部分
使用map方法提取数据集中的图像张量,忽略标签:# 假设你的数据集变量名为ds image_only_dataset = ds.map(lambda img, label: img) predictions = model.predict(image_only_dataset)直接传入单独的图像batch
如果你已经拿到了单独的image_batch(如你提供的形状为(7, 224, 224, 3)的张量),直接把这个张量传给predict即可:predictions = model.predict(image_batch)
验证要点
确认传入的图像张量形状和模型输入层的形状一致(你的模型输入层应该接受(224, 224, 3)的单张图像,批量输入则是(None, 224, 224, 3)),避免因形状不匹配产生新的错误。
内容的提问来源于stack exchange,提问作者Jaturong
相关产品推荐
相关产品推荐

