赞
踩
文章翻译自:https://pytorch.org/docs/stable/optim.html
torch.optim.lr_scheduler 中提供了基于多种epoch数目调整学习率的方法.
torch.optim.lr_scheduler.ReduceLROnPlateau :允许基于一些验证测量对学习率进行动态的下降
----------------------------------------------------------------------------------------------------------------------
class torch.optim.lr_scheduler.LambdaLR(optimizer,lr_lambda,last_epoch=-1)
将每一个参数组的学习率设置为初始学习率lr的某个函数倍.当last_epoch=-1时,设置初始学习率为lr.
参数:
optimizer(Optimizer对象)--优化器
lr_lambda(是一个函数,或者列表(list))--
当是一个函数时,需要给其一个整数参数,使其计算出一个乘数因子,用于调整学习率,通常该输入参数是epoch数目
或者是一组上面的函数组成的列表,
last_epoch(int类型):最后一次epoch的索引,默认为-1.
示例:
- # 假设有两组个参数组
- lambda1 = lambda epoch:epoch // 30
- lanbda2 = lambda epoch:0.95**epoch
- scheduler = LambdaLR(optimizer,lr_lambda=[lambdda1,lambda2])
- for epoch in range(100):
- scheduler.step()
- train(...)
- validate(...)
--------------------------------------------------------------------------------------------------------------------
class torch.optim.lr_scheduler.StepLR(optimizer,step_size,gamma=0.1,last_epoch=-1)
设置每个参数组的学习率为,
,当last_epoch=-1时,令lr=lr
参数:
optimizer(Optimizer对象)--优化器
step_size(整数类型): 调整学习率的步长,每过step_size次,更新一次学习率
gamma(float 类型):学习率下降的乘数因子
last_epoch(int类型):最后一次epoch的索引,默认为-1.
示例:
- >>> # Assuming optimizer uses lr = 0.05 for all groups
- >>> # lr = 0.05 if epoch < 30
- >>> # lr = 0.005 if 30 <= epoch < 60
- >>> # lr = 0.0005 if 60 <= epoch < 90
- >>> # ...
- >>> scheduler = StepLR(optimizer, step_size=30, gamma=0.1)
- >>> for epoch in range(100):
- >>> scheduler.step()
- >>> train(...)
- >>> validate(...)
-----------------------------------------------------------------------------------------------------------------------------------------------
..................
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。