我正在尝试使图像分类器正常工作。到目前为止,该模型似乎确实可以正常工作,但是现在每次我想要测试图像以查看图像是否被正确识别时,我都必须进行整个训练。我对此很陌生,但我想应该有另一种方法可以只对图像进行测试,而无需进行培训?
关于代码本身,我还有一个问题。
if result [0][0] >= 0.5:
prediction = "cogwheel"
else:
prediction = "not a cogwheel"
print(prediction)
我试图区分代表齿轮的图像和不代表齿轮的图像。我知道,如果概率大于0.5,则是齿轮,否则就不是。但是[0] [0]在这里是什么意思?
非常感谢您的帮助!
答案 0 :(得分:5)
由于您是初学者,您可能不知道实际上不需要为了测试:D而重新训练模型。您的直觉是正确的,我们将在下面显示您的操作方法。
您可以将模型的权重保存为特定的文件格式。在Keras中,它是扩展名为.hdf5的文件。
from tensorflow.keras.models import load_model
##Do some stuff, train model
model.save(model_name)
##Do some stuff
loaded_model = load_model(model_name)
请确保“ model_name”包含.hdf5。例如“ my_model.hdf5”。
虽然不清楚您用来获取结果的内容(我假设result = model.predict(sample),其中sample是测试样本),但第一个索引对应于class(label),第二个索引对应该特定类别的概率。
测试以查看结果[0] [0](等级0的概率),结果[1] [0](等级1的概率)。