2016-08-17 11 views
0

私は配列Xのサイズが[?, n]です(最初の次元はバッチサイズです)。 私はkの番号(バッチ内の各ベクトル)を取得したいと考えていますが、そのうちのいくつかはnanです。通常のnumpyでは、関数nanmaxを使用しますが、Tensorflowには存在しません。TensorflowのNumpyのnanmaxの機能性は?

私は(nans付き)、フルベクターでnn.top_kを使用してみましたが、正常に動作していないようです - 入力時にそれを取得kを満たすのに十分な数字があるにもかかわらず、いくつかのnan値を持つベクトルをバック与えます。

ありがとうございました。

答えて

1

あなたが負の無限大で、すべてのnan値を交換して使用することができtop_k

tf.reset_default_graph() 
a = tf.constant([0, 1, 2, 3], dtype=tf.float32) 
b = tf.constant([0, 1, 2, 3], dtype=tf.float32) 
c = a/b 
sess = tf.InteractiveSession() 
print sess.run(tf.nn.top_k(c)[0]) 
infinities = tf.constant(-np.inf, shape=(4,)) 
c_fixed = tf.select(tf.is_nan(c), infinities, c) 
print sess.run(tf.nn.top_k(c_fixed)[0]) 

これは

[ nan] 
[ 1.] 
います
関連する問題