首页 > 其他分享 >【超全总结】10个PyTorch优化器及其使用方法【附代码】

【超全总结】10个PyTorch优化器及其使用方法【附代码】

时间:2024-11-26 17:02:08浏览次数:8  
标签:10 基于 超全 检测 torch YOLOv8 学习 PyTorch 深度

《------往期经典推荐------》

一、AI应用软件开发实战专栏【链接】

项目名称项目名称
1.【人脸识别与管理系统开发2.【车牌识别与自动收费管理系统开发
3.【手势识别系统开发4.【人脸面部活体检测系统开发
5.【图片风格快速迁移软件开发6.【人脸表表情识别系统
7.【YOLOv8多目标识别与自动标注软件开发8.【基于YOLOv8深度学习的行人跌倒检测系统
9.【基于YOLOv8深度学习的PCB板缺陷检测系统10.【基于YOLOv8深度学习的生活垃圾分类目标检测系统
11.【基于YOLOv8深度学习的安全帽目标检测系统12.【基于YOLOv8深度学习的120种犬类检测与识别系统
13.【基于YOLOv8深度学习的路面坑洞检测系统14.【基于YOLOv8深度学习的火焰烟雾检测系统
15.【基于YOLOv8深度学习的钢材表面缺陷检测系统16.【基于YOLOv8深度学习的舰船目标分类检测系统
17.【基于YOLOv8深度学习的西红柿成熟度检测系统18.【基于YOLOv8深度学习的血细胞检测与计数系统
19.【基于YOLOv8深度学习的吸烟/抽烟行为检测系统20.【基于YOLOv8深度学习的水稻害虫检测与识别系统
21.【基于YOLOv8深度学习的高精度车辆行人检测与计数系统22.【基于YOLOv8深度学习的路面标志线检测与识别系统
23.【基于YOLOv8深度学习的智能小麦害虫检测识别系统24.【基于YOLOv8深度学习的智能玉米害虫检测识别系统
25.【基于YOLOv8深度学习的200种鸟类智能检测与识别系统26.【基于YOLOv8深度学习的45种交通标志智能检测与识别系统
27.【基于YOLOv8深度学习的人脸面部表情识别系统28.【基于YOLOv8深度学习的苹果叶片病害智能诊断系统
29.【基于YOLOv8深度学习的智能肺炎诊断系统30.【基于YOLOv8深度学习的葡萄簇目标检测系统
31.【基于YOLOv8深度学习的100种中草药智能识别系统32.【基于YOLOv8深度学习的102种花卉智能识别系统
33.【基于YOLOv8深度学习的100种蝴蝶智能识别系统34.【基于YOLOv8深度学习的水稻叶片病害智能诊断系统
35.【基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统36.【基于YOLOv8深度学习的智能草莓病害检测与分割系统
37.【基于YOLOv8深度学习的复杂场景下船舶目标检测系统38.【基于YOLOv8深度学习的农作物幼苗与杂草检测系统
39.【基于YOLOv8深度学习的智能道路裂缝检测与分析系统40.【基于YOLOv8深度学习的葡萄病害智能诊断与防治系统
41.【基于YOLOv8深度学习的遥感地理空间物体检测系统42.【基于YOLOv8深度学习的无人机视角地面物体检测系统
43.【基于YOLOv8深度学习的木薯病害智能诊断与防治系统44.【基于YOLOv8深度学习的野外火焰烟雾检测系统
45.【基于YOLOv8深度学习的脑肿瘤智能检测系统46.【基于YOLOv8深度学习的玉米叶片病害智能诊断与防治系统
47.【基于YOLOv8深度学习的橙子病害智能诊断与防治系统48.【基于深度学习的车辆检测追踪与流量计数系统
49.【基于深度学习的行人检测追踪与双向流量计数系统50.【基于深度学习的反光衣检测与预警系统
51.【基于深度学习的危险区域人员闯入检测与报警系统52.【基于深度学习的高密度人脸智能检测与统计系统
53.【基于深度学习的CT扫描图像肾结石智能检测系统54.【基于深度学习的水果智能检测系统
55.【基于深度学习的水果质量好坏智能检测系统56.【基于深度学习的蔬菜目标检测与识别系统
57.【基于深度学习的非机动车驾驶员头盔检测系统58.【太基于深度学习的阳能电池板检测与分析系统
59.【基于深度学习的工业螺栓螺母检测60.【基于深度学习的金属焊缝缺陷检测系统
61.【基于深度学习的链条缺陷检测与识别系统62.【基于深度学习的交通信号灯检测识别
63.【基于深度学习的草莓成熟度检测与识别系统64.【基于深度学习的水下海生物检测识别系统
65.【基于深度学习的道路交通事故检测识别系统66.【基于深度学习的安检X光危险品检测与识别系统
67.【基于深度学习的农作物类别检测与识别系统68.【基于深度学习的危险驾驶行为检测识别系统
69.【基于深度学习的维修工具检测识别系统70.【基于深度学习的维修工具检测识别系统
71.【基于深度学习的建筑墙面损伤检测系统72.【基于深度学习的煤矿传送带异物检测系统
73.【基于深度学习的老鼠智能检测系统

