recht einfache Lösung:
global_step = tf.Variable(1, name='global_step', trainable=False, dtype=tf.int32)
increment_global_step_op = tf.assign(global_step, global_step+1)
Dann, wenn Sie es erhöhen möchten, führen nur, dass op unter dem aktuellen tf.Session
sess
.
step = sess.run(increment_global_step_op)
Das in step
platziert Ergebnis ist der Wert des inkrementierten Variablen nach dem Inkrement. In diesem Fall wird der Wert von global_step nach dem Inkrementieren erhöht. Also 2
.
Wenn Sie dies für global_step wie mich verwenden, führen Sie es mit Ihrer training_op
.
result = sess.run([out, increment_global_step_op], {x: [i]})
+1 für trainierbar setzen = False. Beachten Sie, dass die assign-Methode durch tf.assign_add (global_step, 1) ersetzt werden kann. – lmsasu
Was ich nicht verstehe ist, wie der global_step mit meinem Optimierer korreliert? Muss ich dem Optimierer explizit mitteilen, dass die Variable 'global_step' mein globaler Schritt ist oder wie funktioniert das? – thigi