Вы забыли добавить оператор возврата в вашу функцию:
import tensorflow as tf
def b(i):
return tf.add(i, 1)
i = tf.constant(0)
c = lambda i: tf.less(i, 10)
tf.while_loop(c, b, [i]) # <tf.Tensor: id=51, shape=(), dtype=int32, numpy=10>
Обратите внимание, что в первом примере функция b
возвращает увеличенное значение:
i = tf.constant(0)
b = lambda i: tf.add(i,1)
c = lambda i: tf.less(i,10)
tf.while_loop(c,b, [i])
print(b(1).numpy()) # 2