Tensorflow 3. 训练过程,出现loss=NAN的问题?

原创 2018年04月17日 15:59:05

  ① 问题可能原因:

  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)时做了相关处理(比如减去最大值等等))。

  

  ② 我遇到的问题和解决方法:

  已经进行gradient clipping、计算过程没有出现0为除数;调整learning_rate=0.15→0.015、'adagrad_init_acc'=0.1→0.01之后,仍然报错loss=NAN;调整batch_size=1之后,报错内容为Training error: "TensorArray has size zero, but element shape <unknown> is not fully defined.";最后发现数据集中存在empty string,剔除空数据之后解决了。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/princexiexiaofeng/article/details/79975964

tensorflow 运行过程中loss出现 NaN

描述:在训练的是loss正常,测试的时候出现了NaN 解决方法:通过打印softmax()之后的结果,发现出现了0值,导致后面出现log(0)=NaN的情况;    参考链接:http://st...
  • tiandd12
  • tiandd12
  • 2017-10-26 21:13:33
  • 213

Deep Learning 之 训练过程中出现NaN问题

相信很多人都遇到过训练一个deep model的过程中,loss突然变成了NaN。在这里对这个问题做一个总结。 一般来说,出现NaN有以下几种情况: 1.如果在迭代的100轮以内,出现NaN,一般...
  • BVL10101111
  • BVL10101111
  • 2017-07-25 17:01:21
  • 1780

tensorflow nan 原因总结

跑程序的时候经常碰到 loss 为 nan 的情况,在此记录一下,防止忘记踩过的坑。第一种可能: 激活函数使用 relu, 导致最后输出的值很大,exe^x 很有可能变成 nan,可以使用 ...
  • u012436149
  • u012436149
  • 2017-03-04 10:41:34
  • 4670

tensorflow在训练的时候权重是nan,如何解决

昨天在实验室和师妹一起搭建最普通的卷积CNN网络,在其中遇到了一些问题。聪明的师妹解决了这个问题。因为这个问题是大家在学习tensorflow的时候容易忽略掉的,因此将这个问题分享给大家,共勉! ...
  • zbzb1000
  • zbzb1000
  • 2017-03-24 09:05:50
  • 5928

Tensorflow中训练得到Nan错误的分析

之前在TensorFlow中实现不同的神经网络,作为新手,发现经常会出现计算的loss中,出现Nan值的情况,总的来说,TensorFlow中出现Nan值的情况有两种,一种是在loss中计算后得到了N...
  • yinxingtianxia
  • yinxingtianxia
  • 2017-09-28 10:52:38
  • 933

tensorflow的cross_entropy(loss)=nan问题

解决方案1: cross_entropy = -tf.reduce_sum(y_*tf.log(tf.clip_by_value(y_conv,1e-10,1.0)))   解决方案2:(推荐...
  • threadroc
  • threadroc
  • 2017-01-01 18:33:41
  • 3518

tensorflow训练出现nan的讨论

本文讲述tensorflow训练时出现nan的原因,及其解决办法
  • ljhandlwt
  • ljhandlwt
  • 2017-08-17 20:11:51
  • 780

tensorflow训练中出现nan问题

深度学习中对于网络的训练是参数更新的过程,需要注意一种情况就是输入数据未做归一化时,如果前向传播结果已经是[0,0,0,1,0,0,0,0]这种形式,而真实结果是[1,0,0,0,0,0,0,0,0]...
  • fireflychh
  • fireflychh
  • 2017-06-24 14:16:22
  • 3749

Tensorflow 训练结果为 NAN

Tensorflow 预测的中间结果有很多 NAN,如下图 看一下计算 loss 的时候是否有类似下面的代码 cross_entropy = tf.reduce_mean(-tf.re...
  • demoscene
  • demoscene
  • 2017-01-09 15:32:43
  • 2345

caffe训练时loss=nan的原因

梯度爆炸      梯度变得非常大,最后loss全为nan,每一轮迭代后的loss,其随着迭代次数的增加,最后超出浮点型表示的范围就是nan。 原因:       1、基础学习率base_lr可能...
  • Jdk_yxs
  • Jdk_yxs
  • 2017-08-31 20:07:12
  • 556
收藏助手
不良信息举报
您举报文章:Tensorflow 3. 训练过程,出现loss=NAN的问题?
举报原因:
原因补充:

(最多只允许输入30个字)