我正在尝试使用 Keras 开发一个图像分类器,我按照页面上的教程进行了操作:https://www.tensorflow.org/tutorials/images/classification?hl=en
仍然使用教程提供的花卉数据集,我尝试通过使用一只山羊的照片来测试模型进行预测。结果显示,模型认为这张山羊照片属于雏菊类,置信度为 70%。我认为这是不可能的,因为山羊的照片中根本没有雏菊。
这是我使用的代码:
此处省略代码内容
我使用的是 TensorFlow 2.3.2 版本,其他库使用的是最新版本。
如何改进模型,以便当它接收到与训练时使用的类别完全不同的照片(例如不是花的照片)时,预测结果为 0%?
我需要一个解决方案,因为我正在尝试开发一个系统,该系统拥有一组图像,例如公司标志的三类:正确、错误和可接受,如果它接收到一个标志,必须将其分类到正确的类别中。但如果它接收到不是公司标志的照片,它必须返回该照片不属于标志集。
回答:
由于您的模型是在一组封闭的图像上训练的,它会将任何其他类型的图像纳入它所学的模式,并且通常会成功。最终,输出概率仅仅是基于图像中某些形状组合和颜色的概率,而不是您期望的抽象概念输出(要了解神经网络实际上看到了什么,您可以阅读这篇文章:https://www.kdnuggets.com/2016/06/peeking-inside-convolutional-neural-networks.html)