二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~

《------正文------》

目录

引言

优化器是训练模型的核心,因为它们确定权重更新。选择正确的优化器可以显著影响训练深度学习模型的有效性和速度。本文将介绍10个优化器以及如何在PyTorch中实现它们。

1.随机梯度下降(SGD)

SGD通过减去由学习率缩放的损失的梯度来更新参数。通常使用动量来建立随时间的连续更新,以获得更新权重的“正确方向”的越来越好的估计,即使该方向随时间变化。它简单,对凸问题有效,并用于许多模型,如

代码示例:

import torch.optim as optim
import torch.nn as nn
from torch.nn import Transformer

model = Transformer()
optimizer = optim.SGD(model.parameters(), lr=0.01)

2.RMSprop(Root Mean Square Propagation)

RMSprop维护平方梯度的移动平均值,将其归一化以处理非静止目标。推荐用于RNN,如InceptionV3,LSTM和GRU。

代码示例:

import torch.optim as optim
import torch.nn as nn
from torch.nn import Transformer

model = Transformer()
optimizer = optim.RMSprop(model.parameters(), lr=0.01)

3. Adagrad(自适应梯度算法)

Adagrad调整每个参数的学习率,对不常见的参数执行更大的更新。对稀疏数据有效,用于Word2Vec和文本分类器等模型。

代码示例:

import torch.optim as optim
import torch.nn as nn
from torch.nn import Transformer

model = Transformer()
optimizer = optim.Adagrad(model.parameters(), lr=0.01)

4. Adam(Adaptive Moment Estimation)

Adam结合了AdaGrad和RMSProp,根据低阶矩的估计来调整学习率。这是最推荐的默认优化器,因为它非常有效,并且对超参数选择非常健壮。适用于各种模型,数据集和应用程序,用于Transformer和GAN等模型。

代码示例:

import torch.optim as optim
import torch.nn as nn
from torch.nn import Transformer

model = Transformer()
optimizer = optim.Adam(model.parameters(), lr=0.001)

5. Adadelta

Adadelta是基于Adagrad的扩展,它使用梯度更新的移动窗口来调整学习速率,使其对CNN和RNN等深度网络具有鲁棒性。

代码示例:

import torch.optim as optim
import torch.nn as nn
from torch.nn import Transformer

model = Transformer()
optimizer = optim.Adadelta(model.parameters())

6. AdamW

AdamW类似于Adam,包括解耦的权重衰减,提高了优化性能和泛化能力。适用于BERT和GPT等大型模型。

代码示例:

import torch.optim as optim
import torch.nn as nn
from torch.nn import Transformer

model = Transformer()
optimizer = optim.AdamW(model.parameters(), lr=0.001, weight_decay=0.01)

7. Nesterov Accelerated Gradient(NAG)

NAG在计算梯度之前应用动量更新,减少振荡并加速收敛。适合ResNet和VGG等深度卷积网络。可以非常快,但如果学习率太高,可能会出现分歧。

代码示例:

import torch.optim as optim
import torch.nn as nn
from torch.nn import Transformer

model = Transformer()
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9, nesterov=True)

8.平均随机梯度下降

ASGD随着时间的推移对权重进行平均,以更好地泛化,稳定CNN和NLP模型等深度网络中的训练。

代码示例:

import torch.optim as optim
import torch.nn as nn
from torch.nn import Transformer

model = Transformer()
optimizer = optim.ASGD(model.parameters(), lr=0.01)

9. LBFGS

LBFGS (Limited-memory Broyden–Fletcher–Goldfarb–Shanno)使用有限的内存来近似BFGS算法,适用于Logistic回归和SVM等模型中的中小型数据集。可以有非常快的收敛速度,尽管在内存和运行时间方面代价很高。

代码示例:

import torch.optim as optim
import torch.nn as nn
from torch.nn import Transformer

