0

Da Online-Lernen mit Keras nicht gut funktioniert, wenn Sie einen adaptiven Optimierer verwenden (der Lerngeschwindigkeitsplan wird zurückgesetzt, wenn .fit() aufgerufen wird), möchte ich sehen, ob ich ihn einfach manuell einstellen kann. Um das zu erreichen, muss ich herausfinden, wie hoch die Lernrate in der letzten Epoche war.Wie kann ich die Lernrate für jede Epoche mit Adam Optimizer in Keras drucken?

Wie gesagt, wie kann ich die Lernrate in jeder Epoche drucken? Ich denke, ich kann es durch einen Rückruf tun, aber es scheint, dass Sie es jedes Mal neu berechnen müssen und ich bin nicht sicher, wie man das mit Adam macht.

fand ich dies in einem anderen Thread, aber es funktioniert nur mit SGD:

class SGDLearningRateTracker(Callback): 
    def on_epoch_end(self, epoch, logs={}): 
     optimizer = self.model.optimizer 
     lr = K.eval(optimizer.lr * (1./(1. + optimizer.decay * optimizer.iterations))) 
     print('\nLR: {:.6f}\n'.format(lr)) 

Antwort

0
class MyCallback(Callback): 
    def on_epoch_end(self, epoch, logs=None): 
     lr = self.model.optimizer.lr 
     # If you want to apply decay. 
     decay = self.model.optimizer.decay 
     iterations = self.model.optimizer.iterations 
     lr_with_decay = lr/(1. + decay * K.cast(iterations, K.dtype(decay))) 
     print(K.eval(lr_with_decay)) 

Folgen this Fäden.

Verwandte Themen