使用Keras进行多类图像分类的多重预测

时间:2018-04-19 04:00:18

标签: python-3.x machine-learning keras classification convolutional-neural-network

我在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()能够处理它,因为它需要和数组来预测吗?

1 个答案:

答案 0 :(得分:1)

Model.predict_proba()(真正predict()synonym)接受批量输入。来自文档:

  

为输入样本生成类概率预测。   输入样本将逐批处理。

您只需要加载多个图像并将它们粘合在一个numpy数组中。通过展开0维,您的代码已在test_image中使用了1批。为了完成图片,还有Model.predict_on_batch()方法。

要加载一批测试图像,您可以使用image.list_picturesImageDataGenerator.flow_from_directory()(与Model.predict_generator()方法兼容,请参阅documentation中的示例)。