我有一个张量等级1,它可能看起来像这样:[-1,2,3,-2,5]
现在我想在一个元素的绝对值上加一个常量,如果该元素为负数。如果元素是正数,则不会发生任何事情。
我知道如何用标量来做到这一点:
res = tf.cond(tensor < 0,\
lambda: tf.add(tf.constant(m.pi),\
tf.abs(tensor)),lambda: tf.constant(tensor)
此外,我知道如何使用tf.scan
迭代张量,就像在斐波纳契示例中一样:
elems = np.array([1, 0, 0, 0, 0, 0])
initializer = (np.array(0), np.array(1))
fibonaccis = scan(lambda a, _: (a[1], a[0] + a[1]), elems, initializer)
但是如何将tf.condition
与tf.scan
结合起来?
答案 0 :(得分:1)
您可以使用tf.where
a = tf.Variable([-1,2,3,-2,5])
b = tf.where(tf.less(a, 0), tf.abs(a)+tf.constant(m.pi), a)