web-dev-qa-db-fra.com

Que signifie global_step dans Tensorflow?

En ceci est code du tutoriel du site Web de TensorFlow,

  1. quelqu'un pourrait-il aider à expliquer ce que signifie global_step?

    J'ai trouvé sur le site Web de Tensorflow écrit que l'étape globale est utilisée pour compter les étapes d'entraînement , mais je ne comprends pas très bien ce que cela signifie exactement.

  2. De plus, que signifie le nombre 0 lors de la configuration de 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

Selon la doc de Tensorflow global_step: incrément de un après la mise à jour des variables . Est-ce que cela signifie qu'après une mise à jour, global_step devient 1?

78
GabrielChu

_global_step_ fait référence au nombre de lots vus par le graphique. Chaque fois qu'un lot est fourni, les poids sont mis à jour dans le sens qui minimise la perte. _global_step_ ne fait que garder une trace du nombre de lots vus jusqu'à présent. Lorsqu'elle est passée dans la liste d'arguments minimize(), la variable est augmentée de un. Regardez optimizer.minimize() .

Vous pouvez obtenir la valeur _global_step_ en utilisant tf.train.global_step() . Les méthodes utilitaires tf.train.get_global_step ou tf.train.get_or_create_global_step sont également pratiques.

_0_ est la valeur initiale de l'étape globale dans ce contexte.

93
martianwars

vous montrer un échantillon vif ci-dessous:

code:

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()))

impression correspondante

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
3
yichudu

Le global_stepVariable contient le nombre total d'étapes au cours de la formation entre les tâches (chaque index d'étape n'apparaît que sur une seule tâche).

Une chronologie créée par global_step nous aide à comprendre où nous en sommes dans le grand schéma, à partir de chacune des tâches séparément. Par exemple, la perte et la précision pourraient être tracées par rapport à global_step sur Tensorboard.

2