我試圖模仿其中「給定一個張量(張量)tf.ones_like()的特定索引,該操作返回相同的類型和形狀張量的張量所有元素都設置爲1「。除非我想指定一個列索引設置爲0.例如,我想第一列全部爲0tf.ones_like(張量)設置爲0
如果給定tensor = [[1,2,3], [4,5,6]]
那麼我想返回[[0,1,1], [0,1,1]]
如果我指定第一列。有沒有辦法用tensorflow操作來做到這一點?
我試圖模仿其中「給定一個張量(張量)tf.ones_like()的特定索引,該操作返回相同的類型和形狀張量的張量所有元素都設置爲1「。除非我想指定一個列索引設置爲0.例如,我想第一列全部爲0tf.ones_like(張量)設置爲0
如果給定tensor = [[1,2,3], [4,5,6]]
那麼我想返回[[0,1,1], [0,1,1]]
如果我指定第一列。有沒有辦法用tensorflow操作來做到這一點?
您可以鑄造來達到同樣的使用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]]
恕我直言,從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)))