如何将以前看不见的图像应用于以前保存的模型?

时间:2018-04-16 15:33:19

标签: python computer-vision deep-learning keras conv-neural-network

我想知道如何将以前看不见的图像应用到之前保存的CNN模型,看看它是如何分类的?

代码(我的尝试)

from keras.models import load_model
from keras.preprocessing import image
import numpy as np

img_path = '/Users/eoind/code/1.jpg'

model = load_model('food.h5')
model.summary()

img = image.load_img(img_path, target_size=(100,100))
image = image.img_to_array(img)
image = np.expand_dims(image, axis=0)
print(image.shape)

images = np.vstack([image])

print("classifying images..")
image_class = model.predict_classes(images)
print(image_class)

iPython控制台错误

ValueError: Error when checking : expected dense_1_input to have 2 dimensions, but got array with shape (1, 100, 100, 3)

1 个答案:

答案 0 :(得分:0)

错误表示网络的输入形状与图像的形状不匹配。您的网络的第一层似乎是dense图层,它是一个完全连接的图层,它希望输入的形状为(batch_size, num_of_neurons_in_the_bottom),但您的给它一个形状为(batch_size, height, width, channels)的图像。以下是解决问题的清单:

  • 模型是否至少装满了?如果在加载过程中发生上述错误,则表明您的模型已损坏(可能未正确保存)。如果没有,请继续阅读清单......
  • 在编程中,总是输出变量的值以进行调试! model.summary()的值是多少?您确定网络的输入形状是(100, 100, 3)吗?第一层是卷积吗?
  • 如果第一层是dense完全连接),请检查有关如何将图像输入模型的培训代码 - 也许您的图像应该重新塑造或以某种方式预处理?