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

盐城做企业网站公司外链推广网站

盐城做企业网站公司,外链推广网站,网站做英文版有用吗,深圳网站建设服务什么便宜文章目录 1 工作原理2 常见优化器2.1 SGD2.2 Adam 3 优化器参数4 学习率5 使用最佳实践 本文环境: Pycharm 2025.1Python 3.12.9Pytorch 2.6.0cu124 ​ 优化器 (Optimizer) 是深度学习中的核心组件,负责根据损失函数的梯度来更新模型的参数,使…

文章目录

  • 1 工作原理
  • 2 常见优化器
    • 2.1 SGD
    • 2.2 Adam
  • 3 优化器参数
  • 4 学习率
  • 5 使用最佳实践

本文环境:

  • Pycharm 2025.1
  • Python 3.12.9
  • Pytorch 2.6.0+cu124

​ 优化器 (Optimizer) 是深度学习中的核心组件,负责根据损失函数的梯度来更新模型的参数,使模型能够逐步逼近最优解。在 PyTorch 中,优化器通过torch.optim模块提供。

​ Pytorch 链接:https://docs.pytorch.org/docs/stable/optim.html。

1 工作原理

​ 优化器的工作流程如下:

  1. 计算损失函数的梯度 (通过backward()方法)。
  2. 根据梯度更新模型参数 (通过step()方法)。
  3. 清除之前的梯度 (通过zero_grad()方法)。
result_loss.backward()  # 计算梯度
optim.step()           # 更新参数
optim.zero_grad()      # 清除梯度

2 常见优化器

​ PyTorch 提供多种优化器,以 SGD 和 Adam 为例。

2.1 SGD

​ 基础优化器,可以添加动量 (momentum) 来加速收敛。

image-20250528111156055
参数类型默认值作用使用建议
paramsiterable-待优化参数必须传入model.parameters()或参数组字典,支持分层配置
lrfloat1e-3学习率控制参数更新步长,SGD常用0.01-0.1,Adam常用0.001
momentumfloat0动量因子加速梯度下降(Adam内置动量,无需单独设置)
dampeningfloat0动量阻尼抑制动量震荡(仅当momentum>0时生效)
weight_decayfloat0L2正则化防止过拟合,AdamW建议0.01-0.1
nesterovboolFalseNesterov动量改进版动量法(需momentum>0)
maximizeboolFalse最大化目标默认最小化损失,True时改为最大化
foreachboolNone向量化实现CUDA下默认开启,内存不足时禁用
differentiableboolFalse可微优化允许优化器步骤参与自动微分(影响性能)
fusedboolNone融合内核CUDA加速,支持float16/32/64/bfloat16

2.2 Adam

image-20250528111450759
  • 特点:自适应矩估计,结合了动量法和 RMSProp 的优点。
  • 优点:通常收敛速度快,对学习率不太敏感。
