我认为可调用只是我调用的tf库中的一个函数。这样:
tensor = tf.while_loop(tf.less(tf.rank(tensor), ndims), # cond
tf.append(tensor, axis=axis), # body
loop_vars = [tensor]) # loop_vars
错误TypeError: cond must be callable.
如果不是tf.less()
,那么什么是可调用条件?
答案 0 :(得分:3)
可调用是可以调用的任何东西。 See here
cond应该是一个功能。您可以使用lambda
(See here)来创建条件callable
。
Here有一个如何使用tf.while_loop
的最小示例:
i = tf.constant(0)
c = lambda i: tf.less(i, 10)
b = lambda i: tf.add(i, 1)
r = tf.while_loop(c, b, [i])
最后,发布实际运行并生成错误的最小代码并不是一个坏主意。
答案 1 :(得分:1)
tf.less
是Operation
个对象。要使其可调用,只需使用lambda
:
tensor = tf.while_loop(lambda tensor: tf.less(tf.rank(tensor), ndims), # cond
lambda tensor: tf.append(tensor, axis=axis), # body
loop_vars = [tensor]) # loop_vars