【发布时间】:2016-09-24 02:39:56
【问题描述】:
【问题讨论】:
标签: python-2.7 tensorflow
【问题讨论】:
标签: python-2.7 tensorflow
非常简单的解决方案:
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]})
【讨论】:
global_step 变量是我的全局步骤,或者它是如何工作的?
global_step 来除某个数字,用dtype=tf.float32 或tf.float64 来声明它会更好,而不是tf.int32?
增加/减少值是一种常见的操作,所以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)
如果您将本示例中的张量板图与您自己示例中的图进行比较,您会发现该图的节点数量较少。
【讨论】:
retrain.py 进行迁移学习时,我试图从具有唯一名称的打开的 cv 帧中保存图像。在这种情况下,增量操作会给我错误 ValueError: Fetch argument <tf.Tensor 'increment:0' shape=() dtype=int32_ref> cannot be interpreted as a Tensor. (Tensor Tensor("increment:0", shape=(), dtype=int32_ref) is not an element of this graph.)