深度学习训练过程中loss出现nan的原因及可采取的方法
·
在pytorch训练过程中出现loss=nan的情况,梯度爆炸。
可采取的办法:
1.学习率太高。
2.loss函数
3.对于回归问题,可能出现了除0 的计算,加一个很小的余项可能可以解决,比如log(x + 微小量),避免无穷大。
4.数据本身,是否存在Nan,可以用numpy.any(numpy.isnan(x))检查一下input和target
5.target本身应该是能够被loss函数计算的,比如sigmoid激活函数的target应该大于0,同样的需要检查数据集
今天遇到这个问题的时候,修稿了学习率,从lr = 1e-2,到 lr = 1e-4,发现工程运行代码。
更多推荐



所有评论(0)