gpt4 book ai didi

python - 如何在 Keras 中使用 Adam 优化器打印每个时期的学习率?

转载 作者:太空宇宙 更新时间:2023-11-04 00:25:51 24 4
gpt4 key购买 nike

因为在线学习在使用自适应优化器时不能很好地与 Keras 一起工作(学习率计划在调用 .fit() 时重置),我想看看我是否可以手动设置它。但是,为了做到这一点,我需要找出上一个时期的学习率是多少。

就是说,我如何打印每个时期的学习率?我想我可以通过回调来完成,但似乎你每次都必须重新计算它,我不确定如何使用 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))

最佳答案

我正在使用以下基于@jorijnsmit 回答的方法:

def get_lr_metric(optimizer):
def lr(y_true, y_pred):
return optimizer._decayed_lr(tf.float32) # I use ._decayed_lr method instead of .lr
return lr

optimizer = keras.optimizers.Adam()
lr_metric = get_lr_metric(optimizer)

model.compile(
optimizer=optimizer,
metrics=['accuracy', lr_metric],
loss='mean_absolute_error',
)

它适用于 Adam。

关于python - 如何在 Keras 中使用 Adam 优化器打印每个时期的学习率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47490834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com