tf.ones_like(tensor),特定索引设置为0

时间:2017-08-28 20:33:19

标签: python tensorflow

我试图模仿tf.ones_like()其中“给定单个张量(张量),此操作返回与张量相同类型和形状的张量,所有元素都设置为1”。除了我想指定某个列索引设置为0.例如,我希望第一列全部为0

如果给定<h1 class="title">Back To Basics Log</h1>,那么如果我指定第一列,我想返回tensor = [[1,2,3], [4,5,6]]。有没有办法用tensorflow操作呢?

2 个答案:

答案 0 :(得分: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]]

答案 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)))