学习率的作用是控制更新的步伐;
Pytorch提供了一个调整学习率的方法——class_LRScheduler
主要参数:
optimizer:关联的优化器;
last_epoch:记录epoch数;
base_lrs:记录初始学习率
class_LRScheduler(object):
def __init__(self,optimizer,last_epoch=1):
def get_lr(self):
raise NotlmplementedError
主要方法:
step():更新下一个epoch的学习率;
get_lr():虚函数,计算下一个epoch的学习率;
Pytorch的六种学习率调整策略
学习率调整小结
有序调整:Step、MultiStep、Exponential和CosineAnnealing;
自适应调整:ReduceLROnPleateau;当参数不再下降或者不再上升,调整学习率;
自定义调整:Lambda;在模型fintinue或者有多个模型参数组中对于不同参数执行不同学习率时可以使用
学习率初始化:
设置较小值:0.01,0001,0.0001
搜索最大学习率:《Cyclical Learning Rates for Training Neural Networks》