我在Keras训练了一个CNN
的文件夹(两种蜜蜂)。我有第二个文件夹,其中包含未标记的bees
图像用于预测。
我能够预测单张图片(如下面的代码所示)。
from keras.preprocessing import image
test_image = image.load_img('data/test/20300.jpg')
test_image = image.img_to_array(test_image)
test_image = np.expand_dims(test_image, axis = 0)
prob = classifier.predict_proba(test_image)
结果:
prob
Out[214]: array([[1., 0.]], dtype=float32)
我希望能够预测所有图像(大约300张)。
有没有办法加载和预测批量中的所有图像?并且predict()
能够处理它,因为它需要和数组来预测吗?
答案 0 :(得分:1)
Model.predict_proba()
(真正predict()
为synonym)接受批量输入。来自文档:
为输入样本生成类概率预测。 输入样本将逐批处理。
您只需要加载多个图像并将它们粘合在一个numpy数组中。通过展开0维,您的代码已在test_image
中使用了1批。为了完成图片,还有Model.predict_on_batch()
方法。
要加载一批测试图像,您可以使用image.list_pictures
或ImageDataGenerator.flow_from_directory()
(与Model.predict_generator()
方法兼容,请参阅documentation中的示例)。