【问题标题】:ResNet: ValueError: Input 0 is incompatible with layer model_7ResNet: ValueError: Input 0 is in compatible with layer model_7
【发布时间】:2021-05-05 14:44:22
【问题描述】:

我已经训练了我的 ResNet101V2 模型 (keras) 并保存了模型。在加载模型并尝试对新图像进行分类时,我不断收到错误消息:ValueError: Input 0 is incompatible with layer model_7: expected shape=(None, 255, 255, 3), found shape=(None, 255, 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, 255, 3)

prediction = model.predict(resized_img_np) # <========= ERROR

【问题讨论】:

    标签: python keras classification resnet


    【解决方案1】:

    您需要添加一个额外的维度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)
    

    【讨论】:

      【解决方案2】:

      由于模型是按批次训练的,因此您必须为单个样本添加 1 的批次值, 错误表明大小应该是:

      (None, 255, 255, 3)
      

      None 显示不同的批量大小。

      您可以通过添加“1”作为输入图像的第一个维度来简单地解决此问题,表明您将只对一个图像进行分类。

      形状而不是(255, 255, 3) 的位置:

      import numpy as np
      
      resized_img_np = cv2.resize(np.array(img_np), (255, 255))
      resized_img_np = np.expand_dims(resized_img_np, axis=0)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-19
        • 2017-10-26
        • 1970-01-01
        • 2022-11-06
        • 2018-05-19
        • 2017-07-28
        相关资源
        最近更新 更多