美文网首页
深度学习的Nan问题

深度学习的Nan问题

作者: HelloShane | 来源:发表于2018-09-24 12:22 被阅读0次

相信很多人都遇到过训练一个deep model的过程中,loss突然变成了NaN。在这里对这个问题做一个总结。

一般来说,出现NaN有以下几种情况:

  1. 如果在迭代的100轮以内,出现NaN,一般情况下的原因是因为你的学习率过高,需要降低学习率。可以不断降低学习率直至不出现NaN为止,一般来说低于现有学习率1-10倍即可。
  2. 如果当前的网络是类似于RNN的循环神经网络的话,出现NaN可能是因为梯度爆炸的原因,一个有效的方式是增加“gradient clipping”(梯度截断来解决)
  3. 可能用0作为了除数;
  4. 可能0或者负数作为自然对数
  5. 需要计算loss的数组越界(尤其是自己,自定义了一个新的网络,可能出现这种情况)
  6. 在某些涉及指数计算,可能最后算得值为INF(无穷)(比如不做其他处理的softmax中分子分母需要计算exp(x),值过大,最后可能为INF/INF,得到NaN,此时你要确认你使用的softmax中在计算exp(x)做了相关处理(比如减去最大值等等))
  7. 一般来说下溢出在python里面会导致0,Nan是指的是上溢

相关文章

  • 深度学习的Nan问题

    相信很多人都遇到过训练一个deep model的过程中,loss突然变成了NaN。在这里对这个问题做一个总结。 一...

  • 训练深度学习模型时出现nan的原因

    在训练深度学习的网络时候,迭代一定次数,会出现loss是nan,然后acc很快降低到了0.1,训练也就无法继续了。...

  • Lua——NAN问题

    NAN(Not A Number),lua中是0/0运算会产生。不同语言的定义不同。 今天unity3d项目遇到一...

  • == 和 === 如何使用?

    为什么有这样问题?== 会造成子类型的转换,=== 区分不了 NaN === NaN (返回false),+0 =...

  • “深度学习”之感

    第一次听到“深度学习”这个问题,我全蒙了,想着学习还要深度学习,什么是深度学习,怎么深度学习呢? 听了贾老师的课...

  • 深度学习问题

    1 输入输出数据的分布不能太夸张,否则会影响神经网络的权重分布,进而导致模型训练过程的参数梯度消失,预测出来的结果为空

  • 《深度学习的艺术》笔记

    书名:深度学习的艺术-采铜 问题:如何成为高段位的学习者 动机:怎样达到深度学习 本来深度学习这本书要用30分钟看...

  • deep learning update error loss

    为什么用tensorflow训练网络,出现了loss=nan最常见的原因是学习率太高。对于分类问题,学习率太高会导...

  • 【深度学习-1】安装TensorFlow

    Rapp从今天起推出【深度学习】系列,主要记录自己在学习深度学习技术的过程中遇到的问题和心得。在深度学习领域,Ra...

  • pytorch loss 出现 nan

    排查问题: 调整学习率为0,loss还为NAN---->与学习率无关 模型内关于除、log等可能出现异常的操作,加...

网友评论

      本文标题:深度学习的Nan问题

      本文链接:https://www.haomeiwen.com/subject/mmicoftx.html