训练集、测试集loss容易出现的问题总结
1、
train loss 不断下降,test loss不断下降:说明网络仍在学习;
train loss 不断下降,test loss趋于不变:说明网络过拟合;
train loss 趋于不变,test loss不断下降:说明数据集100%有问题;
train loss 趋于不变,test loss趋于不变:说明学习遇到瓶颈,需要减小学习率或批量数目;或者是数据集有问题(数据集标注错误数据比较多)
train loss 不断上升,test loss不断上升:说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题。
2、训练时损失出现nan的问题,可能导致梯度出现nan的三个原因:
梯度爆炸。也就是说梯度数值超出范围变成nan. 通常可以调小学习率、加BN层或者做梯度裁剪来试试看有没有解决。
损失函数或者网络设计。比方说,出现了除0,或者出现一些边界情况导致函数不可导,比方说log(0)、sqrt(0).
脏数据。可以事先对输入数据进行判断看看是否存在nan.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步