深度学习训练过程中loss出现nan的原因及可采取的方法

在pytorch训练过程中出现loss=nan的情况,梯度爆炸。深度学习训练过程中loss出现nan的原因及可采取的方法_第1张图片
可采取的办法:
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,发现工程运行代码。

你可能感兴趣的:(深度学习入门)