如何解决ResNet:ValueError:输入 0 与层 model_7 不兼容
我已经训练了我的 ResNet101V2 模型 (keras) 并保存了模型。在加载模型并尝试对新图像进行分类时,我不断收到错误消息:ValueError: Input 0 is incompatible with layer model_7: expected shape=(None,255,3),found shape=(None,3)
这是我的代码:
load_path = 'path to my model'
model = keras.models.load_model(load_path)
image_path = 'path to my image'
img_np = cv2.imread(image_path,cv2.IMREAD_COLOR)
resized_img_np = cv2.resize(img_np,(255,255))
print(resized_img_np.shape) # <============= PRINTS (255,3)
prediction = model.predict(resized_img_np) # <========= ERROR
解决方法
您需要添加额外的维度 to match with batch size
。使用 np.expand_dims 向调整后的图像添加维度并传递给模型进行预测。
resized_img_np = np.expand_dims(resized_img_np,axis=0)
prediction = model.predict(resized_img_np)
,
由于模型是按批次训练的,因此您必须为单个样本添加批次值 1, 错误表明大小应该是:
CREATE TABLE "Ingredient" (
"ingredient_id" INTEGER,"amount" NUMERIC NOT NULL,"unit_size" TEXT,"prep_type" TEXT,"food_id" INTEGER NOT NULL,"recipe_id" INTEGER NOT NULL,"unit_system" TEXT NOT NULL,PRIMARY KEY("ingredient_id" AUTOINCREMENT))
其中 (None,255,3)
显示不同的批次大小。
您可以通过添加“1”作为输入图像的第一个维度来简单地解决这个问题,这表明您将只对一个图像进行分类。
形状而不是 None
的位置:
(255,3)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。