1、StepLR
功能:固定等间隔调整学习率
主要参数:
step_size:调整间隔数
gamma:调整系数
调整方式:
l r = l r ∗ g a m m a lr=lr\ast gamma lr=lr∗gamma
![](https://file.jishuzhan.net/article/1774710639277641729/7ad3019f048d7f5cdbae24dc6f559dae.webp)
2、MultiStepLR
功能:按给定间隔调整学习率
主要参数:
milestones:设定调整的时刻数
gamma:调整系数
调整方式:
l r = l r ∗ g a m m a lr=lr\ast gamma lr=lr∗gamma
![](https://file.jishuzhan.net/article/1774710639277641729/e7b5b43d049487a65e5e19bf2dc6eea3.webp)
3、ExponentialLR
功能:按指数衰减调整学习率
主要参数:
gamma:指数的底
调整方式:
l r = l r ∗ g a m m a e p o c h lr=lr\ast gamma^{epoch} lr=lr∗gammaepoch
4、CosineAnnealingLR
功能:预弦周期调整学习率
主要参数:
T_max:下降周期
eta_min:学习率下限
调整方式:
η t = η m i n + 1 2 ( η m a x − η m i n ) ( 1 + cos T c u r T m a x Π ) \eta _{t} =\eta _{min}+\frac{1}{2} \left (\eta {max} -\eta {min}\right ) \left ( 1+\cos \frac{T{cur} }{T{max} }\Pi \right ) ηt=ηmin+21(ηmax−ηmin)(1+cosTmaxTcurΠ)
![](https://file.jishuzhan.net/article/1774710639277641729/ca3da3decdf8e59db54022e1cd75e995.webp)
这里的T_max是以epoch为单位的,T_max对于余弦函数学习率的半周期(下降的半周期)
![](https://file.jishuzhan.net/article/1774710639277641729/9a6ef5d9e222cf4740cd51f0865988ff.webp)
5、LinearLR
主要参数:
start_factor:起始factor
end_factor:终止factor
LinearLR是线性学习率,给定起始factor和最终的factor,LinearLR会在中间阶段做线性插值,比如学习率为0.1,起始factor为1,最终的factor为0.1。那么刚开始迭代时,学习率将为0.1,最终轮学习率为0.01。下面设置的总轮数total_iters为80,所以超过80时,学习率恒为0.01。
![](https://file.jishuzhan.net/article/1774710639277641729/7bc48eadd44d77129ab1bd7093efcf91.webp)