在训练的时候,我想知道学习率的值,我该怎么做?这是我的代码,像这样:
my_optimizer = torch.optim.SGD(my_model.parameters(), lr=0.001, momentum=0.99, weight_decay=2e-3)
谢谢你。
hjqgdpho1#
仅对于一个参数组(如您给出的示例),您可以使用此函数并在训练期间调用它,以获取当前学习率:
def get_lr(optimizer): for param_group in optimizer.param_groups: return param_group['lr']
u3r8eeie2#
或者,您可以将lr_scheduler与优化器沿着使用,并简单地调用内置的lr_scheduler.get_lr()方法。下面是一个例子:
lr_scheduler
lr_scheduler.get_lr()
my_optimizer = torch.optim.Adam( my_model.parameters(), lr = 0.001, weight_decay = 0.002) my_lr_scheduler = torch.optim.lr_scheduler.StepLR( my_optimizer, step_size = 50, gamma = 0.1) # train ... my_optimizer.step() my_lr_scheduler.step() # get learning rate my_lr = my_lr_scheduler.get_lr() # or my_lr = my_lr_scheduler.optimizer.param_groups[0]['lr']
使用lr_scheduler的额外好处是可以更好地控制lr随时间的变化; lr_decay等。有关lr_scheduler参数,请参阅pytorch文档。
qf9go6mv3#
使用优化器。param_groups[-1]['lr']
3条答案
按热度按时间hjqgdpho1#
仅对于一个参数组(如您给出的示例),您可以使用此函数并在训练期间调用它,以获取当前学习率:
u3r8eeie2#
或者,您可以将
lr_scheduler
与优化器沿着使用,并简单地调用内置的lr_scheduler.get_lr()
方法。下面是一个例子:
使用
lr_scheduler
的额外好处是可以更好地控制lr随时间的变化; lr_decay等。有关lr_scheduler参数,请参阅pytorch文档。qf9go6mv3#
使用优化器。param_groups[-1]['lr']