图像分类 100% 准确率和 0 损失

数据挖掘 美国有线电视新闻网 图像分类 准确性
2022-02-17 23:26:55

我正在使用 CNN 和预训练模型 VGG16 进行图像分类,我的数据集有 3 个类,每个类有近 900 个图像。训练 5 个 epoch 后,我的模型达到 1 精度,训练损失为 0.00073,val-loss=0.00000,val-accuracy=1。100%准确率正常吗?我必须补充一点,我每堂课的图像非常相似,因此这使学习更容易。我的测试集上的评估是:100% 准确率,损失 = 0.0000。这是我的培训和学习曲线。 训练 学习曲线

3个回答

鉴于您正在使用来自一个非常大的模型的迁移学习,并且每个类中的图像彼此非常相似,并且与其他类中的图像非常不同,我想有可能获得 %100 的准确度。

我在您的屏幕截图中没有看到任何问题。验证在每个 epoch 结束时运行,因此预计会从训练中获得更好的结果,尤其是在第一次运行时。您可能希望保留一个单独的“测试数据”,您永远不会在训练和验证中使用它——我的意思是模型永远不会看到它,并在最后使用它来确认您的结果。

使用您保留的图像对您的最终模型进行简单的预测。查看本文以获取有关训练、验证和测试集的描述。或者TensorFlow 文档上的这个参考,它详细描述了评估过程。

具有 0.000 损失函数的 100% 准确率通常是图像分类中的一个包符号。这通常意味着您的模型过度拟合

过度拟合是一种与特定数据集过于紧密或精确对应的分析,因此可能无法拟合其他数据或可靠地预测未来的观察结果,

您还发现图像彼此非常相似,这也证明产生的结果是由于过度拟合造成的。

请参阅“如何避免深度学习神经网络中的过度拟合”来解决此问题。

如果您获得如此高的准确度,听起来这可能是一个标准化问题。查看图像类中的文件类型。如果一个类完全是 png 而另一个是 jpg,则可能是模型区分的压缩。

我有一个项目,其中JPEG 质量最终导致模型达到 100% 的准确度,但这可以通过 PIL 修复。

如果没有看到您的数据,我无法说出您可能遇到的问题,但如果我是您,我会回过头来仔细查看我的数据。也可以在测试集上尝试你的模型。

如果您确定您的数据很好,并且您的模型在您的测试集上仍然可以达到如此高的准确度,那么您无需担心。