model = Transformer()
optimizer = optim.LBFGS(model.parameters())

10.Resilient Backpropagation

Rprop基于偏导数的符号更新权重,对梯度大小具有鲁棒性,用于多层感知器。

代码示例:

import torch.optim as optim
import torch.nn as nn
from torch.nn import Transformer

model = Transformer()
optimizer = optim.Rprop(model.parameters(), lr=0.01)

总结

通常我们使用最多的优化器是SGD、Adam和AdamW这几个优化器。因为它非常有效,并且对超参数的选择非常鲁棒。也就是说,优化器的超参数可能对深度学习模型的性能产生最大的影响,因此超参数调优至关重要。这意味着如果超参数选择正确,其他优化器可以在您的特定用例中也可能获得比较好的性能。


在这里插入图片描述

好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!

标签:10,基于,超全,检测,torch,YOLOv8,学习,PyTorch,深度
From: https://blog.csdn.net/qq_42589613/article/details/144035238

相关文章

  • 10 EXcel表格数据透视表介绍
     1.数据透视表的基本概念1.1什么是数据透视表数据透视表是Excel中用于快速汇总、分析和呈现数据的强大工具。通过简单的拖拽操作,可以轻松对数据进行分类汇总、筛选、分组等操作,适用于大数据量的分析。核心特点:数据动态汇总:可以自动更新结果。强大的数据可视化:支持生成......
  • 小迪安全第10天HTTP数据包
    请求包:request回显包:response(1)请求方式:postgetget:提交请求post:向指定资源提交内容,登录/上传文件•get:向特定资源发出请求(请求指定页面信息,并返回实体主体);•post:向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改;•head:与服务......
  • 代码随想录算法训练营第十天(LeetCode232.用栈实现队列;LeetCode225.用队列实现栈;LeetCo
    LeetCode232.用栈实现队列题目链接:用栈实现队列题目链接思路队列是先进先出,栈是先进后出,为了能够让栈可以模拟队列的先进先出,我们设置两个栈,一个栈作为入栈,一个栈作为出栈,我们在入栈存储完数据后,将入栈中的数据全部存储到出栈中,那么从出栈中弹出来的数据就是先进先出的......
  • Love相爱100配置教程
    Love情侣Typecho主题,主题以简为主。此款主题下载后可立即安装使用,不需再考虑如何对博客优化、Seo优化等,也同时达到了“秀”。下载https://typecho.work/archives/Love.html功能特性轻量级/扁平化/响应式/移动端优化无框架/不依赖任何库/纯手写代码SEO优化/结构......
  • 自学网络安全(黑客技术)2024年 —100天学习计划
    ......
  • 自学网络安全(黑客技术)2024年 —100天学习计划
    ......
  • AS-V1000视频平台:部署在国产操作系统麒麟上并实现实时视频监控的浏览查看和回看
    目录一.问题来源二.银河麒麟系统的介绍三.下载麒麟系统的步骤四.配置平台并查看结果4.1外部设备接入4.1.1摄像机配置4.1.2平台配置4.2配置资源组4.3配置角色和用户4.4查看最终结果一.问题来源        客户想要在安装银河麒麟服务的服务器上使用AS-V1000......
  • 占用磁盘100%?Apache DolphinScheduler 日志如何定时清理!
    当ApacheDolphinScheduler运行几个月后,大部分朋友会发现Logs下的运行日志越来越多,这时可以考虑清理下Logs/目录下的日志文件,比如设置只保留最近3天的日志,怎么操作呢?可以通过执行以下三个命令来实现:find./logs-typef-mtime+3-name"dolphinscheduler-worker.*.lo......
  • PowerShell配色方案修改 —— Windows 10下设置PowerShell背景,文字,命令,错误信息,错误信
    PowerShell配色方案修改——Windows10下设置PowerShell背景,文字,命令,错误信息,错误信息背景等等的颜色—仅供参考!!!前言:笔者平时使用wsl的时候,觉得其它开发工具相对笨重,且CMD代码框又太简陋,PowerShell正好符合目前需求,且可自定义调节颜色,网上看了太多华丽花哨的调色,看来看去还是觉......
  • 华为OD机试 - 公共子串计算 (Java 2024 E卷 100分)
    华为OD机试2024E卷题库疯狂收录中,刷题点这里。实战项目访问:http://javapub.net.cn/专栏导读本专栏收录于《华为OD机试(JAVA)真题(E卷+D卷+A卷+B卷+C卷)》。刷的越多,抽中的概率越大,私信javapub,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注......