En ceci est code du tutoriel du site Web de TensorFlow,
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.
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?
_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.
vous montrer un échantillon vif ci-dessous:
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
Le global_step
Variable
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.