位置: IT常识 - 正文

有关optimizer.param_groups用法的示例分析(有关的拼音)

编辑:rootadmin
有关optimizer.param_groups用法的示例分析 Optimizeroptimizer.param_groups用法的示例分析

推荐整理分享有关optimizer.param_groups用法的示例分析(有关的拼音),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:有关端午节的古诗,有关中秋节的古诗,有关读书的名言,有关的拼音,有关月亮的诗句,有关中秋节的古诗,有关诚信的名言,有关厉元朗的小说,内容如对您有帮助,希望把文章链接给更多的朋友!

日期:2022年7月25日

pytorch版本: 1.11.0

对于param_groups的探索

optimizer.param_groups: 是一个list,其中的元素为字典;

optimizer.param_groups[0]:长度为7的字典,包括[‘params’, ‘lr’, ‘betas’, ‘eps’, ‘weight_decay’, ‘amsgrad’, ‘maximize’]这7个参数;

下面用的Adam优化器创建了一个optimizer变量:

>>> optimizer.param_groups[0].keys()>>> dict_keys(['params', 'lr', 'betas', 'eps', 'weight_decay', 'amsgrad', 'maximize'])

可以自己把训练参数分别赋予不同的学习率,这样子list里就不止一个元素了,而是多个字典了。

params 是一个list[…],里面存放参数

