train loss 和 test loss的一些问题

1、train loss 和 test loss 的关系

  • 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.

你可能感兴趣的:(软件问题,深度学习,Linux,深度学习,神经网络,机器学习)