如何在Tensorflow中增加变量?

时间:2016-09-24 02:39:56

标签: python-2.7 tensorflow

当尝试在Tensorflow中使用主管时,我意识到:

  

您的培训操作负责增加全局步骤值。

Reference

那么如何在Tensorflow中增加图形中的变量?

2 个答案:

答案 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)

如果你要比较这个例子和你自己的例子中的张量板图,你会发现图表的节点数量较少。