赞
踩
torch.optim.lr_scheduler.MultiStepLR表示按需求有外部设置调整学习率。具体参数如下:
假定优化器使用的学习率为 l r = 0.06 lr = 0.06 lr=0.06,在第40轮时候变成 l r = 0.006 lr=0.006 lr=0.006,在第 100 100 100轮的时候变成 l r = 0.0006 lr=0.0006 lr=0.0006,具体的代码实例如下所示:
>>> scheduler = MultiStepLR(optimizer, milestones=[40,100], gamma=0.1)
>>> for epoch in range(100):
>>> train(...)
>>> validate(...)
>>> scheduler.step()
在指定的 e p o c h epoch epoch值,如 [ 5 , 20 , 25 , 80 ] [5,20,25,80] [5,20,25,80]处对学习率进行衰减完整的代码展示如下所示:
model = AlexNet(num_classes=2) optimizer = optim.SGD(params = model.parameters(), lr=0.01) scheduler = lr_scheduler.MultiStepLR(optimizer, milestones=[5,20,25,80], gamma=0.1) plt.figure() x = list(range(100)) y = [] for epoch in range(100): scheduler.step() lr = scheduler.get_lr() print(epoch, scheduler.get_lr()[0]) y.append(scheduler.get_lr()[0]) plt.xlabel("epoch") plt.ylabel("learning rate") plt.plot(x,y)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。