Ini adalah kode tutorial dari situs TensorFlow,
Adakah yang bisa membantu menjelaskan apa
global_step
artinya?Saya menemukan di situs web Tensorflow yang menulis bahwa langkah global digunakan untuk menghitung langkah-langkah pelatihan , tetapi saya tidak mengerti apa artinya.
Juga, apa arti angka 0 saat menyiapkan
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
Menurut Tensorflow doc global_step: bertambah satu setelah variabel diperbarui . Apakah itu berarti setelah satu pembaruan global_step
menjadi 1?
sumber
tf.train.global_step()
, yangglobal_step_tensor
diatur untuk 10. Apakah itu berarti 10 batch sudah dilihat oleh grafik?The
global_step
Variable
memegang jumlah langkah selama pelatihan di seluruh tugas (masing-masing indeks langkah akan terjadi hanya pada satu tugas).Garis waktu yang dibuat oleh
global_step
membantu kita memahami posisi kita dalam skema besar, dari setiap tugas secara terpisah. Misalnya, kerugian dan keakuratan dapat diplotkanglobal_step
di Tensorboard.sumber
tunjukkan contoh nyata di bawah ini:
kode:
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()))
cetakan yang sesuai
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
sumber
Ada jaringan, misalnya GAN, yang mungkin memerlukan dua (atau lebih) langkah berbeda. Melatih GAN dengan spesifikasi WGAN mensyaratkan bahwa langkah-langkah pada diskriminator (atau kritik) D lebih dari yang dilakukan pada generator G. Dalam hal ini, berguna untuk mendeklarasikan variabel global_steps yang berbeda.
Contoh: (
G_loss
danD_loss
apakah generator dan diskriminator hilang)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)
sumber