使用Tensorflow和Keras的图像分类器

时间:2019-05-02 14:26:57

标签: python tensorflow keras image-recognition

我正在尝试使图像分类器正常工作。到目前为止,该模型似乎确实可以正常工作,但是现在每次我想要测试图像以查看图像是否被正确识别时,我都必须进行整个训练。我对此很陌生,但我想应该有另一种方法可以只对图像进行测试,而无需进行培训?

关于代码本身,我还有一个问题。

if result [0][0] >= 0.5:
    prediction = "cogwheel"
else:
    prediction = "not a cogwheel"
print(prediction)

我试图区分代表齿轮的图像和不代表齿轮的图像。我知道,如果概率大于0.5,则是齿轮,否则就不是。但是[0] [0]在这里是什么意思?

非常感谢您的帮助!

1 个答案:

答案 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的概率)。