训练过程中出现NaN的情况
随着梯度更新,参数随着每轮迭代越来越大,最终超过了浮点型表示的范围,就变成了NaN。
个人遇到的情况一种是学习率设定过大,需要降低学习率,可以降低到学习率直至不出现nan为止.
另外一种情况是训练过程中梯度过大,出现了梯度爆炸.造成更新后的值为NAN.
这篇文章总结的已经很好了:
Pytorch训练模型损失Loss为Nan或者无穷大(INF)原因
记录留档
随着梯度更新,参数随着每轮迭代越来越大,最终超过了浮点型表示的范围,就变成了NaN。
个人遇到的情况一种是学习率设定过大,需要降低学习率,可以降低到学习率直至不出现nan为止.
另外一种情况是训练过程中梯度过大,出现了梯度爆炸.造成更新后的值为NAN.
这篇文章总结的已经很好了:
Pytorch训练模型损失Loss为Nan或者无穷大(INF)原因
记录留档