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

news2024/11/30 8:50:47

目录

一、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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1586334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux重定向符号

将ls命令执行结果重定向到a文件中 将错误ls命令执行结果重定向到a文件中(这里用到前面的标准错误输出重定向)

【C++初阶】C++简单入门(长期维护)

本篇博客是对C的一些简单知识分享,有需要借鉴即可。 C简单入门目录 一、C前言1.C的概念:2.C发展历程3.C如何学? 二、C入门1.C关键字(C98标准)2.命名空间3.C输入&输出①概念说明②使用说明③特征说明④细节拓展⑤cout与cin的意义 4.缺省参…

【24年软考】系统架构设计师论文写作技巧(附范文10篇)

1.快速审题 写作文要先审题,架构师论文命题也是如此。论文命题除了确定题目之外,还会给你写作要求。而这个写作要求会告诉你本命题涉及的知识点有哪些,并给你确立一个写作向。这个可以参考后面的论文真题分析。 2.确定题目 在填写并确认好…

MATLAB有限元结构动力学分析与工程应用-徐斌|【PDF电子书+配套Matlab源码】

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现,并提供所有案例完整源码;2.单元…

wsl 2在windows11上的设置

详细参考:Manual installation steps for older versions of WSL | Microsoft Learn 1.系统组件要打开 分别是:Hyper-V、虚拟机平台、适用于Windows的Linux子系统 2.以管理员方式运行命令行,逐步执行下面的命令 update to WSL 2, you must…

篮球竞赛|基于Springboot的篮球竞赛预约平台系统设计与实现(源码+数据库+文档)

篮球竞赛预约平台目录 基于Springboot的篮球竞赛预约平台系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台: 2、后台 管理员功能 用户功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff…

llama-factory SFT系列教程 (一),大模型 API 部署与使用

文章目录 背景简介难点 前置条件1. 大模型 api 部署下一步阅读 背景 本来今天没有计划学 llama-factory,逐步跟着github的文档走,发现这框架确实挺方便,逐渐掌握了一些。 最近想使用 SFT 微调大模型,llama-factory 是使用非常广泛…

主从数据同步原理

2.2.主从数据同步原理 2.2.1.全量同步 主从第一次建立连接时,会执行全量同步,将master节点的所有数据都拷贝给slave节点,流程: 这里有一个问题,master如何得知salve是第一次来连接呢?? 有几个…

添加索引真的不会锁表吗

1.MySQL DDL执行方式 MySQL5.5以及之前的版本,通常更改数据表结构操作(DDL)会阻塞对表数据的增删改操作(DML)。 MySQL5.6提供Online DDL之后可支持DDL与DML操作同时执行,降低了DDL期间对业务延迟带来的影响。 2.Online ddl: 概念&#xff…

Innodb架构解析

整体架构 通过《面试官:一条SQL是如何执行的?》我们了解了MySQL架构,下面我们看下Innodb架构。 innodb最早由Innobase Oy公司开发,5.5版本开始是MySQL默认存储引擎,该存储引擎是第一个完整支持ACID事务的MySQL存储引…

多线程GUI界面文件复制程序的解决方案

在Python中,你可以使用多线程来编写一个GUI界面的文件复制程序。这样可以使得文件复制过程在后台进行,而不会阻塞用户界面,提升用户体验。下面是一个使用Python的Tkinter库和多线程实现的文件复制程序的示例: 1、问题背景 我们有…

Mac上的最佳3D建模工具-犀牛Rhinoceros 8 for Mac v8.6.24101.05002完美兼容激活

Rhino 8是一款计算机辅助设计(CAD)和三维建模软件,由美国公司McNeel & Associates开发。它是Rhino系列的最新版本,用于创建、编辑、分析、渲染和动画三维模型。 以下是Rhino 8的一些主要特点和功能: 1. **强大的…

今天讲讲MYSQL数据库事务怎么实现的!

目录 什么是数据库事务 Mysql如何保证原子性 Mysql如何保证持久性 MySQL怎么保证隔离性 事务隔离级别 脏读的解决 不可重复读的解决 幻读的解决 MVCC实现 Read View 那么RC、RR级别下的InnoDB快照读有什么不同? 什么是数据库事务 数据库事务是指一组数据…

2024年4月12日 十二生肖 今日运势

小运播报:2024年4月12日,星期五,农历三月初四 (甲辰年戊辰月丙午日),法定工作日。 红榜生肖:羊、狗、虎 需要注意:牛、马、鼠 喜神方位:西南方 财神方位:…

强化学习-深度蒙特卡洛算法(Deep Monte-Carlo)解决骰子游戏“吹牛”

一、算法简介 深度蒙特卡洛算法是一种使用深度神经网络来进行蒙特卡洛估计的强化学习算法,它最早于2020年在《DouZero: Mastering DouDizhu with Self-Play Deep Reinforcement Learning》被提出用于解决斗地主问题。 深度蒙特卡洛算法使用深度网络拟合每个时刻&…

HarmonyOS 开发-阻塞事件冒泡

介绍 本示例主要介绍在点击事件中,子组件enabled属性设置为false的时候,如何解决点击子组件模块区域会触发父组件的点击事件问题;以及触摸事件中当子组件触发触摸事件的时候,父组件如果设置触摸事件的话,如何解决父组…

应对人工智能在金融服务业的迅猛发展

今天分享的是人工智能专题系列深度研究报告:《人工智能专题:应对人工智能在金融服务业的迅猛发展》。 (报告出品方:安永) 评估人工智能对金融服务业的潜在影响 虽然大型银行和保险公司使用人工智能已有多年&#xf…

Rust语言入门第一篇-环境搭建

Rust语言入门第一篇 Rust官网 一,环境搭建 1、C开发环境配置 Rust 语言的底层是依赖于 C/C 编译器的。在安装 Rust 编译器时,通常会自动安装所需的 C/C 编译环境,以便 Rust 能够生成可执行文件或库。因此,在安装 Rust 之前&…

牛客NC413 两个升序数组的中位数【hard 数组,模拟 Java、Go、PHP】

题目 题目链接: https://www.nowcoder.com/practice/b3b59248e61f499482eaba636305474b 思路 直接模拟2个数组有顺序放到一个数组中help中如果help长度为奇数,返回中间的数如果help长度为偶数,返回中间2个数的和除以2参考答案java import j…

【学习】移动端兼容性测试有什么方法及重要性

随着移动互联网的快速发展,移动应用程序已经成为人们日常生活中不可或缺的一部分。然而,由于各种移动设备的硬件和软件差异,移动应用程序的兼容性问题也越来越突出。因此,移动端兼容性测试成为了一个重要的环节,它可以…