python - 在 imageai 中,您如何解释保存的模型的名称,例如“model_ex-077_acc-0.941176.h5”?
问题描述
我已经在 imageai 自定义预测上实现了readthedocs中的标准代码,使用我自己的具有两个类的图像——大约 700 个图像在训练中,150 个在测试中,并且得到了一个名为“model_ex-077_acc-0.941176.h5”的模型。
这是否意味着我的模型在测试数据上的准确率为 94.1%?
我问是因为当我尝试预测我的训练(或测试)数据时,再次使用标准代码,模型总是以 100% 的概率预测一个类,我不知道为什么我的模型是 94.1% 准确.
我实现的标准代码(在具有 tensorflow==2.4.0 和 imageai==2.1.6 以及所有依赖项的虚拟环境中)进行训练是:
from imageai.Classification.Custom import ClassificationModelTrainer
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
model_trainer = ClassificationModelTrainer()
model_trainer.setModelTypeAsInceptionV3()
model_trainer.setDataDirectory(dir_path+"/idenprof")
model_trainer.trainModel(num_objects=2, num_experiments=100, enhance_data=True, batch_size=32, show_network_summary=True)
并预测
from imageai.Classification.Custom import CustomImageClassification
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
imageList = os.listdir(dir_path+"/idenprof/test/circle/")
prediction = CustomImageClassification()
prediction.setModelTypeAsResNet50()
prediction.setModelPath("model_ex-077_acc-0.941176.h5")
prediction.setJsonPath("model_class.json")
prediction.loadModel(num_objects=2)
for i in imageList:
predictions, probabilities = prediction.classifyImage("idenprof/test/circle/"+i)
for eachPrediction, eachProbability in zip(predictions, probabilities):
print(eachPrediction , " : " , eachProbability)
我的两个类是“brick”和“circle”,输出始终是“brick”,概率为 100%。
解决方案
推荐阅读
- javascript - 如何在函数参数中指定通用键约束
- c# - 为获取/设置私有值创建单独的公共函数有什么意义?
- python-2.7 - 如何在python 2.7的函数声明中的for循环内的if语句中获取变量的值
- html - 如何添加包含我的产品列表中所有元素的下拉列表
- sql-server - 清理骗局并保留最大数据
- javascript - Vuex状态的中间件不更新状态?
- java - 从日期范围获取记录
- vb.net - 在 Visual Studio 中调试 DLL 时看不到本地类变量..?
- apache-spark - 如何迭代“火花”数据框的列?
- javascript - Div Slider 和 Display:Table-Cell 的 JS/CSS 问题