动态调整学习率方法(仅供自己学习)

目录

一、StepLR

二、MultiStepLR

三、ExponentialLR

四、CosineAnnealingLR

五、ReduceLRonPlateau

六、LambdaLR

小结:学习率调整​​​​​​​

一、StepLR

 optimizer = torch.optim.SGD(model.parameters(), lr=learn_rate)
scheduler = torch.optim.lr_scheduler.StepLR(optimizer,step_size=10,gamma=0.1)  # 选定调整方法
①torch.optim.lr_scheduler.StepLR(optimizer,step_size=50,gamma=0.1) 

即:【等间隔调整学习率】,每经过step_size个epoch,做一次学习率decay,以gamma值为缩小倍数。

参数:

        optimizer 是之前定义好的需要优化的优化器的实例名

        step_size 是学习率衰减的周期;每经过每个epoch,做一次学习率decay

        gamma 学习率衰减的乘法因子;默认为:0.1

例如:

二、MultiStepLR

optimizer = torch.optim.SGD(model.parameters(), lr=learn_rate)
scheduler = torch.optim.lr_scheduler.MultiStepLR(optimizer,milestones=[25,30,35],gamma=0.1)

②scheduler = torch.optim.lr_scheduler.MultiStepLR(optimizer,milestones=[25,30,35],gamma=0.1)
        即:【按照给定的间隔,调整学习率】
        参数: milestones 设置调整的里程数 (以数组的形式) 

三、ExponentialLR

optimizer = torch.optim.SGD(model.parameters(), lr=learn_rate)
scheduler = torch.optim.lr_scheduler.ExponentialLR(optimizer,gamma=0.95) 
③scheduler = torch.optim.lr_scheduler.ExponentialLR(optimizer,gamma=0.95)
    即:【按指数衰减调整学习率】
    参数:gamma:指数的底数 (通常会设置接近于1的数)
        调整方式:lr = lr * gamma**epoch

四、CosineAnnealingLR

scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=10,eta_min=0.) 
scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=20,eta_min=0.) 
    即:【预先周期调整学习率】
    参数:T_max:下降周期
        eta_min: 学习率下限

五、ReduceLRonPlateau

六、LambdaLR

scheduler = torch.optim.lr_scheduler.LambdaLR(optimizer,lr_lambda=lambda1) 

小结:学习率调整

1、有序调整:Step、MultiStep、Exponential和CosineAnnealing 

2、自适应调整:ReduceLROnPleateau

3、自定义调整:Lambda

tips:

学习率初始化:设置较小数:0.01、0.001、0.0001

相关推荐

  1. pytorch中模型训练的学习动态调整

    2024-04-08 13:22:04       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-08 13:22:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-08 13:22:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-08 13:22:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-08 13:22:04       20 阅读

热门阅读

  1. 什么是存储服务器?

    2024-04-08 13:22:04       12 阅读
  2. 人机协同会带来基础领域的新的科技革命

    2024-04-08 13:22:04       9 阅读
  3. SpringBoot项目中常用注解总结

    2024-04-08 13:22:04       16 阅读
  4. windows@命令行管理用户和用户组

    2024-04-08 13:22:04       16 阅读
  5. 【架构二】胖瘦客户端

    2024-04-08 13:22:04       12 阅读
  6. onnxruntime-gpu飘红报错怎么解决?

    2024-04-08 13:22:04       14 阅读
  7. SpringBoot生成一维码和二维码

    2024-04-08 13:22:04       15 阅读
  8. 系统架构评估_1.相关概念

    2024-04-08 13:22:04       13 阅读
  9. 【flask快速上手(一)】

    2024-04-08 13:22:04       14 阅读
  10. 深入浅出 -- 系统架构之负载均衡Nginx配置SSL证书

    2024-04-08 13:22:04       15 阅读
  11. 使用数据增强和dropout的图像分类

    2024-04-08 13:22:04       14 阅读