我正在使用tensorflow,但我不确定为什么我甚至需要global_step
变量,或者甚至需要进行训练。我是这样的:
gradients_and_vars = optimizer.compute_gradients(value) train_op = optimizer.apply_gradients(gradients_and_vars)
然后在我的循环中我会这样做:
_ = sess.run([train_op])
我正在使用队列将数据提供给图表。我是否必须实例化global_step
变量?
我的循环看起来像这样:
while not coord.should_stop():
所以当它应该停止时,这个循环停止。那么为什么我需要global_step
呢?
答案 0 :(得分:1)
在所有情况下,您都不需要全局步骤。但有时人们希望停止训练,调整一些代码,然后继续使用已保存和恢复的模型进行训练。然后通常很高兴知道到目前为止这个模型已经训练了多长时间(=多少时间步长)。这就是全球的一步。
有时,您的学习率制度可能取决于模型已经训练的时间。假设你想每100,000步骤衰减你的学习率。如果你没有跟踪已经采取的步骤数量,如果你中断了训练并且没有跟踪已经采取的步骤数量,这可能会很困难。
此外,如果您使用张量板,则全局步骤是图表x轴的中心参数。