0

Ich las die verfallende Lernrate und dachte, dass es einen Fehler in den Dokumenten geben könnte und wollte bestätigen. Er sagt, dass die Zerfallsgleichung lautet:Verschlechtert das Beispiel für das Verfallen der Lernrate auf der TensorFlow-Website tatsächlich die Lernrate?

decayed_learning_rate = learning_rate * decay_rate^(global_step/decay_steps)

jedoch, wenn global_step = 0 würde ich denke, es nie ein Verfall ist, nicht wahr? Allerdings sehen Sie sich das Beispiel:

... 
global_step = tf.Variable(0, trainable=False) 
starter_learning_rate = 0.1 
learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step, 
              100000, 0.96, staircase=True) 
# Passing global_step to minimize() will increment it at each step. 
learning_step = (
    tf.GradientDescentOptimizer(learning_rate) 
    .minimize(...my loss..., global_step=global_step) 
) 

Es hat eine global_step = tf.Variable(0, trainable=False) hat, die gleich Null gesetzt wird. Also kein Verfall. Ist das richtiger Abzug?

Ich dachte, es könnte einen Vorbehalt wegen Integer-Division geben, wenn die Treppenhausfunktion auf True eingestellt ist, aber selbst bei der Ganzzahl-Division scheint es immer noch, dass es keinen Zerfall gibt. Oder gibt es ein Missverständnis darüber, was für eine Treppe das ist?

+0

ist es nur die Anzahl der Schritte, die vergangen sind und die auf Null gerade erst begonnen? :/ – Pinocchio

Antwort

2

Die Variable global_step wird an die Funktion minimize übergeben und bei jedem Ausführen des Trainingsvorgangs learning_step inkrementiert.

Es gibt sogar im Kommentar des Codes geschrieben:

# Passing global_step to minimize() will increment it at each step.

+0

Ich denke, es hat nicht registriert, als ich das erste Mal durchging. Vielen Dank! – Pinocchio