2017-11-25 13 views
0

適応オプティマイザを使用しているときにKeraでオンライン学習がうまく動作しないため(.fit()を呼び出すと学習率スケジュールがリセットされます)、手動で設定できるかどうかを確認したいと思います。しかし、そのためには、学習率が最後の時代であったかどうかを知る必要があります。KerasのAdamオプティマイザで各エポックの学習率を印刷するにはどうすればよいですか?

しかし、各エポックでどのように学習率を印刷できますか?私はコールバックを介してそれを行うことができると思うが、それは毎回それを再計算する必要があり、私はアダムとそれを行う方法がわからないようだ。

私は別のスレッドでこれを見つけたが、それは唯一の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)) 

答えて

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)) 

thisスレッドに従ってください。

関連する問題