深度学习训练过程中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,发现工程运行代码。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)