【问题标题】:How to print the adjusting learning rate in Pytorch?如何在 Pytorch 中打印调整学习率?
【发布时间】:2021-09-27 06:14:29
【问题描述】:

虽然我在 PPO 算法中使用了 torch.optim.Adam 和指数衰减_lr:

        self.optimizer = torch.optim.Adam([
            {'params': self.policy.actor.parameters(), 'lr': lr_actor},
            {'params': self.policy.critic.parameters(), 'lr': lr_critic}
        ])
        self.scheduler = torch.optim.lr_scheduler.ExponentialLR(self.optimizer, self.GAMMA)

初始 lr=0.1,GAMMA=0.9。

然后我在我的时代动态打印 lr:

            if time_step % update_timestep == 0:
                ppo_agent.update()
                print(f'__________start update_______________')
                print(ppo_agent.optimizer.state_dict()['param_groups'][0]['lr'])

但是,这有问题,错误是:

  File "D:\Anaconda\lib\site-packages\torch\distributions\beta.py", line 36, in __init__
    self._dirichlet = Dirichlet(concentration1_concentration0, validate_args=validate_args)
  File "D:\Anaconda\lib\site-packages\torch\distributions\dirichlet.py", line 52, in __init__
    super(Dirichlet, self).__init__(batch_shape, event_shape, validate_args=validate_args)
  File "D:\Anaconda\lib\site-packages\torch\distributions\distribution.py", line 53, in __init__
    raise ValueError("The parameter {} has invalid values".format(param))
ValueError: The parameter concentration has invalid values

然后,如果我删除“print()”语句,它确实工作得很好! 所以,这让我很困扰。

【问题讨论】:

    标签: python deep-learning pytorch reinforcement-learning


    【解决方案1】:

    你可以这样得到学习率:

    self.optimizer.param_groups[0]["lr"]
    

    【讨论】:

      猜你喜欢
      • 2019-04-23
      • 2020-11-16
      • 2020-03-19
      • 1970-01-01
      • 2019-01-18
      • 2021-09-30
      • 2019-09-03
      • 1970-01-01
      • 2019-03-10
      相关资源
      最近更新 更多