为什么tensorflow运算会导致NaN?
Why does tensorflow operation lead to NaN?
当我调用 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 的新手,我真的很感激任何好的建议和解释,非常感谢! :)
检查 forward
是否有任何 nan 值。由于 nan + float == nan
,我假设 reduce_mean 只是沿着整个轴传播它。
当我调用 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 的新手,我真的很感激任何好的建议和解释,非常感谢! :)
检查 forward
是否有任何 nan 值。由于 nan + float == nan
,我假设 reduce_mean 只是沿着整个轴传播它。