【问题标题】:Does the example for decaying the learning rate in TensorFlow website actually decay the learning rate?TensorFlow网站中衰减学习率的例子真的会衰减学习率吗?
【发布时间】:2016-06-27 04:07:26
【问题描述】:

我正在阅读衰减的学习率,并认为文档中可能存在错误并想确认。它说衰减方程是:

decayed_learning_rate = learning_rate * 衰减速率 ^ (global_step / decay_steps)

但是,如果global_step = 0 我猜永远不会衰变,对吧?但是,请看示例:

...
global_step = tf.Variable(0, trainable=False)
starter_learning_rate = 0.1
learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step,
                                           100000, 0.96, staircase=True)
# Passing global_step to minimize() will increment it at each step.
learning_step = (
    tf.GradientDescentOptimizer(learning_rate)
    .minimize(...my loss..., global_step=global_step)
)

它有一个设置为零的global_step = tf.Variable(0, trainable=False)。因此,没有衰减。这是正确的推论吗?

我认为当 staircase 函数设置为 true 时,整数除法可能会有一个警告,但即使在整数除法中,似乎仍然没有衰减。还是对楼梯的作用有什么误解?

【问题讨论】:

  • 它只是已经通过的步数并且它刚刚从零开始吗? ://

标签: machine-learning neural-network tensorflow conv-neural-network


【解决方案1】:

变量global_step 被传递给minimize 函数,每次运行训练操作learning_step 时都会递增。

它甚至写在你的代码注释中:

# Passing global_step to minimize() will increment it at each step.

【讨论】:

  • 我猜它在我第一次浏览时没有注册。谢谢!
【解决方案2】:

除了 Olivier 的回答之外,全局步骤也在 apply_gradients 中递增(这是 minimize 中的步骤之一)。

如果 global_step 不是 None,则该操作也会递增 global_step

因此,无论您如何进行优化(只需最小化或修改渐变),全局步长都会递增。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 2019-11-24
    • 2021-03-19
    相关资源
    最近更新 更多