位置: 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)

  • 快手公会如何申请(快手公会入驻申请)

    快手公会如何申请(快手公会入驻申请)

  • 微信收藏置顶(微信收藏置顶为什么总消失)

    微信收藏置顶(微信收藏置顶为什么总消失)

  • 魅族17机身尺寸是多少mm(魅族17机身长宽)

    魅族17机身尺寸是多少mm(魅族17机身长宽)

  • 快手怎么取消关注封号的人并且不知道是谁(快手怎么取消关联的商品)

    快手怎么取消关注封号的人并且不知道是谁(快手怎么取消关联的商品)

  • 发了红包删除好友 他还能收到吗(发了红包删除好友怎么加回来)

    发了红包删除好友 他还能收到吗(发了红包删除好友怎么加回来)

  • xs和x的屏幕有区别吗(x与xs屏幕的区别,哪个比较好)

    xs和x的屏幕有区别吗(x与xs屏幕的区别,哪个比较好)

  • 开心手机恢复大师能恢复微信聊天记录吗(开心手机恢复大师官网下载)

    开心手机恢复大师能恢复微信聊天记录吗(开心手机恢复大师官网下载)

  • mate30录屏快捷方式是什么(mate 30录屏)

    mate30录屏快捷方式是什么(mate 30录屏)

  • 淘宝pld是什么意思(淘宝pl是什么意思)

    淘宝pld是什么意思(淘宝pl是什么意思)

  • iphone8有没有3dtouch(Iphone8有没有nfc)

    iphone8有没有3dtouch(Iphone8有没有nfc)

  • 微信有店员通功能吗(微信店员通功能介绍)

    微信有店员通功能吗(微信店员通功能介绍)

  • 手机微信文件怎么传到电脑上(手机微信文件怎么弄到u盘里)

    手机微信文件怎么传到电脑上(手机微信文件怎么弄到u盘里)

  • OPPO k5延时摄影怎么拍(oppor15延时摄影教程)

    OPPO k5延时摄影怎么拍(oppor15延时摄影教程)

  • iphone11用不用贴膜(iphone11需不需要贴膜)

    iphone11用不用贴膜(iphone11需不需要贴膜)

  • 苹果8plus是高通基带吗(8p 高通)

    苹果8plus是高通基带吗(8p 高通)

  • iphone怎么连接小爱(iphone怎么连接小米耳机)

    iphone怎么连接小爱(iphone怎么连接小米耳机)

  • 一加oneplus7上市时间(一加7 pro上市)

    一加oneplus7上市时间(一加7 pro上市)

  • 抖音的动态不等于作品吗(抖音的动态不等待怎么办)

    抖音的动态不等于作品吗(抖音的动态不等待怎么办)

  • 拼多多农场怎么找(拼多多农场怎么进)

    拼多多农场怎么找(拼多多农场怎么进)

  • 运营商网络下自动暂停怎么解除(运营商网络下自动暂停是什么意思)

    运营商网络下自动暂停怎么解除(运营商网络下自动暂停是什么意思)

  • 百度浏览器如何设置极速模式(百度浏览器如何关闭推荐功能)

    百度浏览器如何设置极速模式(百度浏览器如何关闭推荐功能)

  • 【生成模型】Stable Diffusion原理+代码(生成stl基本过程)

    【生成模型】Stable Diffusion原理+代码(生成stl基本过程)

  • 网易二面:CPU狂飙900%,该怎么处理?(网易游戏二面)

    网易二面:CPU狂飙900%,该怎么处理?(网易游戏二面)

  • python美元转换成人民币转换代码(python兑换美元)

    python美元转换成人民币转换代码(python兑换美元)

  • phpcms如何进入后台(phpcms官网打不开)

    phpcms如何进入后台(phpcms官网打不开)

  • 总分公司报税有哪些注意事项
  • 建筑企业可以挂靠吗
  • 支付宝收付款如何关闭
  • 企业的所得税
  • 现金流量为负的隐患
  • 电子记账软件出纳帐
  • 有形净资产负债率怎么计算
  • 房地产企业停止经营后未抵减完的预缴增值税可以退吗
  • 票据到期兑付会怎么样
  • 简易计税的销项税怎么处理
  • 车船税不开发票怎么做账?
  • 房屋租赁合同印花税计税依据
  • 劳务分包异地用预缴税款吗?
  • 软件企业涉税风险分析
  • 公司转账给公司会计分录
  • 如何区分劳务报酬
  • 房屋租赁税务局开票税点
  • 固定资产报废未折旧完会计处理
  • 降低win10版本
  • 出口企业免抵退是什么意思
  • 本月发生的费用,下月取得发票,怎么做账
  • linux系统中如何查看日志
  • ie浏览器进程
  • 销售不动产分期收款怎么确认收入
  • 应收罚款收入
  • msmpeng.exe 是什么
  • 特殊行业需要缴什么税
  • 小米路由器青春版r1cl参数
  • 继承 土地
  • 持有至到期投资减值准备
  • php+mysql+jquery实现日历签到功能
  • 小程序uniapp怎么用
  • RTX 4090深度学习性能实测奉上!模型训练可提升60~80%
  • 发放工资时扣除的保险怎么做
  • git简明教程
  • vue脚手架配合springsecurity
  • 大前端技术
  • python tkinter ttk
  • 车间管理人员为什么是制造费用
  • 数据库平移
  • 100%控股权什么意思
  • 如何检查文件是否有毒
  • SQL Server 中 RAISERROR 的用法详细介绍
  • mysql5.7设置编码
  • mongodb 入门
  • 2个公司的法人怎么注销
  • 个人独资企业可以变更法人吗?
  • 营销策划合作协议
  • short int、long、float、double使用问题说明
  • 财务报表没报会影响出口退税吗为什么
  • 一般纳税人购入不动产增值税税率
  • 小规模纳税人无票收入申报表怎么填
  • 幼儿园收取的生活费免税吗
  • 运费险三件衣服分3个快递寄出
  • 个税多缴了纳税人怎么办
  • 营业外支出科目核算内容
  • 盈余公积现金流量表中应填入哪里呢
  • 建筑公司可以收工程款发票吗
  • 财政专用存款账户
  • sqlserver关键字附近有语法错误
  • windows如何创建桌面快捷方式
  • WIN10系统睡眠后点不动
  • linux乱码怎么办
  • linux系统怎样
  • perl脚本调试方法
  • perl cgi
  • using Net::SSH2 shell 的二个方法
  • flash 3 utility
  • opengl教程48讲
  • android集成chromiumview
  • DOS命令删除文件夹
  • vue移动端图片预览
  • javascript高级编程
  • js 实现一个new
  • 你知道必要的意思吗英文
  • 江苏税务开发票
  • 税务稽查工作底稿属于什么证据
  • 税务申报热线电话
  • 建筑企业所交的税项有多少
  • 市民服务热线有用吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设