mmdetection中出现 loss为 nan的情况
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mmdetection中出现 loss为 nan的情况相关的知识,希望对你有一定的参考价值。
参考技术A 1 。 mmdet中的 core/ evalution/ classnames.py 中的类别没修改
2 。mmdet 中的 datasets/ voc.py 中的类别没修改
3 。config/ base /models 中基础模型的 num_classes 没有修改正确
4 。config/ faster_rcnn.../...py 中 datasets的路径 没有修改
总结:
如果nan的情况是间断性出现的,比如前面几个 batch 的loss正常下降,突然有几个batch的loss变成nan ,然后loss又正常了,就是前面5中情况中的一种,大概率是情况5.
如果nan的情况不是间断性出现的,比如前面几个batch 的loss正常下降,突然持续变成nan,不恢复正常,则有可能是情况6,在 schedule1x.py 中把learning_rate 调至它的0.1倍。
训练网络中出现loss等于Nan的情况几种思路
参考技术A 在使用机器学习训练模型时,发现损失函数竟然是Nan,我们就要从一下几个方面来考虑(由重要到不重要排列):1.如果在迭代的100轮以内,出现Nan,一般情况下的原因是因为你的学习率过高,需要降低学习率。
2.训练数据中有脏数据。(所谓脏数据,就是很离谱的数据,或者完全不正确的数据,会完全带跑模型的走向;或者就是数据中的某个取值是0或者是无穷大,导致网络无法计算)
3.可能用0作为了除数
4.可能0或者负数作为自然对数
以上是关于mmdetection中出现 loss为 nan的情况的主要内容,如果未能解决你的问题,请参考以下文章