我想檢查tensorflow變量,如果它是NaN,則將其設置爲零。檢查Tensorflow中的NaN
我該怎麼做?下面的技巧似乎不起作用:
if tf.is_nan(v) is True:
v = 0.0
我想檢查tensorflow變量,如果它是NaN,則將其設置爲零。檢查Tensorflow中的NaN
我該怎麼做?下面的技巧似乎不起作用:
if tf.is_nan(v) is True:
v = 0.0
如果v
是0D張量,你可以使用tf.where
測試和更新值:
import numpy as np
v = tf.constant(np.nan) # initialize a variable as nan
v = tf.where(tf.is_nan(v), 0., v)
with tf.Session() as sess:
print(sess.run(v))
# 0.0
你可以結合使用tf.is_nan與tf.cond如果tensorflow值NAN更改值。
圖書館像numpy的(在這種情況下,tensorflow)往往有自己的布爾實現,比較自定義的布爾類型的內存地址,CPython中內置的使用is
會導致異常行爲。
要麼只檢查隱式布爾值 - >if tf.is_nan(v)
或做一個相等比較if tf.is_nan(v) == True
。
我希望這可以幫助你。 math.is_nan
import math
if math.isnan(float(v)):
v = 0.0
你肯定is_nan()返回一個布爾值? – ospahiu
它返回布爾類型的張量 –
「v」的形狀是什麼?是'v'一個標量? – Psidom