当前位置: 首页 > article >正文

深度学习 —— 学习率衰减策略

目录学习率策略1. 先说结论2. 图例各种学习率下的图3. 学习率的方式4. 公式4. 神经网络的训练流程5. 完整代码示例学习率策略模型调优的时候可能才会用1. 先说结论① 学习率小 梯度下降慢② 学习率大 梯度下降快③ 学习率过大可能导致梯度震荡或暴涨2. 图例各种学习率下的图lr [0.01, 0.1, 0.125, 0.2, 0.4]3. 学习率的方式① 等间隔学习率衰减. optim.lr_scheduler.StepLR② 指定间隔学习率衰减 optim.lr_scheduler.MultiStepLR③ 指数学习率衰减. optim.lr_scheduler.ExponentialLR上图1 第一行代码上图2 第二行代码上图3 第三行代码# 学习率调度器 optimizer: 梯度下降优化器 step_size间隔周期 gama: 衰减系数 milestones 指定间隔 调整点。比如 【50125160】 那就是51开始 126开始 161开始 scheduler optim.lr_scheduler.StepLR(optimizer,step_size50,gamma0.5) # 指定间隔学习率衰减策略 scheduler optim.lr_scheduler.MultiStepLR(optimizer,milestones[50,125,160],gamma0.5) # 指数间隔学习率衰减策略 scheduler optim.lr_scheduler.ExponentialLR(optimizer,gamma0.95)④ 周期重启的余弦退火策略.optim.lr_scheduler.CosineAnnealingWarmRestarts4. 公式下面代码 显示上图结果。通常总训练轮数最少有5~10个周期。重启找到个最优状态找到个局部最小值。epoch 总周期长度。比如要5个周期。epoch 200T_0 40. 周期数 200/40# 批次数 iteration 10 scheduler optim.lr_scheduler.ExponentialLR(optimizer,gamma0.95) # 模型训练 # 遍历批次 for i in range(iteration): # 1.前向传播 y_pred w * x # 2.计算损失 # 3.梯度清零 # 4.反向传播 # 5.更新参数:w新 w旧-学习率*梯度 # 6.更新学习率 scheduler.step()如果: T_mult 2 .第一个周期点是 50第二个周期点是150第三个350.周期值 50 100 200 optimizer: 梯度下降优化器 T_0: 第一个周期的轮数 eta_min: 最小学习率 最大学习率 在 optimizer optim.SGD([w],lrlr) 里面 上面给的是0.1 T_mult: # 周期倍增因子,默认为1表示每个周期的轮数相同 scheduler optim.lr_scheduler.CosineAnnealingWarmRestarts( optimizer, # 优化器对象 T_050, # 第一个周期的轮数 eta_min0, T_mult1, )4. 神经网络的训练流程1.准备数据集2.构建神经网络模型3.设置损失函数和优化器以及学习率调度器4.模型训练1.前向传播2.计算损失3.梯度清零4.反向传播5.更新参数:w新 w旧-学习率*梯度6.更新学习率5.模型测试5. 完整代码示例# 导包 import torch import torch.nn as nn import torch.optim as optim # 优化器模块提供各种优化器对象比如SGD,Adam import matplotlib.pyplot as plt # 绘图 # 设置中文字体 plt.rcParams[font.sans-serif] [SimHei] # 微软雅黑 plt.rcParams[axes.unicode_minus] False # 解决负号显示问题 # 定义函数演示 周期重启的余弦退火策略 def demo(): # 0.初始化参数 lr 0.1 epochs 200 iteration 10 # 1.准备数据集 x torch.tensor([1.0],dtypetorch.float32) y_true torch.tensor([0.0],dtypetorch.float32) # 2.构建神经网络模型 # 创建张量模拟网络参数 w torch.tensor([1.0],dtypetorch.float32,requires_gradTrue) # 3.设置损失函数和优化器以及学习率调度器 # 损失函数 loss_fn nn.MSELoss() # 优化器 optimizer optim.SGD([w],lrlr) # 学习率调度器 optimizer: 梯度下降优化器 step_size间隔周期 gama: 衰减系数 milestones 指定间隔 调整点。比如 【50125160】 那就是51开始 126开始 161开始 #scheduler optim.lr_scheduler.StepLR(optimizer,step_size50,gamma0.5) # 指定间隔学习率衰减策略 #scheduler optim.lr_scheduler.MultiStepLR(optimizer,milestones[50,125,160],gamma0.5) # 指数间隔学习率衰减策略 #scheduler optim.lr_scheduler.ExponentialLR(optimizer,gamma0.95) # 周期重启的余弦退火策略 optimizer: 梯度下降优化器 T_0: 第一个周期的轮数 eta_min: 最小学习率 最大学习率 在 optimizer optim.SGD([w],lrlr) 里面 上面给的是0.1 T_mult: # 周期倍增因子,默认为1表示每个周期的轮数相同 scheduler optim.lr_scheduler.CosineAnnealingWarmRestarts( optimizer, # 优化器对象 T_050, # 第一个周期的轮数 eta_min0, T_mult1, ) # 4.模型训练 # 定义列表记录训练轮数和学习率 lr_list [] epoch_list [] for epoch in range(epochs): # 0.获取当前轮数 和 学习率保存到记录列表中 epoch_list.append(epoch) lr_list.append(scheduler.get_last_lr()[0]) # 遍历批次 for i in range(iteration): # 1.前向传播 y_pred w * x # 2.计算损失 # 3.梯度清零 # 4.反向传播 # 5.更新参数:w新 w旧-学习率*梯度 # 6.更新学习率 scheduler.step() # 5.可视化学习率变化 plt.plot(epoch_list,lr_list) plt.title(周期重启的余弦退火策略) plt.xlabel(epoch) plt.ylabel(lr) plt.show() # 测试 if __name__ __main__: demo()

