张量流CNN损失函数在张力板上下摆动,如何去除?

2024-04-28 22:26:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用tensorflow在2017年Audioset2017数据集上培训ResNet50 在训练和验证结果的过程中,我的损失函数在波动,总体趋势是下降的,但我对此感到害怕。在

我已经运行了100个时期,批大小=100。 有降低和提高学习率的作用,但没有效果。在

想知道我的培训是否正确,我可以使用这个网络吗?否则会导致错误结果。可以我用一些技巧把它们去掉? 这些是我的图片和其他的测试数据。在

验证模式:

列车模式:


Tags: 数据函数网络过程tensorflow错误模式趋势
2条回答

似乎在走了12k步之后,模型开始过度拟合。训练损失进一步减小,验证损失(泛化误差)又缓慢增加。在这之后,训练模型只会使情况变得更糟。在

在下图中,您处于过拟合区域。在

(来自www.deeplearningbook.org

您可能希望通过增加正则化来降低模型对训练数据过度拟合的能力。例如,L2权重正则化或dropout。在

至于振荡。考虑到您的批量为100,它们可能是天然的。在

在一个好的模型中,您将希望您的损失函数的图形向下显示为验证集。下降趋势表明,您的模型正在泛化,以学习以前看不到的示例。机器学习的一般目标是能够使用采样数据点学习一些模型参数,这些数据点捕捉到学习问题,并且可以对样本外的例子进行预测。在

对于训练集,损失值的下降趋势表明模型正在从提供的训练示例中学习对目标输出的合理估计。您通常也希望看到这个向下的图表;否则,这将意味着您的模型不符合训练集,并且根据经验保证在验证集上不会做得很好。在

要简单了解如何解释监督学习模型,请阅读Supervised Machine Learning: A Conversational Guide For Executives And Practitioners

相关问题 更多 >