答案 0 :(得分:16)
非常简单的解决方案:
global_step = tf.Variable(1, name='global_step', trainable=False, dtype=tf.int32)
increment_global_step_op = tf.assign(global_step, global_step+1)
然后,当您想要增加它时,只需在当前tf.Session
sess
下运行该操作。
step = sess.run(increment_global_step_op)
step
中的结果是增量后递增变量的值。在这种情况下,global_step的值在递增之后。所以2
。
如果您像我一样对global_step使用此功能,请将其与training_op
一起运行。
result = sess.run([out, increment_global_step_op], {x: [i]})
答案 1 :(得分:10)
增加/减少值是一项常见操作,因此TF有简化图表创建的操作:tf.assign_add()
和tf.assign_sub()
。它们结合了两个操作(tf.assign()
和tf.add
/ tf.sub
)。
以下是使用示例:
import tensorflow as tf
x = tf.Variable(0, name='counter')
inc = tf.assign_add(x, 1, name='increment')
with tf.Session() as sess:
# writer = tf.summary.FileWriter('logs', sess.graph)
sess.run(tf.global_variables_initializer())
for _ in xrange(5):
print sess.run(inc)
如果你要比较这个例子和你自己的例子中的张量板图,你会发现图表的节点数量较少。