我想遍历张量而不使用必须使用tf.map_fn()的Eager Execution。 我想做的事情可以显示如下:
import tensorflow as tf
list_of_values = tf.constant([[1, 9, 65, 43], [8, 23, 21, 48], [11, 14, 98, 21], [98, 12, 32, 12]])
def value_finder(i):
def f1():
# Some computation with a local variable 'a' occurs
# . . .
return a # a = [[3, 4, 5]]
def f2():
# Some computation with a local variable 'b' occurs
# . . .
return b # b = [[7, 1, 2], [9, 3, 11]]
return tf.cond(tf.reduce_all(tf.less(tf.slice(i, [1], [1]), tf.constant(18))), f1, f2)
value_obtained = tf.map_fn(lambda i: value_finder(i), list_of_values))
值a和b的维数不同,因此,每当我尝试运行代码时都会收到错误消息。以我为例,返回的值的尺寸不可避免。除了填充值以使它们具有相等的尺寸之外,还有其他方法可以迭代张量并获得结果吗?