2017-09-25 100 views

回答

2

可以使用tf.minimum,這按元素最小化計算;

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設定值:

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

如果你需要更新通過設置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

這兩種方法都會創建新的張量,而不是直接修改'A',所以我猜這裏沒有'tf.assign'? – Psidom

+0

我的意思是,OP在詢問如何修改輸入矩陣A,而不是從A創建新的張量。 – nessuno