pytorch动态调整学习率torch.optim.lr_scheduler.MultiStepLR()

pytorch中动态调整学习率的函数:torch.optim.lr_scheduler.MultiStepLR()

例如:

milestones= [50,70]

torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones, gamma=0.1, last_epoch=-1)

说明:
1)milestones为一个数组,如 [50,70];

2)gamma为倍数,如果learning rate开始为0.01 ,则当epoch为50时变为0.001,epoch 为70 时变为0.0001。
3)当last_epoch=-1,设定为初始lr。

使用示例:

opti = torch.optim.Adam(model.parameters(), lr=LR)

#动态调整学习率
drop_after_epoch = [3, 5, 7]
scheduler = optim.lr_scheduler.MultiStepLR(opti, milestones=drop_after_epoch, gamma=0.333, last_epoch=-1) 
for epoch in range(10): 
    train(...) 
    val_acc = validate(...)
   
    #注意,降低学习率需要在给出 val_acc 之后
    scheduler.step(val_acc)

还有其他一些调整学习率的函数,具体可在同一个文件中查看。

你可能感兴趣的:(python)