1 torch.optim.lr_scheduler 模块介绍
lr_scheduler 模块主要是用来对学习率进行调整的方法, 该方法能让学习过程中, 学习率有特定的变化, 而不是一成不变的
2 lr_scheduler 下面的各个方法
首先一个大前提就是我们需要自己定义一个 model 和一个 optimizer, 最后再将 optimizer 放入 lr_scheduler 中
import torch
import numpy as np
from torch.optim import SGD
from torch.optim import lr_scheduler
from torch.nn.parameter import Parameter
model = [Parameter(torch.randn(2, 2, requires_grad=True))]
optimizer = SGD(model, lr=0.1)
2.1 StepLR
学习率调整方法,每过step_size轮,将此前的学习率乘以gamma
scheduler=lr_scheduler.StepLR(optimizer, step_size=30, gamma=0.1)
2.2 MultiStepLR
它会在每个milestone时,将此前学习率乘以gamma
scheduler = lr_scheduler.MultiStepLR(optimizer, milestones=[30,80], gamma=0.5)
2.3 ExponentialLR
ExponentialLR是指数型下降的学习率调节器,每一轮会将学习率乘以gamma,所以这里千万注意gamma不要设置的太小,不然几轮之后学习率就会降到0
scheduler=lr_scheduler.ExponentialLR(optimizer,