学习率调整策略

学习率是可以控制更新的步伐的。 我们在训练模型的时候,一般开始的时候学习率会比较大,这样可以以一个比较快的速度到达最优点的附近,然后再把学习率降下来, 缓慢的去收敛到最优值。学习率前期要大,后期要小

在学习学习率调整策略之前,得先学习一个基类, 因为后面的六种学习率调整策略都是继承于这个类的,所以得先明白这个类的原理:
在这里插入图片描述
主要属性

optimizer: 关联的优化器, 得需要先关联一个优化器,然后再去改动学习率
last_epoch: 记录epoch数, 学习率调整以epoch为周期
base_lrs: 记录初始学习率

主要方法

step(): 更新下一个epoch的学习率, 这个是和用户对接
get_lr(): 虚函数, 计算下一个epoch的学习率, 这是更新过程中的一个步骤

在这里插入图片描述
这样我们就构建好了一个Scheduler。下面就看看这个Scheduler是如何使用的, 当然是调用step()方法更新学习率了, 那么这个step()方法是怎么工作的呢? 继续调试: 打断点,debug,步入:
在这里插入图片描述
步入之后,我们进入了_LRScheduler的step函数,
在这里插入图片描述
我们发现,这个跳到了我们的StepLR这个类里面,因为我们说过,这个get_lr在基类里面是个虚函数,我们后面编写的Scheduler要继承这个基类,并且要覆盖这个get_lr函数,要不然程序不知道你想怎么个衰减学习率法啊。 所以我们得把怎么衰减学习率通过这个函数告诉程序:
在这里插入图片描述
可以看到这里面就用到了初始化时候的base_lr属性

下面关于优化器的定义和使用的内部运行原理就可以稍微总结了
首先我们在定义优化器的时候,这时候会完成优化器的初始化工作, 主要有关联优化器(self.optimizer属性), 然后初始化last_epochbase_lrs(记录原始的学习率,后面get_lr方法会用到)。 然后就是用Scheduler,我们是直接用的step()方法进行更新下一个epoch的学习率(这个千万要注意放到epoch的for循环里面而不要放到batch的循环里面 ),而这个内部是在_Scheduler类的step()方法里面调用了get_lr()方法, 而这个方法需要我们写Scheduler的时候自己覆盖,告诉程序按照什么样的方式去更新学习率,这样程序根据方式去计算出下一个epoch的学习率,然后直接更新进优化器的_param_groups()里面去。

六种学习率调整策略已经整理完毕,下面小结一下:

有序调整: Step、MultiStep、 Exponential和CosineAnnealing, 这些得事先知道学习率大体需要在多少个epoch之后调整的时候用
自适应调整: ReduceLROnPleateau, 这个非常实用,可以监控某个参数,根据参数的变化情况自适应调整
自定义调整:Lambda, 这个在模型的迁移中或者多个参数组不同学习策略的时候实用

调整策略就基本完了,那么我们得先有个初始的学习率啊, 下面介绍两种学习率初始化的方式:

  • 设置较小数:0.01, 0.001, 0.0001
  • 搜索最大学习率: 看论文《Cyclical Learning Rates for Training Neural Networks》, 这个就是先让学习率从0开始慢慢的增大,然后观察acc, 看看啥时候训练准确率开始下降了,就把初始学习率定为那个数。
  • 在这里插入图片描述

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

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

相关文章

6种实用的绩效评估方法

种实用的绩效评估方法" 员工绩效考核 员工绩效评估流程对于组织提高员工生产力和改善他们的成果至关重要。绩效评估是一个年度过程,在该过程中,根据一组预先确定的目标评估员工的绩效和生产力。 绩效管理非常重要,不仅因为它是员工加…

分类问题的 8 种评估方法(全)

对于地震的预测,我们希望能够对所有要发生的地震都预测到,即使预测有地震了但是没有发生也能接受,但是不能接受预测没有地震却发生地震的情况。 再比如,对于犯罪嫌疑人的定罪,我们不能本着宁可错杀也不放过的原则把好人…

软件测试(白盒测试入门之gtest测试)

一、gtest是什么 gtest全程为GoogleTest,是一个跨平台的(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)C单元测试框架,由google公司发布。 如何去下载,调用,这个可以去找下相关教程,还需要先学下cmake…

华熙旭辉强强联手 升级京城文体地标 共绘文体商业版图

2月5日,华熙国际投资集团与旭辉集团在北京华熙LIVE中心签署战略合作框架协议,双方将共同对京城知名文体商业地标“华熙LIVE五棵松”进行开发运营,为项目注入新的活力,未来更有望在更多城市强强联手打造文体商业地标,让…

Java:使用HttpURLConnection发送请求时报文体为什么会为空?

最近使用java.net.HttpURLConnection做一些简单的测试程序,发现发送的报文体为空: import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL;public class Htt…

