2017-11-25 84 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线程。

相关问题