Pytorch-学习率调整策略Scheduler

    技术2023-11-16  103

    class_LRScheduler

    主要方法

    step():更细你下一个epoch的学习率get_lr():虚函数,计算下一个epoch的学习率

    学习率调整

    1.StepLR 等间隔调整学习率

    2.MultiStepLR 按给定间隔调整学习率 3.按照指数衰减调整学习率

    4.CosineAnnealingLR 诡异的学习率 5.ReduceLRonPlateau 这个和keras的ReduceLearningRate很像

    需要注意的是,在scheduler_lr的step方法中必须输入要监控的值

    scheduler_lr=optim.lr_scheduler.ReduceLROnPlateau(optimizer,factor=0.1,mode='min',patience=10,cooldown=10,min_lr=1e-4,verbose=True) scheduler_lr.step(loss.val)

    关于mode的说明,min表示观察是否下降,max模式表示观察是否上升,所以Min通常用来表示loss,max通常用来表示accuracy

    6.LambdaLR

    lambda1=lambda epoch:0.1**(epoch//20) lambda2=lambda epoch:0.95** epoch scheduler=torch.optim.lr_scheduler.LambdaLR(optimizer,lr_lambda=[lambda1,lambda2]) #在之后的训练循环中执行 scheduler.step()

    学习率调整小结

    有序调节:Step,MultiStep,Exponential,CosineAnnealing自适应调整:ReduceLROnPleatu自定义调整:Lambda

    搜索最大学习率

    Processed: 0.010, SQL: 9