计算机英语文体特点,公共英语五级写作文体特点分析

公共英语五级写作文体特点分析 大家要掌握一些常见文体的写作方法和技巧。文章的常见文体有描写文(Description)、记叙文(Narration)、说明文 (Exposition)、议论文(Argumentation)、及应用文(Pratical Writing)等。各文体往往交叉使用,互相渗透。下面小编大家介绍公…

深入URP之Shader篇14: GPU Instancing

GPU Instancing 必须是同一个模型,材质也必须相同,但材质的参数可以不同(使用MaterialPropertyBlock指定),然后基于一个Instanced Draw Call,一次性绘制多个模型。 参考:https://docs.unity3d.…

9.3 功率放大电路的安全运行

在功率放大电路中,功放管既要流过大电流,又要承受高电压。例如,在 OCL 电路中,只有功放管满足式(9.2.13)所示极限值的要求,电路才能正常工作。因此,所谓功率放大电路的安全运行&…

八年终有一别

告别文章,本文应该所有的名字都会真名,我不知道侵犯权益什么的,希望不要冒犯到。 NOIp2018 提高组游记 ZJOI2019上海游族杯acm游记 绍兴一中集训记 NOI2019同步赛 day1 NOI2019同步赛 day2 绍兴一中暑假集训总结 慈溪中学集训记 CSP-S2019游…

怎么用Linux下载链接,在linux系统里,下载的迅雷专用链接!

wtf1981 于 2009-06-03 21:18:08发表: 事实看看 you_me 于 2009-05-20 19:34:17发表: 试试看吧 563909373 于 2009-05-20 19:11:23发表: 学习一下! kuiying 于 2009-05-17 21:39:25发表: 好阿 支持一下!!!!&#xff01…

如何减小迅雷下载对网络的影响

导言 很多用户都喜欢用迅雷进行各种资源的下载,因为迅雷通过镜像搜索可以同时从多个高速站点进行下载,从而达到满速下载的目的。但是,对于企业主/网管人员来说,高速下载的迅雷会占用有限的网络资源,在自己享受高速度的…

大规模 C++ 编译性能优化系统 OMAX 介绍

导读:本文探索&研究了大规模C/C服务编译性能优化相关技术,优化服务性能,降低机器成本,同时为了支持规模推广应用,降低业务线接入成本,保障优化效果,进行面向云上微服务,开展平台…

如何使用缓存优化系统性能?

缓存是我们提高系统性能的一项必不可少的技术,无论是前端、还是后端,都应用到了缓存 技术。前端使用缓存,可以降低多次请求服务的压力;后端使用缓存,可以降低数据库操作 的压力,提升读取数据的性能。 今…

关键词优化系统|智能优化「白狐公羊seo」

1.SEO的设置 。要进行SEO网站优化的前提,先设置TDK,三个重要的参数:title、keywords、description。因为TDK是一个网站优化的核心要素和重要标志。后期的优化都是围绕着TDK来进行的。设置TDK是对 网站优化排名 提升的其中一个方法。 2. 内容标题优化…

windows10 优化系统性能

以下仅供参考: 1、设置中 2、 设置中》搜索【启动应用】,关闭启动机器自动启动的应用 或者在任务管理器中 3、回收站 右键【属性】》一般设置为10G到15G之间 4、电源计划中设置高性能 考虑到个人健康 power shell命令中: 然后【更改计划】…

大规模C++编译性能优化系统OMAX介绍

导读:本文探索&研究了大规模C/C服务编译性能优化相关技术,优化服务性能,降低机器成本,同时为了支持规模推广应用,降低业务线接入成本,保障优化效果,进行面向云上微服务,开展平台…

系统优化方案

亲爱的用户,当您觉得计算机速度过慢,或者您想清理系统垃圾的话,您只需按照以下步骤操作即可哦(^U^)ノ~YO 一、手动清除系统盘的缓存文件: 打开桌面【此电脑】图标&#x…

如何进行系统性能优化

前言 不战而屈人之兵,善之善者也 性能优化的第一原则是,通过测试,日志,profiling 分析出哪有问题,然后有的放失。 性能优化时持久战,在深入理解业务后,结合系统响应,系统吞吐&#…

win10计算机系统优化设置,win10系统优化系统的详细办法

作为大多数用户都使用的win10系统,如果发生对win10系统优化系统进行设置情况,会让人束手无策,那么win10系统优化系统是怎么设置的呢?如果有朋友想对win10系统优化系统进行设置的话,按照1、右键点击“此电脑”&#xff…

系统优化的方法有哪些

对于很多人来说,系统优化可能只是个概念,真正想要操作的时候却又无从下手,然后一个不小心把系统搞崩溃了又凉凉。下面就和大家简单聊聊系统优化应该从哪几个方面去操作吧。 更多系统教程尽在小白系统重装官网 系统:win10专业版 …