【发布时间】:2017-12-20 07:11:16
【问题描述】:
当我在 test_set (images) 上使用 model.predict_generator() 时,我得到不同的预测,当我在同一个 test_Set 上使用 mode.predict() 时,我得到一组不同的预测。
为了使用model.predict_generator,我按照以下步骤创建了一个生成器:
-
Imagedatagenerator(这里没有参数)并使用了 flow_from_directory 与shuffle = False. - 没有增强或预处理
images(normalization,zero-centering etc)训练模型时。
我正在研究一个涉及狗和猫的二元分类问题(来自 kaggle)。在测试集上,我有 1000 张猫图像。
通过使用model.predict_generator(),我可以获得 87% accuracy()i.e 870 图像被正确分类。
但是在使用 model.predict 时,我得到了 83% 的准确率。
这很令人困惑,因为两者都应该给出相同的结果,对吧? 在此先感谢:)
【问题讨论】:
-
你使用的是相同的模型吗?你也可以分享你的代码吗?
-
你确定 predict_generator() 只产生一个纪元吗?由于 Keras 2 生成器是基于步骤的(请参阅 fchollet 在此处github.com/fchollet/keras/issues/5818 的评论),因此您的预测中可能有不同数量的样本。您还可以重置生成器以确保始终从示例 #0 开始。
-
@petezurich 我不太明白你的意思你能提供一个示例代码吗?
-
@AbhijitBalaji 我认为如果您提供代码会更容易。 :0) 现在我们只能猜测出什么问题了。除此之外:您可以在开始预测之前使用
your_image_generator.reset()重置生成器。
标签: python keras prediction