En este es el código del tutorial del sitio web de TensorFlow,
¿Alguien podría ayudar a explicar lo que
global_step
significa?Encontré en el sitio web de Tensorflow escrito que el paso global se usa para contar los pasos de entrenamiento , pero no entiendo qué significa exactamente.
Además, ¿qué significa el número 0 al configurar
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
De acuerdo con el documento de Tensorflow global_step: se incrementa en uno después de que se hayan actualizado las variables . ¿Eso significa que después de una actualización se global_step
convierte en 1?
fuente
tf.train.global_step()
elglobal_step_tensor
está establecido en 10. ¿Eso significa que el gráfico ya ve 10 lotes?mostrarle una muestra vívida a continuación:
código:
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()))
impresión correspondiente
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
fuente
El
global_step
Variable
mantiene el número total de pasos durante el entrenamiento a través de las tareas (cada salto de índice sólo se producirá en una sola tarea).Una línea de tiempo creada por
global_step
nos ayuda a comprender dónde estamos en el gran esquema, de cada una de las tareas por separado. Por ejemplo, la pérdida y la precisión se pueden representarglobal_step
en Tensorboard.fuente
Hay redes, por ejemplo, GAN, que pueden necesitar dos (o más) pasos diferentes. El entrenamiento de un GAN con la especificación WGAN requiere que los pasos en el discriminador (o crítico) D sean más que los que se realizan en el generador G. En ese caso, es útil declarar diferentes variables de pasos globales.
Ejemplo: (
G_loss
yD_loss
son la pérdida del generador y el discriminador)G_global_step = tf.Variable(0, name='G_global_step', trainable=False) D_global_step = tf.Variable(0, name='D_global_step', trainable=False) minimizer = tf.train.RMSPropOptimizer(learning_rate=0.00005) G_solver = minimizer.minimize(G_loss, var_list=params, global_step=G_global_step) D_solver = minimizer.minimize(D_loss, var_list=params, global_step=D_global_step)
fuente