【问题标题】:Why does tensorflow operation lead to NaN?为什么tensorflow操作会导致NaN?
【发布时间】:2019-11-15 13:02:11
【问题描述】:

当我调用 tf.reduce_sum() 或 tf.nn.l2_loss() 时,结果是 NaN,为什么会这样?

我尝试过这样的事情:

sess.run(tf.reduce_mean(tf.clip_by_value(forward,1e-10,1.0)))
Out[18]: nan

但结果也是nan..

forward
Out[17]: 
array([[0.93465865],
       [0.96060896],
       [0.9346889 ],
       ...,
       [0.97003865],
       [0.9155061 ],
       [0.94954056]], dtype=float32)

expected
Out[10]: 
array([[0.],
       [0.],
       [0.],
       ...,
       [0.],
       [0.],
       [0.]], dtype=float32)

sess.run(tf.reduce_sum(forward))
Out[14]: nan

resultToPrint = tf.nn.l2_loss(forward - expected+1e-8, name="squared_error_cost")
ergebnis = sess.run(resultToPrint)

ergebnis 也是 NaN..

预期结果不是 NaN,而是实际结果。由于我对 TensorFlow 很陌生,我真的很感激任何好的建议和解释,非常感谢! :)

【问题讨论】:

    标签: python tensorflow nan loss


    【解决方案1】:

    检查forward 是否有任何 nan 值。由于nan + float == nan,我假设reduce_mean 只是沿整个轴传播它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-10
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      • 2016-09-03
      • 2013-10-04
      • 1970-01-01
      • 2020-12-01
      相关资源
      最近更新 更多