关于learning rate decay的问题,pytorch 0.2以上的版本已经提供了torch.optim.lr_scheduler的一些函数来解决这个问题。

我在迭代的时候使用的是下面的方法。

classtorch.optim.lr_scheduler.MultiStepLR(optimizermilestonesgamma=0.1last_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