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,那就是每一步都更新学习速率