关于learning rate decay的问题,pytorch 0.2以上的版本已经提供了torch.optim.lr_scheduler的一些函数来解决这个问题。
我在迭代的时候使用的是下面的方法。
classtorch.optim.lr_scheduler.
MultiStepLR
(optimizer, milestones, gamma=0.1, last_epoch=-1)
>>> # Assuming optimizer uses lr = 0.05 for all groups >>> # lr = 0.05 if epoch < 30 >>> # lr = 0.005 if 30 <= epoch < 80 >>> # lr = 0.0005 if epoch >= 80 >>> scheduler = MultiStepLR(optimizer, milestones=[30,80], gamma=0.1) >>> for epoch in range(100): >>> scheduler.step() >>> train(...) >>> validate(...)
使用的时候check一下pytorch的版本,如果提示没有lr_scheduler don't find 尝试用from torch.optim import lr_scheduler 导入
具体的训练代码见 https://www.cnblogs.com/z1141000271/p/9394738.html