为什么以及何时需要使用tensorflow中的全局步骤

时间:2017-05-29 21:16:13

标签: tensorflow deep-learning

我正在使用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呢?

1 个答案:

答案 0 :(得分:1)

在所有情况下,您都不需要全局步骤。但有时人们希望停止训练,调整一些代码,然后继续使用已保存和恢复的模型进行训练。然后通常很高兴知道到目前为止这个模型已经训练了多长时间(=多少时间步长)。这就是全球的一步。

有时,您的学习率制度可能取决于模型已经训练的时间。假设你想每100,000步骤衰减你的学习率。如果你没有跟踪已经采取的步骤数量,如果你中断了训练并且没有跟踪已经采取的步骤数量,这可能会很困难。

此外,如果您使用张量板,则全局步骤是图表x轴的中心参数。