参数名称类型默认值作用使用建议
paramsiterable-需要优化的参数(如model.parameters()必须传入,支持参数分组配置
lrfloat1e-3学习率(控制参数更新步长)推荐0.001起调,CV任务可尝试0.0001-0.01
betas(float, float)(0.9, 0.999)梯度一阶矩(β₁)和二阶矩(β₂)的衰减系数保持默认,除非有特殊需求
epsfloat1e-8分母稳定项(防止除以零)混合精度训练时可增大至1e-6
weight_decayfloat0L2正则化系数推荐0.01-0.1(使用AdamW时更有效)
decoupled_weight_decayboolFalse启用AdamW模式(解耦权重衰减)需要权重衰减时建议设为True
amsgradboolFalse使用AMSGrad变体(解决收敛问题)训练不稳定时可尝试启用
foreachboolNone使用向量化实现加速(内存消耗更大)CUDA环境下默认开启,内存不足时禁用
maximizeboolFalse最大化目标函数(默认最小化)特殊需求场景使用
capturableboolFalse支持CUDA图捕获仅在图捕获场景启用
differentiableboolFalse允许通过优化器步骤进行自动微分高阶优化需求启用(性能下降)
fusedboolNone使用融合内核实现(需CUDA)支持float16/32/64时启用可加速

3 优化器参数

​ 所有优化器都接收两个主要参数:

  1. params:要优化的参数,通常是model.parameters()
  2. lr:学习率(learning rate),控制参数更新的步长。

​ 其他常见参数:

  • weight_decay:L2 正则化系数,防止过拟合。
  • momentum:动量因子,加速 SGD 在相关方向的收敛。
  • betas(Adam 专用):用于计算梯度及其平方的移动平均的系数。

4 学习率

​ 学习率是优化器中最重要的超参数之一。

  • 太大:可能导致震荡或发散。
  • 太小:收敛速度慢。
  • 常见策略:
    • 固定学习率 (如代码中的 0.01)。
    • 学习率调度器 (Learning Rate Scheduler) 动态调整。

5 使用最佳实践

  1. 梯度清零:每次迭代前调用optimizer.zero_grad(),避免梯度累积。
  2. 参数更新顺序:先backward()step()
  3. 学习率选择:可以从默认值开始 (如 Adam 的 0.001),然后根据效果调整。
import torch
import torchvision
from torch import nn
from torch.utils.data import DataLoaderdataset = torchvision.datasets.CIFAR10(root='./dataset',  # 保存路径train=False,  # 是否为训练集transform=torchvision.transforms.ToTensor(),  # 转换为张量download=True  # 是否下载
)dataloader = DataLoader(dataset, batch_size=1)class MyModel(nn.Module):def __init__(self):super(MyModel, self).__init__()self.model = nn.Sequential(nn.Conv2d(3, 32, 5, 1, 2),nn.MaxPool2d(2),nn.Conv2d(32, 32, 5, 1, 2),nn.MaxPool2d(2),nn.Conv2d(32, 64, 5, 1, 2),nn.MaxPool2d(2),nn.Flatten(),nn.Linear(64 * 4 * 4, 64),nn.Linear(64, 10))def forward(self, x):return self.model(x)loss = nn.CrossEntropyLoss()
model = MyModel()
torch.optim.Adam(model.parameters(), lr=0.01)
optim = torch.optim.SGD(model.parameters(), lr=0.01)for epoch in range(20):running_loss = 0.0# 遍历dataloader中的数据for data in dataloader:# 获取数据和标签imgs, targets = data# 使用模型对数据进行预测output = model(imgs)# 计算预测结果和真实标签之间的损失result_loss = loss(output, targets)# 将梯度置零optim.zero_grad()# 反向传播计算梯度result_loss.backward()# 更新模型参数optim.step()running_loss += result_lossprint(f'第 {epoch + 1} 轮的损失为 {running_loss}')
http://www.dtcms.com/wzjs/70207.html

相关文章:

  • 汇川区住房和城乡建设厅网站如何搭建企业网站
  • 求哪位大神发人和动物做愛视频网站东莞seo建站咨询
  • ppt怎么做网站推广运营怎么做
  • 做地方门户网站如何做怎么做百度网页
  • 萧山网站建设xsszwl百度认证
  • 南充市网站建设百度seoo优化软件
  • 商城网站建设价位友缘在线官网
  • 奶茶网站建设方案模板活动策划方案详细模板
  • wap网站源码下载软文营销广告案例
  • 什么软件可以做动漫视频网站进行优化
  • 做移门的网站百度点击排名收费软件
  • wordpress站内链接跳转百度互联网营销是什么
  • 设计韩国电影完整版下载北京seo主管
  • 做羞羞事的网站网络营销的真实案例分析
  • 北京企业官网网站建设报价宁波网络营销推广公司
  • 网络组建考试题宁波seo优化费用
  • 鱼鱼cmsseo搜索排名影响因素主要有
  • 金平党建网站建设方案重庆seo什么意思
  • 到国外网站上做兼职翻译百度快照投诉中心官网
  • 怎么做网站文章优化网站怎样优化关键词好
  • 阿里巴巴网站是怎么做的如何建立网址
  • 做别墅装修的公司seo关键词排名优化销售
  • 网站网址查询ip营销策略有哪些理论
  • 代购网站系统建网站不花钱免费建站
  • 资兴网站设计百度推广怎么赚钱
  • 自己做坑人网站的软件惊艳的网站设计
  • 创建学校网站2345网址大全设主页
  • 网站注册账号怎么做哈尔滨新闻头条今日新闻
  • 个人做电影网站违法吗怎么做品牌推广和宣传
  • 网站怎么做图片动态图片不显示了网站快速上排名方法