global_steps

stackoverflow上的回答:

global_step指的是图表中看到的批次数。每次提供一批时,权重都会朝着使损失最小化的方向进行更新。global_step只是跟踪到目前为止看到的批次数量。minimize()参数列表中传递变量时,变量将增加一。看一看optimizer.minimize()

您可以global_step使用获取tf.train.global_step()实用的方法tf.train.get_global_step也很方便tf.train.get_or_create_global_step

0 是在这种情况下全局步骤的初始值。

golbal_steps记录了到目前为止有多少个批次进行了训练。

它的一个作用就是可以用来指数衰减学习率

global_step = tf.Variable(0)
learning_rate = tf.train.exponential_decay(0.1, global_step, 100, 0.96, staircase=True) #生成学习率
learning_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(....., global_step=global_step)  #使用指数衰减学习率
tf.compat.v1.train.exponential_decay(
    learning_rate,
    global_step,
    decay_steps,
    decay_rate,
    staircase=False,
    name=None
)

计算方式如下:

decayed_learning_rate=learining_rate*decay_rate^(global_step/decay_steps)

如果staircase = True,那就表明每decay_steps次计算学习速率变化,更新原始学习速率,如果是False,那就是每一步都更新学习速率

猜你喜欢

转载自www.cnblogs.com/flightless/p/12005005.html