【问题标题】:Image Classifier with Tensorflow and Keras使用 TensorFlow 和 Keras 的图像分类器
【发布时间】:2019-09-21 02:27:58
【问题描述】:

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

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

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

我试图区分代表齿轮的图像和不代表齿轮的图像。我知道如果概率 > 0,5 它是一个齿轮,否则它不是。但是这里的 [0][0] 是什么意思呢?

非常感谢您的帮助!

【问题讨论】:

  • Keras 允许您保存训练模型的结果并稍后再次加载它们,我建议阅读文档。至于你的第二个问题,这是一个更一般的 Python 问题。你有没有看过result实际上是什么数据类型?
  • 你是怎么得到result的?
  • 我通过使用 result = classifier.predict(sample) 得到结果。 @AdmiralWen 我应该阅读文档是的,我几乎偶然发现了整个主题,几乎没有关于 tensorflow 的先验知识,而且只有一些 python

标签: python tensorflow keras image-recognition


【解决方案1】:

由于您是初学者,您可能不知道实际上不需要重新训练模型即可进行测试: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),第二个label对应到该特定类别的概率。

测试以查看结果[0][0](第 0 类的概率)、结果[1][0](第 1 类的概率)。

【讨论】:

  • 所以我可以将保存部分添加到代码的末尾,它应该将其保存为 .hdf5 文件。但是我需要一个新的 .py 来插入 loaded_model = load_model(model_name) 部分吗?说到第二部分,我使用了“result = classifier.predict(sample)”。所以我想我也理解了你所说的,谢谢!
  • 是的,您可以在另一个脚本中添加加载模型部分并在那里进行测试:D
  • 否,当我尝试运行此程序时,我收到错误消息:NameError: name 'model' is not defined。知道为什么会这样吗?
  • 您是否首先声明了您的模型?您的模型的初始名称是什么?
  • 如果我没有看到任何代码,我无法为您提供适当的帮助。
猜你喜欢
  • 2022-01-22
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2021-05-08
  • 2021-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多