Что означает глобальный шаг в Тензорном потоке?


в этом учебник код С сайта TensorFlow,

  1. может ли кто-нибудь помочь объяснить, что делает global_step в смысле?

    Я нашел на сайте Tensorflow написано, что глобальный шаг используется подсчет учебных шагов, но я не совсем понимаю, что именно это означает.

  2. кроме того, что означает число 0 при настройке global_step?

    def training(loss,learning_rate):
        tf.summary.scalar('loss',loss)
        optimizer = tf.train.GradientDescentOptimizer(learning_rate)

        # Why 0 as the first parameter of the global_step tf.Variable?
        global_step = tf.Variable(0, name='global_step',trainable=False)

        train_op = optimizer.minimize(loss, global_step=global_step)

        return train_op

согласно Тензорному потоку док global_step: увеличение на единицу после обновления переменных. Означает ли это, что после одного обновления global_step будет 1?

3   51   2016-12-15 17:32:18

3 ответа:

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 является начальным значением глобального шага в этом контексте.

The global_stepVariable содержит общее количество шагов во время обучения по всем задачам (каждый индекс шага будет выполняться только для одной задачи).

временная шкала, созданная global_step помогает нам понять, где мы находимся грандиозная схема, от каждой из задач отдельно. Например, потери и точность можно построить против global_step на тензорной доске.

показать вам яркий пример:

код:

train_op = tf.train.GradientDescentOptimizer(learning_rate=LEARNING_RATE).minimize(loss_tensor,global_step=tf.train.create_global_step())
with tf.Session() as sess:
    ...
    tf.logging.log_every_n(tf.logging.INFO,"np.mean(loss_evl)= %f at step %d",100,np.mean(loss_evl),sess.run(tf.train.get_global_step()))

соответствующие печати

INFO:tensorflow:np.mean(loss_evl)= 1.396970 at step 1
INFO:tensorflow:np.mean(loss_evl)= 1.221397 at step 101
INFO:tensorflow:np.mean(loss_evl)= 1.061688 at step 201