您的变量不是循环内运行的 *** 作的输出,它是一个位于循环外的外部实体。因此,您不必提供它作为参数。
另外,您需要强制执行更新,例如
tf.control_dependencies在中使用
body。
import tensorflow as tfv = [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]n = len(v)a = tf.Variable(v, name = 'a')def cond(i): return i < ndef body(i): op = tf.assign(a[i], a[i-1] + a[i-2]) with tf.control_dependencies([op]): return i + 1i = tf.while_loop(cond, body, [2])sess = tf.InteractiveSession()tf.global_variables_initializer().run()i.eval()print(a.eval())# [ 1 1 2 3 5 8 13 21 34 55 89]
可能您可能需要谨慎并设置
parallel_iterations=1为强制循环按顺序运行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)