用例子详细介绍Pytorch动态调整学习率

在PyTorch中使用MultiStepLR、ExponentialLR、CosineAnnealingLR、StepLR、LambdaLR动态调整学习率是非常简单的。这里为大家介绍几个例子:

1. MultiStepLR

import torch.optim as optim
from torch.optim.lr_scheduler import MultiStepLR
# 定义优化器
optimizer = optim.SGD(params, lr=0.1)
# 定义学习率策略
milestones = [5, 10, 15, 20]   # 在第5、10、15、20个epoch时分别调整学习率
gamma = 0.1                    # 学习率衰减倍数
scheduler = MultiStepLR(optimizer, milestones=milestones, gamma=gamma)
# 训练
for epoch in range(max_epoch):
    # 更新参数
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    # 更新学习率
    scheduler.step()

在上面的例子中,我们定义了一个MultiStepLR对象,传入了一个优化器和milestones参数,表示在什么时候进行学习率更新。可以看到,当训练到milestones指定的epoch时,就会将学习率乘以gamma指定的倍数进行更新。

2. ExponentialLR

 
  

你可能感兴趣的:(pytorch学习,pytorch,python,deep,learning,深度学习)