首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过权重和偏差在keras中记录学习率计划

通过权重和偏差在keras中记录学习率计划
EN

Stack Overflow用户
提问于 2021-08-24 07:17:26
回答 1查看 408关注 0票数 4

我正在训练一个keras模型,并为优化器使用一个自定义的学习率调度器(类型为tf.keras.optimizers.schedules.LearningRateSchedule),,我想通过权重和偏差框架记录学习率的变化。我找不到如何将它传递给WandbCallback对象或以任何方式记录它

EN

回答 1

Stack Overflow用户

发布于 2021-08-24 16:42:48

您可以使用自定义Keras回调将自定义学习率记录到权重和偏差上。

W&B的WandbCallback无法自动记录您的自定义学习率。通常,对于这样的自定义日志记录,如果您使用自定义训练循环,则可以使用wandb.log()。如果您使用的是model.fit()自定义Keras回调,则可以使用此方法。

例如:

这是我的基于tf.keras.optimizers.schedules.LearningRateSchedule的调度程序。

代码语言:javascript
复制
class MyLRSchedule(tf.keras.optimizers.schedules.LearningRateSchedule):

  def __init__(self, initial_learning_rate):
    self.initial_learning_rate = initial_learning_rate

  def __call__(self, step):
     return self.initial_learning_rate / (step + 1)

optimizer = tf.keras.optimizers.SGD(learning_rate=MyLRSchedule(0.001))

您可以使用optimizer.learning_rate(step)获取优化器的当前学习率。这可以封装为自定义的Keras回调,并与wandb.log()一起使用。

代码语言:javascript
复制
class LRLogger(tf.keras.callbacks.Callback):
    def __init__(self, optimizer):
      super(LRLogger, self).__init__()
      self.optimizer = optimizer

    def on_epoch_end(self, epoch, logs):
      lr = self.optimizer.learning_rate(epoch)
      wandb.log({"lr": lr}, commit=False)

请注意,在wandb.log调用中,我使用了commit=False参数。这将确保在相同的时间步长记录每个指标。更多关于它的here

model.fit()打电话。

代码语言:javascript
复制
tf.keras.backend.clear_session()
model = some_model()

model.compile(optimizer, 'categorical_crossentropy', metrics=['acc'])

wandb.init(entity='wandb-user-id', project='my-project', job_type='train')

_ = model.fit(trainloader,
          epochs=EPOCHS,
          validation_data=testloader,
          callbacks=[WandbCallback(), # using WandbCallback to log default metrics.
                     LRLogger(optimizer)]) # using callback to log learning rate.

wandb.finish()

这是W&B媒体面板:

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68903269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档