Почему работа тензорного потока приводит к NaN? - PullRequest
0 голосов
/ 04 июля 2019

Когда я вызываю 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

но результат тоже нэн ..

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)

эргебнис тоже NaN ..

Ожидаемый результат - не NaN, а фактический результат. Поскольку я очень новичок в TensorFlow, я действительно буду признателен за любые полезные советы и объяснения, большое спасибо! :)

1 Ответ

0 голосов
/ 04 июля 2019

Проверьте, имеет ли forward какие-либо значения nan. Поскольку nan + float == nan, я предполагаю, что Reduce_mean просто распространяет его по всей оси.

...