Tensorflow训练好模型后再进行预测精度没有训练时候评价的好?

使用tensorflow训练的模型的精度(80%测试数据精度)能够达到90%以上,kaappa达到87%,各类平均精度80%以上,总样本数量50万。然后使用所有的数据,即包括20%训练数据和80%测试数据放在一起使用训练好的模型重新进行预测,但是发现有几类预测结果混淆很厉害,有一类几乎都分成另外一类了,精度明显没有训练精度好。这个问题产生的原因是什么呢?恳请大家帮助解惑?感谢!

方案来自 梦想橡皮擦 狂飙组基于 GPT 编写的 “程秘”


这个问题可能是由于在重新训练时没有正确处理数据集的划分而导致的,特别是训练数据集和测试数据集的划分。在划分数据集时,通常会将数据集分为训练数据集和测试数据集,以避免模型对训练数据过度拟合。如果在重新训练模型时,将测试数据集和训练数据集放在一起,模型可能会过度拟合数据集,从而导致在测试数据集上的表现变差。

为了解决这个问题,可以尝试以下几种方法:

  1. 使用更好的模型训练技术,例如dropout、正则化等,来减少过拟合现象。

  2. 使用更多的数据进行训练,这有助于模型更好地学习数据集的特征。

  3. 重新划分数据集并重新训练模型。将测试数据集和训练数据集分开,并在训练期间只使用训练数据集,然后使用测试数据集进行模型评估。

  4. 调整模型的超参数,例如学习率、批次大小等。

  5. 如果数据集存在类别不平衡的情况,可以尝试使用加权损失函数或过采样方法等技术来处理。

这很正常啊。训练数据集过拟合,对于训练数据性能很好,对于测试数据的性能不一定好。

感谢各位答主热心回答,找到问题所在了,是因为训练的时候将背景0值删除了进行训练的,预测的时候本来以为背景0值没有影响,放在一起进行预测的,实际上影响还挺大的(背景值有很多,使用的图像不是规则矩形),删除之后在预测精度就正常了,不过删除了背景之后想将预测数据还原为完整图像就有点麻烦了。