【深度学习】Pytorch下直接更新Optimizer的学习率

【深度学习】Pytorch下直接更新Optimizer的学习率

一般而言我们更新优化器的学习率可以通过Scheduler,但其实也可直接针对Optimizer对象修改学习率
首先我们定义一个优化器

import torch.optimizer as optim
optimizer=optim.Adam(model.parameters,lr=0.01)#初始学习率为0.01

随后我们在epoch的循环中更新学习率

lr=get_epoch_lr(cur_epoch)#获取学习率
for param_group in optimizer.param_groups:
	param_group["lr"]=lr#更新学习率

我们可以使用我们自定义的获取学习率函数,以cos为例:

def lr_func_cos(cur_epoch):
	lr=0.5*(1.0+np.cos(np.pi*cur_epoch/100)
	return (1.0-0.00001)*lr + 0.00001
def get_epoch_lr(cur_epoch):
	#此处可添加Warmup之类的机制
	return lr_func_cos(cur_epoch)*0.01

你可能感兴趣的:(Pytorch框架笔记,python,程序人生,经验分享)