2017-08-28 83 views
0

我試圖模仿其中「給定一個張量(張量)tf.ones_like()的特定索引,該操作返回相同的類型和形狀張量的張量所有元素都設置爲1「。除非我想指定一個列索引設置爲0.例如,我想第一列全部爲0tf.ones_like(張量)設置爲0

如果給定tensor = [[1,2,3], [4,5,6]]那麼我想返回[[0,1,1], [0,1,1]]如果我指定第一列。有沒有辦法用tensorflow操作來做到這一點?

回答

0

您可以鑄造來達到同樣的使用tf.assign

import tensorflow as tf 

tensor = tf.Variable([[1,2,3], [4,5,6]]) 

tensor = tf.cast(tf.cast(tf.assign(tensor[:,0], tf.zeros_like(tensor[:,0])), tf.bool), tf.int32) 

sess = tf.InteractiveSession() 
tf.global_variables_initializer().run() 
print(sess.run(tensor)) 

# Output 
#[[0 1 1] 
#[0 1 1]] 
0

恕我直言,從Variable helper functions只有assign可以在這樣的情況下,任何合理的幫助。如果你不選擇讓numpy的出來,我可以建議這樣的代碼:

t = np.array([[1,2,3],[4,5,6]]) 
v = tf.Variable(t) 
t = np.ones_like(t) 
t[:,0] = 0 
sess = tf.Session() 
print(sess.run(v.assign(t)))