Pytorch训练过程出现nan
注明:现在整理了一些解决问题的方法,但是在实际测试中,我的问题还是没有解决。接下来继续查找问题,查找解决问题的办法。天呀,我的头发…
使用SA-SSD算法,训练velodyne-16线点云数据,但是训练过程中损失值loss=nan,困扰良久…
经过搜集资料发现Pytorch训练过程出现nan的情况为以下几种:
1、学习率太大,但是样本数据集又很小。
2、自定义的loss除以了一个很小的数字,小到接近0。
3、数据不干净,数据本身就有nan,可以用numpy.isnan检查。
4、target,即label是大于等于0的。从1到类别数目-1变化。
既然找到了解决可能出现问题的地方,接下来就是逐个排查问题了。
1、首先更改SA-SSD算法的学习率lr,原学习率为lr=0.003更改为更小值lr=0.001/0.0005,然而并不能排除问题。损失值loss仍出现loss=nan。
2、数据集本身就含有nan,自己写了个脚本测试数据集(bin格式)中是否含有nan类型,结果令人失望,没有nan类型。看来接下来还需要去找其他方法去解决这个问题。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/2137.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...