训练模型在整个数据集上的表现更差

数据挖掘 机器学习 深度学习 数据集 图像分类 火炬
2022-03-03 23:27:44

我使用 pytorch 作为训练框架和官方的pytorch imagenet 示例,用我的自定义数据集训练图像分类模型。

我的自定义数据集有 2 个不同的标签(好和坏),以及超过 100 万张图像。

我将数据集分为训练集(80%)、验证集(10%)和测试集(10%)

我的模型在训练阶段获得了平均 99% 的训练 acc,在验证阶段获得了近 99% 的 val acc。在测试阶段,该模型获得了 99% 的测试合格率。

然而,当我使用我的模型评估整个数据集(我数据集中的所有图像)时,acc 只得到了 90%,这很奇怪,因为我的模型在训练阶段更新了它的参数。

该模型应该能够达到更高的准确率,但在评估整个数据集时它只能获得 90% 的准确率。

我想知道它是否正常或我可以检查这个问题。

1个回答

这些性能值不一致,这绝对是不正常的。整个数据集由训练集、验证集和测试集组成。准确率是正确标记实例的比例,因此整个数据集的准确率是:

一种CCFll=0.8*一种CCr一种一世n+0.1*一种CCv一种l+0.1*一种CCes

自从0.8*0.99+0.1*0.99+0.1*0.99=0.990.90,一定是哪里出了问题,至少你的性能值有一个是错误的。