赞
踩
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)
学习率调整方法,每过step_size轮,将此前的学习率乘以gamma
scheduler=lr_scheduler.StepLR(optimizer, step_size=30, gamma=0.1)
它会在每个milestone时,将此前学习率乘以gamma
scheduler = lr_scheduler.MultiStepLR(optimizer, milestones=[30,80], gamma=0.5)
ExponentialLR是指数型下降的学习率调节器,每一轮会将学习率乘以gamma,所以这里千万注意gamma不要设置的太小,不然几轮之后学习率就会降到0
scheduler=lr_scheduler.ExponentialLR(optimizer,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。