相关文章:

深度学习 —— 学习率衰减策略

目录 学习率策略 1. 先说结论: 2. 图例:各种学习率下的图 3. 学习率的方式 4. 公式: 4. 神经网络的训练流程 5. 完整代码示例 学习率策略 模型调优的时候可能才会用 1. 先说结论: ① 学习率小, 梯度下降慢 …...

百度网盘直链解析工具:告别龟速下载,重获下载自由

百度网盘直链解析工具:告别龟速下载,重获下载自由 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否曾面对百度网盘几十KB的下载速度感到绝望&…...

深度学习 —— 正则化批量归一化BN

正则化概念是什么? 机器学习/深度学习中,防止模型过拟合/提高模型泛化能力的方法L1与L2正则化L1和L2正则化通过在损失函数上添加惩罚项来实现L1正则化在工程中,通常引入软阈值操作,权重小于某个值时,强制为0深度学习中…...

告别本地显卡焦虑:用阿里云PAI一站式部署ChatGLM3,我的云端AI开发环境搭建实录

告别本地显卡焦虑:用阿里云PAI一站式部署ChatGLM3,我的云端AI开发环境搭建实录 当我在本地用RTX 3060显卡尝试运行ChatGLM3时,风扇的呼啸声和漫长的等待让我意识到——消费级硬件已经难以承载大模型时代的开发需求。经过两周的云端实践&#…...

一根同轴电缆的逆袭:SDI接口如何靠‘复用’老设备,成为专业视频传输的30年常青树?

一根同轴电缆的逆袭:SDI接口如何靠‘复用’老设备,成为专业视频传输的30年常青树? 在技术迭代日新月异的今天,很少有标准能像SDI接口这样,凭借一根75欧姆同轴电缆和BNC接头,在专业视频传输领域屹立30年不倒…...

从华为3COM到H3C再到紫光:一个网络设备品牌的“前世今生”与认证体系变迁

H3C认证体系与产品线演进:网络工程师必备的品牌变迁指南 第一次接触H3C交换机的工程师,往往会对设备型号产生困惑——为什么S3600和S3900性能参数几乎相同?为什么早期教材中提到的HCNE认证如今变成了H3CNE?这些疑问背后&#xff0…...

深入浅出AUTOSAR通信栈:用一张图讲清楚CAN、CANIF、PDUR、COM、CANTP之间的数据流转

AUTOSAR通信栈全景解析:从CAN信号到应用层的可视化数据流 在汽车电子开发领域,AUTOSAR通信协议栈的复杂性常常让工程师们望而生畏。当一条CAN报文从总线进入ECU,到最终被应用层处理,中间究竟经历了哪些模块?每个模块又…...

从TOPS到实际吞吐量:解码AI芯片推理效率的四大关键指标

