我想知道如何将以前看不见的图像应用到之前保存的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)
ValueError: Error when checking : expected dense_1_input to have 2 dimensions, but got array with shape (1, 100, 100, 3)
答案 0 :(得分:0)
错误表示网络的输入形状与图像的形状不匹配。您的网络的第一层似乎是dense
图层,它是一个完全连接的图层,它希望输入的形状为(batch_size, num_of_neurons_in_the_bottom)
,但您的给它一个形状为(batch_size, height, width, channels)
的图像。以下是解决问题的清单:
model.summary()
的值是多少?您确定网络的输入形状是(100, 100, 3)
吗?第一层是卷积吗?dense
(完全连接),请检查有关如何将图像输入模型的培训代码 - 也许您的图像应该重新塑造或以某种方式预处理?