Keras的model.predict()给出了带有softmax激活层的二进制输出



我用40个类训练了Keras的InceptionResNetV2,并使用model.eevaluate((进行了测试;一切都很好。但是,当我尝试将model.prdictive((与单个图像一起使用时,我会得到类似的输出

CCD_ 1而不是概率分布。

用于错误再现的Colab:https://colab.research.google.com/drive/1BTuNdwQK5CqaggBVAfJ1cTTR2Qp0GH6v?usp=sharing

模型体系结构

21是预测类的索引,您有40个类。如果你有一个类的列表,即class_list[etc..],则该类为class_list[21]

使用Keras的内置函数预处理测试图像对我的情况有所帮助。

from keras.applications.inception_resnet_v2 import preprocess_input 
img_batch = preprocess_input(img_batch)

使用model.predict_proba而不是model.predict,如下所示:

predict_proba(image, batch_size = 32, verbose = 1)

最新更新