1. 为什么TOPS不能代表真实性能? 第一次接触AI芯片选型时,我也被厂商宣传的TOPS数值唬住了——直到实际部署时才发现,标称100TOPS的芯片跑ResNet-50的吞吐量还不如另一款40TOPS的芯片。这种"纸面算力"和"实际吞吐量"的落…...

告别串口不够用:手把手教你用WK2124芯片为树莓派/香橙派扩展4个UART

树莓派/香橙派串口扩展实战:WK2124芯片全攻略 当你在树莓派或香橙派上连接多个传感器、执行器或通信模块时,原生串口数量不足的问题常常成为开发瓶颈。WK2124这颗SPI转4串口芯片,能以不到20元的成本完美解决这个痛点。本文将带你从硬件连接到…...

LNMP架构里,Nginx和PHP-FPM到底是怎么‘谈恋爱’的?一次讲清FastCGI通信原理与调优

LNMP架构中Nginx与PHP-FPM的通信奥秘:从FastCGI原理到实战调优 当你的网站访问量从每天几百跃升到数万时,是否遇到过页面加载突然变慢的情况?作为经历过多次流量高峰的运维老兵,我发现90%的LNMP性能问题都源于Nginx与PHP-FPM的&qu…...

别再傻傻分不清!OBW、IBW、RBW、VBW,5分钟搞懂射频工程师的四种‘带宽’

射频工程师的四种带宽:从概念到实战的深度解析 刚接触射频工程的新人,面对各种"BW"缩写时,常常一头雾水。OBW、IBW、RBW、VBW这些看似简单的术语背后,隐藏着通信系统设计与测试的核心逻辑。理解这些概念的区别和应用场景…...

【应用方案】语音 + 触控 + 灯效融合,AI 线控器重构智能家电交互体验

在智能家居、家电设备飞速普及的当下,线控器作为人与设备交互的核心入口,长期以来多以“实用工具”的身份默默存在——机械按键的刻板操作、有限的功能边界,让它始终难以突破“基础控制”的局限。而随着端侧AI技术的指数级爆发,这…...

全面掌握QtScrcpy:高效实现Android设备屏幕镜像与控制的终极指南

全面掌握QtScrcpy:高效实现Android设备屏幕镜像与控制的终极指南 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy QtScrcpy是一款功能强大的开源Android屏幕镜像与控制软…...

Godot游戏资源提取:3分钟学会PCK文件解包技巧

Godot游戏资源提取:3分钟学会PCK文件解包技巧 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker 你是否玩过Godot引擎开发的游戏,被里面的精美素材吸引却无法获取?Go…...

逆向知乎x-zse-96参数时,我踩过的那些‘环境坑’:从Canvas到Window原型链的完整避坑指南

逆向知乎x-zse-96参数的环境陷阱全解析:从Canvas指纹到原型链检测的实战指南 当你在Node.js环境中完美复现了知乎x-zse-96参数的加密逻辑,却发现生成的签名始终无法通过服务端验证时,问题往往不在算法本身——那些隐藏在浏览器环境中的魔鬼细…...

量子电路经典模拟:理论与工程实践

1. 量子电路经典模拟的理论基础量子计算的经典模拟问题一直是理论计算机科学和量子物理交叉领域的核心课题。在参数化量子电路(PQC)和测量后量子电路(MPQC)的研究中,理解其经典可模拟性边界具有重要的理论和实践意义。1.1 局部可观测量估计的关键作用量子电路模拟的…...

量子控制中的运动诱导误差与深度强化学习优化

1. 量子控制中的运动诱导误差:原理与挑战量子控制技术是现代量子计算与量子信息处理的核心基础,其本质是通过精确调控量子系统的哈密顿量来实现目标量子态操作。在冷原子系统中,我们通常利用激光与原子相互作用产生的拉比振荡来实现量子比特操…...

LoRa网络‘侦察兵’:深入SX126x CAD原理,从调制解调器视角看懂信号检测

LoRa网络‘侦察兵’:深入SX126x CAD原理,从调制解调器视角看懂信号检测 在低功耗广域物联网(LPWAN)应用中,LoRa技术凭借其出色的通信距离和抗干扰能力成为行业标杆。但鲜为人知的是,支撑这些优势的核心技术…...

别只盯着Windows了!Fyne跨平台开发环境全攻略:从macOS、Linux到树莓派,一篇搞定

