如何在张量的单个元素上执行减法

时间:2016-02-24 10:14:13

标签: tensorflow

我有一个由4个浮点组成的张量,称为x

如何有50%的几率执行label

现在我有:

x[0] = 1 - x[0]

哪个有效,但看起来非常难看。是不是有更聪明/更简单的方法呢?

相关问题:如何将某个操作(例如sqrt)仅应用于两个元素?我猜我必须删除这两个元素,执行操作然后将它们连接回原始矢量?

1 个答案:

答案 0 :(得分:3)

tf.selecttf.cond在您必须有条件地对张量元素执行计算的情况下派上用场。对于您的示例,以下内容可行:

label = tf.constant([0.35, 0.5, 0.17, 0.14])
inv = tf.pack([1.0, 0.0, 0.0, 0.0])
mask = tf.pack([1.0, -1.0, -1.0, -1.0])
output = tf.cond(tf.random_uniform([], 0, 1.0) > 0.5,
                 lambda: label,
                 lambda: (inv - label) * mask)
with tf.Session(''):
  print(output.eval())