Python 如果在tensorflow中满足条件,则向tensor秩1中的元素添加一个数字

Python 如果在tensorflow中满足条件,则向tensor秩1中的元素添加一个数字,python,tensorflow,Python,Tensorflow,我有一个张量秩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.condition与tf.scan结合起来呢?您可以使用 elems = np.

我有一个张量秩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.condition
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)
a = tf.Variable([-1,2,3,-2,5])
b = tf.where(tf.less(a, 0), tf.abs(a)+tf.constant(m.pi), a)