2017-09-25 20 views
1

TensorFlowテンソルで次のように実行するにはどうすればよいですか?行列AではTensorFlowテンソルの値を調整

:A [I、J]> 1その後、[I、J]は、1

を=(numpyの中で、私はこれだろう:A[A>1] = 1)の場合

答えて

2

あなたはtf.minimumを使用することができ、その要素単位の最小計算を行います。

tf.where(A > 1, tf.constant(1, shape=A.shape), A).eval() 
# array([-1, 0, 1, 1, 1], dtype=int32) 

あなたが更新する必要がある場合:

A = tf.constant([-1, 0, 1, 3, 4]) 

A_clipped = tf.minimum(A, 1) 

sess = tf.InteractiveSession() 
A_clipped.eval() 
# array([-1, 0, 1, 1, 1], dtype=int32) 

別のオプションは、値を設定するtf.whereを使用している:y = 1を設定することにより、xの値が1最大でクリップされます変数A

A = tf.Variable([-1, 0, 1, 3, 4]) 
​ 
tf.global_variables_initializer().run() 
tf.assign(A, tf.minimum(A, 1)).eval() 

A.eval() 
# array([-1, 0, 1, 1, 1], dtype=int32) 
+0

あなたの答えには割り当て部分がありません。ではない? – nessuno

+0

これらの2つのアプローチはどちらも、 'A'を直接変更するのではなく新しいテンソルを作成します。ここで' tf.assign'を実行しないと思いますか? – Psidom

+0

私は、OPから新しいテンソルを作成しないで、入力行列Aを修正する方法をOPが尋ねています。 – nessuno

関連する問題