别只盯着Windows了!Fyne跨平台开发环境全攻略:从macOS、Linux到树莓派,一篇搞定 当开发者们谈论跨平台GUI开发时,往往第一个想到的是Electron或Qt。但如果你是一名Go语言爱好者,Fyne绝对是值得尝试的轻量级替代方案。与…...

NsEmuTools:如何快速部署和管理NS模拟器的终极解决方案

NsEmuTools:如何快速部署和管理NS模拟器的终极解决方案 【免费下载链接】ns-emu-tools 一个用于安装/更新 NS 模拟器的工具 项目地址: https://gitcode.com/gh_mirrors/ns/ns-emu-tools 还在为NS模拟器的繁琐安装和版本管理而烦恼吗?NsEmuTools为…...

支持向量机(SVM)原理与应用实战指南

1. 支持向量机:机器学习中的"边界大师"第一次听说支持向量机(SVM)时,我正为一个医疗诊断项目焦头烂额。我们需要区分两种极易混淆的细胞类型,传统逻辑回归的准确率始终卡在82%左右。直到一位前辈建议:"试试SVM吧&a…...

C4D R26全新界面实战:手把手教你自定义工作区,效率提升200%

C4D R26全新界面实战:手把手教你自定义工作区,效率提升200% 从R21/R25升级到R26的用户,第一反应往往是"我的工具栏去哪了?"。这个版本彻底重构了界面逻辑,将原先分散的功能模块重组为情境化工作区——这既是…...

微积分学习必备:代数、三角与函数分析基础

1. 微积分预备知识全景指南刚接触微积分时,我常看到学生因为忽略基础准备而陷入困境。就像盖楼需要打地基,学习微积分前必须掌握代数、三角学和函数分析这三块基石。本文将带你系统梳理这些关键预备知识,并分享我十五年来总结的高效学习方法。…...

Qt 6.5实战:用QMediaPlayer和QVideoWidget快速打造一个带界面的本地视频播放器

Qt 6.5实战:10分钟构建带UI的本地视频播放器 在当今多媒体应用泛滥的时代,快速开发一个功能完备的视频播放器仍然是许多C开发者的常见需求。Qt 6.5作为跨平台GUI框架的最新版本,其多媒体模块提供了令人惊艳的开发效率。本文将带你跳过冗长的理…...

算法训练营第11天| 80. 删除有序数组中的重复项

题目链接: https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/ 视频链接: https://www.bilibili.com/video/BV18G5UzzE8c/ 我的代码: https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/submissi…...

ZEROSIM框架:Transformer加速模拟电路设计

1. 项目概述:ZEROSIM框架的创新价值模拟电路设计一直是电子设计自动化(EDA)领域最具挑战性的环节之一。传统设计流程中,工程师需要反复进行SPICE仿真来评估电路性能,这个过程往往消耗整个设计周期70%以上的时间。以一个…...

Redis Stream实战:手把手教你用XGROUP CREATE解决‘NOGROUP’报错,搞定异步秒杀队列

Redis Stream实战:从零构建高可靠异步秒杀队列 最近在帮朋友优化一个电商秒杀系统时,遇到了一个典型问题:项目启动后频繁出现NOGROUP报错,导致整个异步队列机制瘫痪。这让我意识到,很多开发者在使用Redis Stream时&…...

超表面技术在无线安全通信中的应用与原理

1. 超表面技术基础与无线安全原理超表面(Metasurface)是一种由亚波长结构单元组成的人工电磁材料,能够对电磁波的相位、幅度和极化等特性进行精确调控。与传统天线不同,超表面通过大量微型可调元件(如变容二极管、MEMS开关等)的协同工作,实现…...

避坑指南:ArcGIS中河网上下游分析,为什么你的流向总是不对?

ArcGIS河网流向分析全攻略:从原理到实战避坑指南 从事水利规划或流域分析的朋友们,一定遇到过这样的困扰——明明按照标准流程操作,ArcGIS中的河网流向却总是不按预期显示。下游分析结果莫名其妙,追踪路径半路中断,反复…...

Zustand和Pinia的对比(谁更好用)

先给结论:没有绝对更好,只看你用什么框架、项目规模、开发需求;Vue项目:无脑pinia(官方原生、生态、调试全拉满)React项目:Zustand几乎全方位吊打旧方案,比Pinia更适配React两者框架…...