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

回到顶部