2017-11-25 83 views
0

因爲在使用自適應優化器時(在調用.fit()時學習速率計劃重置),因此在線學習與Keras無法正常工作,所以我想查看是否可以手動設置它。然而,爲了做到這一點,我需要找出最後一個時代的學習速度。如何使用Adam優化器在Keras中打印每個時代的學習速率?

那就是說,我怎樣才能打印每個時代的學習率?我想我可以通過回調做到這一點,但似乎每次都必須重新計算它,我不確定如何與亞當做到這一點。

我發現這在另一個線程,但它僅與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線程。

相關問題