>>> len(optimizer.param_groups[0]['params'])>>> 48>>> optimizer.param_groups[0]['params'][0]>>> Parameter containing:tensor([[ 0.0212, -0.1151, 0.0499, ..., -0.0807, -0.0572, 0.1166], [-0.0356, -0.0397, -0.0980, ..., 0.0690, -0.1066, -0.0583], [ 0.0238, 0.0316, -0.0636, ..., 0.0754, -0.0891, 0.0258], ..., [ 0.0603, -0.0173, 0.0627, ..., 0.0152, -0.0215, -0.0730], [-0.1183, -0.0636, 0.0381, ..., 0.0745, -0.0427, -0.0713],

lr 是学习率

>>> optimizer.param_groups[0]['lr']>>> 0.0005有关optimizer.param_groups用法的示例分析(有关的拼音)

betas 是一个元组(…),与动量相关

>>> optimizer.param_groups[0]['betas']>>> (0.9, 0.999)

eps

>>> optimizer.param_groups[0]['eps']>>> 1e-08

weight_decay 是一个int变量

>>> optimizer.param_groups[0]['weight_decay']>>> 0

amsgrad是一个bool变量

>>> optimizer.param_groups[0]['amsgrad']>>> False

maximize 是一个bool变量

>>> optimizer.param_groups[0]['maximize']>>> False

以网上的例子来继续试验:

import torchimport torch.optim as optimw1 = torch.randn(3, 3)w1.requires_grad = Truew2 = torch.randn(3, 3)w2.requires_grad = Trueo = optim.Adam([w1])print(o.param_groups)# 输出>>> [{'params': [tensor([[-0.1002, 0.3526, -1.2212], [-0.4659, 0.0498, -0.2905], [ 1.1862, -0.6085, 0.4965]], requires_grad=True)], 'lr': 0.001, 'betas': (0.9, 0.999), 'eps': 1e-08, 'weight_decay': 0, 'amsgrad': False, 'maximize': False}]

以下主要是Optimizer这个类有个add_param_group的方法

# Per the docs, the add_param_group method accepts a param_group parameter that is a dict. Example of use:import torchimport torch.optim as optimw1 = torch.randn(3, 3)w1.requires_grad = Truew2 = torch.randn(3, 3)w2.requires_grad = Trueo = optim.Adam([w1])print(o.param_groups)# 输出>>> [{'params': [tensor([[-1.5916, -1.6110, -0.5739], [ 0.0589, -0.5848, -0.9199], [-0.4206, -2.3198, -0.2062]], requires_grad=True)], 'lr': 0.001, 'betas': (0.9, 0.999), 'eps': 1e-08, 'weight_decay': 0, 'amsgrad': False, 'maximize': False}]o.add_param_group({'params': w2})print(o.param_groups)# 输出>>> [{'params': [tensor([[-1.5916, -1.6110, -0.5739], [ 0.0589, -0.5848, -0.9199], [-0.4206, -2.3198, -0.2062]], requires_grad=True)], 'lr': 0.001, 'betas': (0.9, 0.999), 'eps': 1e-08, 'weight_decay': 0, 'amsgrad': False, 'maximize': False}, {'params': [tensor([[-0.5546, -1.2646, 1.6420], [ 0.0730, -0.0460, -0.0865], [ 0.3043, 0.4203, -0.3607]], requires_grad=True)], 'lr': 0.001, 'betas': (0.9, 0.999), 'eps': 1e-08, 'weight_decay': 0, 'amsgrad': False, 'maximize': False}]平时写代码如何动态修改学习率(常规操作)for param_group in optimizer.param_groups: param_group["lr"] = lr 补充:pytorch中的优化器总结

以SGD优化器为例:

from torch import nn as nnimport torch as tfrom torch.autograd import Variable as Vfrom torch import optim # 优化器# 定义一个LeNet网络class LeNet(t.nn.Module): def __init__(self): super(LeNet, self).__init__() self.features = t.nn.Sequential( t.nn.Conv2d(3, 6, 5), t.nn.ReLU(), t.nn.MaxPool2d(2, 2), t.nn.Conv2d(6, 16, 5), t.nn.ReLU(), t.nn.MaxPool2d(2, 2) ) # 由于调整shape并不是一个class层, # 所以在涉及这种操作(非nn.Module操作)需要拆分为多个模型 self.classifiter = t.nn.Sequential( t.nn.Linear(16*5*5, 120), t.nn.ReLU(), t.nn.Linear(120, 84), t.nn.ReLU(), t.nn.Linear(84, 10) ) def forward(self, x): x = self.features(x) x = x.view(-1, 16*5*5) x = self.classifiter(x) return xnet = LeNet()# 通常的step优化过程optimizer = optim.SGD(params=net.parameters(), lr=1)optimizer.zero_grad() # 梯度清零,相当于net.zero_grad()input = V(t.randn(1, 3, 32, 32))output = net(input)output.backward(output) optimizer.step() # 执行优化

为不同的子网络参数不同的学习率,finetune常用,使分类器学习率参数更高,学习速度更快(理论上)。

1.经由构建网络时划分好的模组进行学习率设定,

# 为不同子网络设置不同的学习率,在finetune中经常用到# 如果对某个参数不指定学习率,就使用默认学习率optimizer = optim.SGD( [{'params': net.features.parameters()}, # 学习率为1e-5 {'params': net.classifiter.parameters(), 'lr': 1e-2}], lr=1e-5)

2.以网络层对象为单位进行分组,并设定学习率

# 只为两个全连接层设置较大的学习率,其余层的学习率较小# 以层为单位,为不同层指定不同的学习率# 提取指定层对象special_layers = nn.ModuleList([net.classifiter[0], net.classifiter[3]])# 获取指定层参数idspecial_layers_params = list(map(id, special_layers.parameters()))# 获取非指定层的参数idbase_params = filter(lambda p: id(p) not in special_layers_params, net.parameters())optimizer = t.optim.SGD([ {'params': base_params}, {'params': special_layers.parameters(), 'lr': 0.01}], lr=0.001)

参考: https://blog.csdn.net/weixin_43593330/article/details/108490956 https://www.cnblogs.com/hellcat/p/8496727.html https://www.yisu.com/zixun/456082.html

本文链接地址:https://www.jiuchutong.com/zhishi/300340.html 转载请保留说明!

上一篇:深度学习分析NASA电池数据(1 数据读取)

下一篇:详解Transformer中Self-Attention以及Multi-Head Attention(transformer for)

  • 两部oppo手机同步了怎么解除(oppo手机能做到两部手机同步吗?)

    两部oppo手机同步了怎么解除(oppo手机能做到两部手机同步吗?)

  • 魅族 18 Pro支持防抖吗(魅族18PRO支持OTG吗)

    魅族 18 Pro支持防抖吗(魅族18PRO支持OTG吗)

  • 华为手机在哪里设置陌生号码打不进来电话(华为手机在哪里关闭纯净模式)

    华为手机在哪里设置陌生号码打不进来电话(华为手机在哪里关闭纯净模式)

  • 微信聊天记录怎么彻底删除(微信聊天记录怎么恢复)

    微信聊天记录怎么彻底删除(微信聊天记录怎么恢复)

  • cad图层是什么意思(cad的图层是什么意思)

    cad图层是什么意思(cad的图层是什么意思)

  • QQ已过滤的通知什么意思(qq已过滤的通知怎么恢复)

    QQ已过滤的通知什么意思(qq已过滤的通知怎么恢复)

  • 电信用户名和密码是什么(电信用户名和密码查询)

    电信用户名和密码是什么(电信用户名和密码查询)

  • 数据分析能力是指什么(数据分析能力体现在哪些方面)

    数据分析能力是指什么(数据分析能力体现在哪些方面)

  • 荣耀30华为p40对比(荣耀30跟华为p40)

    荣耀30华为p40对比(荣耀30跟华为p40)

  • 联想进入安全模式快捷键(联想进入安全模式f8没反应)

    联想进入安全模式快捷键(联想进入安全模式f8没反应)

  • 公众号违规对微信有影响吗(公众号违规会封微信号吗)

    公众号违规对微信有影响吗(公众号违规会封微信号吗)

  • 红米k30有息屏显示吗

    红米k30有息屏显示吗

  • 苹果手机更新的坏处(苹果手机更新的时候可以玩手机吗)

    苹果手机更新的坏处(苹果手机更新的时候可以玩手机吗)

  • 华为畅享10plus支持防水吗(华为畅享10plus支持快充吗)

    华为畅享10plus支持防水吗(华为畅享10plus支持快充吗)

  • 为什么苹果商店更新不了软件(为什么苹果商店下载不了软件)

    为什么苹果商店更新不了软件(为什么苹果商店下载不了软件)

  • 苹果蓝牙耳机没声音怎么办(苹果蓝牙耳机没声音)

    苹果蓝牙耳机没声音怎么办(苹果蓝牙耳机没声音)

  • cad怎样启动加载的插件(cad加载设置)

    cad怎样启动加载的插件(cad加载设置)

  • iphone11防摔吗(苹果11防摔功能是真的吗)

    iphone11防摔吗(苹果11防摔功能是真的吗)

  • iqoo充电多久充满(iqoo手机充满电可以用多久)

    iqoo充电多久充满(iqoo手机充满电可以用多久)

  • 陌陌被拉黑了怎么破解(陌陌被拉黑怎么能找到对方)

    陌陌被拉黑了怎么破解(陌陌被拉黑怎么能找到对方)

  • 相册保密柜在哪里查看(相册保密柜在哪里vivox9)

    相册保密柜在哪里查看(相册保密柜在哪里vivox9)

  • 安卓4.4.4怎么升级5.0(安卓4.4.4怎么升级7.0小米平板)

    安卓4.4.4怎么升级5.0(安卓4.4.4怎么升级7.0小米平板)

  • 苹果手机微信文件下载在哪里(苹果手机微信文件下载后存哪了)

    苹果手机微信文件下载在哪里(苹果手机微信文件下载后存哪了)

  • 买家降权是什么意思(买家降权是什么原因)

    买家降权是什么意思(买家降权是什么原因)

  • 常见的垃圾回收机制(常见的垃圾回收器有哪些)

    常见的垃圾回收机制(常见的垃圾回收器有哪些)

  • 注册资本没有到位可以注销吗
  • 应税所得率表
  • 车船税缴纳的相关知识?
  • 金蝶k3如何设置凭证保存自动新增
  • 电子税务局如何变更财务负责人
  • 劳务派遣员工工伤用工单位承担责任吗
  • 记账凭证背面怎么填写
  • 报价含税和不含税哪个划算
  • 股票投资会计科目
  • 挂账留底税额如何抵扣?
  • 在租赁的土地上建房产权归谁
  • 公司库存现金如何存回银行
  • 企业出租设备取得租金收入要交增值税吗
  • 物业公司代收水电费会计分录
  • 未安装使用
  • 发票开具丢失后如有罚款怎么处理?
  • 对公银行转款备注重要吗
  • 车间未完工的产品属于什么
  • 土地买卖所得税由谁承担
  • 自营方式建造固定资产成本包括增值税吗
  • 业务招待费在税法上的规定
  • 餐饮发票忘记作废也没冲红怎么处理?
  • 折现率为10%怎么算折现系数是多少
  • 费用已付款未收到发票需要暂估入账吗
  • 捐款属于什么会计科目类别
  • 跨年度残保金退税怎么算
  • 城镇土地使用税税率
  • 合同签订中,可以撤销吗
  • 取得劳务收入的会计分录
  • 无偿捐赠增值税计算公式
  • 购买土地交易费用怎么算
  • 安全提取费用标准
  • 加速折旧法和直线折旧法的区别
  • 在window10中可以使用什么窗口
  • 贸易公司出口是什么意思
  • php 语法
  • pqhelper.exe是什么进程 pqhelper进程查询
  • 保洁费入账
  • 辅助生产成本的分配
  • 制造费用的工资怎么结转
  • 3d representation
  • wordpress neve
  • kill命令机制
  • node.js最新版本
  • 股权出质有时间限制吗
  • 控股子公司破产清算 母公司需审计
  • 小规模纳税人享受3%征收率减按1%征收,销售额计算公式
  • 基本户收到款不入账
  • 支付宝提现到对公账户要收手续费吗
  • 运动会活动奖品
  • 融资性无形资产的入账价值
  • 个人转让不动产交印花税吗
  • 坏账准备的计提分录
  • 实际费用以什么为准
  • 强化劳务输出
  • 子公司实现利润怎么会计处理
  • 会计凭证审核的主要内容
  • 党委经费是国家政府出吗?
  • 公司销售部门购买产品
  • 应付账款在借方
  • 私人网银可以转账吗
  • win10 rs5
  • win10 9月更新 问题
  • xp如何给文件夹加密码
  • 自己动手在家就可以自己理发视频
  • Mac系统怎么设置ftp
  • 如何延迟windows更新
  • win7移动硬盘写保护了怎么解除
  • popupblocker是什么
  • win10系统无法安装到gpt分区
  • linux 压缩解压缩
  • nodejs使用视频教程
  • vue router 组件
  • node .js
  • unity gui layer
  • js图形界面
  • 重庆地方税务局12366
  • 地税总局局长
  • 湖南国税电子税务局网
  • 工本费每月都扣?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设