7.3 学习率调整策略
一、为什么要调整学习率 二、pytorch的六种学习率调整策略
前两节课学习了优化器的概念,优化器中有很多超参数,在这些参数中最重要的参数就是学习率。 我们知道学习率直接控制了参数更新的大小。在整个训练过程中,学习率也不是一成不变的,还是可以调整的。今天就来学习学习率的调整策略。
一、为什么要调整学习率学习率直接控制参数更新的步伐。 通常在训练中,一开始学习率可以给的比较大,让参数更新的步伐大一些。后期,让学习率小一些,让参数更新的步伐小一些。 为什么前期大,后期小呢?可以通过打高尔夫的例子来分析。
刚开始打的远一点,到了洞口附近再慢慢打。
二、_LRScheduler类在pytorch中提供了很好的学习率调整策略。这六种策略都是继承于_LRScheduler这个基类。所以,我们先来学这个类的基本属性和基本方法。
(1)主要属性
optimizer:关联的优化器。在讲优化器的时候,我们知道,在优化器中才存放学习率。而_LRScheduler会去修改优化器中的学习率,所以要关联优化器,才能改动其中的学习率。
last_epoch:记录epoch数。从这里可以知道,学习率调整是以epoch为周期的。千万不要在iteration中。
base_lrs:记录初始学习率。
看右边的__init__函数,发现只接受两个参数。
(2)主要方法
step(): 更新下一个epoch的学习率。 get_lr(): 计算下一个epoch的学习率。是一个虚函数,是供子类去重写的。
关系:step()中会调用get_lr()。
三、pytorch的六种学习率调整策略
1. stepLR
|
以上是 7.3 学习率调整策略 的全部内容, 来源链接: utcz.com/a/53064.html