请教一下关于yolov5s训练loss出现Nan问题

想请教一下,用yolov5s训练模型,数据集2000多张,按照8:1:1手动分的,需要用代码打乱分吗,每个labels里都需要有classes吗?
然后尝试跑了100个epoch,发现这几栏都是Nan

img


网上搜了解决方案,将学习率从0.01调成了0.001,还是这样

出现NaN的问题通常是由于某个数值超出了计算机所能表示的范围,导致计算结果无**确表示造成的。对于训练中出现NaN的问题,可能有以下几个原因:

  1. 学习率过大:学习率过大会导致梯度**或梯度消失,从而使损失函数的值变为nan。

  2. 数据集存在异常值:数据集中存在异常值或错误的标签可能会导致训练过程中出现nan的情况。

  3. 模型结构不够稳定:模型结构可能存在设计上的问题,比如存在过多的参数或层数等,从而导致训练过程不够稳定。

解决方案:

  1. 调整学习率:尝试降低学习率或调整优化器的参数来缓解NaN问题。

  2. 检查数据集:检查数据集中是否存在异常值或错误的标签,进行清洗或纠正。

  3. 修改模型结构:可以通过修改模型结构、增加正则化等方法来缓解过拟合问题,从而减少nan问题的出现。