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

  • sonypsp3000说明书(sonypsp3000)(sonypsp3006怎么使用)

    sonypsp3000说明书(sonypsp3000)(sonypsp3006怎么使用)

  • 小米手环6怎么开通音乐权限(小米手环6怎么玩游戏)

    小米手环6怎么开通音乐权限(小米手环6怎么玩游戏)

  • 视频太长发不过去怎么办(视频太长发不过去微信朋友圈怎么办)

    视频太长发不过去怎么办(视频太长发不过去微信朋友圈怎么办)

  • qq单删对方还有你吗(qq单删后对方还有联系人的吗)

    qq单删对方还有你吗(qq单删后对方还有联系人的吗)

  • 手机怎么取消耳机模式(手机怎么取消耳机播放)

    手机怎么取消耳机模式(手机怎么取消耳机播放)

  • ipadmini5屏幕刷新率(ipad2020屏幕刷新率)

    ipadmini5屏幕刷新率(ipad2020屏幕刷新率)

  • 充电宝发烫还能继续使用吗(充电宝发热还能用吗)

    充电宝发烫还能继续使用吗(充电宝发热还能用吗)

  • 咪咕kindle是什么东西(咪咕kindle是什么型号)

    咪咕kindle是什么东西(咪咕kindle是什么型号)

  • 为什么突然收到很多短信验证码(为什么突然收到很多骚扰电话)

    为什么突然收到很多短信验证码(为什么突然收到很多骚扰电话)

  • 抖音账号无法点关注和赞(抖音号点不进去)

    抖音账号无法点关注和赞(抖音号点不进去)

  • 网络为什么拒绝接入(网络为什么拒绝介入)

    网络为什么拒绝接入(网络为什么拒绝介入)

  • 手机必须充满才能拔吗(手机一定充满才能拔掉吗)

    手机必须充满才能拔吗(手机一定充满才能拔掉吗)

  • 如何更改airdrop头像(如何更改airdrop的名字)

    如何更改airdrop头像(如何更改airdrop的名字)

  • ios13能用动态壁纸吗(ios13.4怎么设置动态壁纸)

    ios13能用动态壁纸吗(ios13.4怎么设置动态壁纸)

  • 腾讯now怎么注销id(腾讯now怎么注销账号)

    腾讯now怎么注销id(腾讯now怎么注销账号)

  • tlc mlc区别(mlc与tlc的区别)

    tlc mlc区别(mlc与tlc的区别)

  • 抖音小程序怎么添加(抖音小程序怎么退出登录)

    抖音小程序怎么添加(抖音小程序怎么退出登录)

  • 苹果xdr显示器是lcd屏吗(苹果xdr显示器是谁的屏幕)

    苹果xdr显示器是lcd屏吗(苹果xdr显示器是谁的屏幕)

  • machine learning是什么(Machine learning是什么)

    machine learning是什么(Machine learning是什么)

  • 腾讯视频微信能登2个吗(腾讯视频微信能2人共用吗)

    腾讯视频微信能登2个吗(腾讯视频微信能2人共用吗)

  • 小米手环4怎么设置门禁卡(小米手环4怎么调时间)

    小米手环4怎么设置门禁卡(小米手环4怎么调时间)

  • realmi是啥牌子(real me是谁的品牌)

    realmi是啥牌子(real me是谁的品牌)

  • 猎豹安全大师如何帮忙解微信锁(猎豹安全大师如何卸载)

    猎豹安全大师如何帮忙解微信锁(猎豹安全大师如何卸载)

  • SRCNN超分辨率Pytorch实现,代码逐行讲解,附源码(超分辨率代码)

    SRCNN超分辨率Pytorch实现,代码逐行讲解,附源码(超分辨率代码)

  • vue如何请求后端数据(vue请求后端接口)

    vue如何请求后端数据(vue请求后端接口)

  • 好用的微信小程序日历组件(可滑动,可展开收缩,可标点)(好用的微信小程序邮箱有哪些)

    好用的微信小程序日历组件(可滑动,可展开收缩,可标点)(好用的微信小程序邮箱有哪些)

  • 外购商品赠送怎么做账
  • 小规模未开票收入如何填写申报表增值税
  • 工资社保缴纳计算器
  • 电子税务局怎么登录
  • 采购的固定资产验收无误后直接安装使用
  • 无息贷款合同要按手印吗
  • 增值税的简易计税是什么意思
  • 预缴企业所得税会计处理
  • 预付账款是付没付钱
  • 公司制度奖励怎么写
  • 支付微信收款放在哪里
  • 不收汇样品的会计分录
  • 详解价外费用的会计核算
  • 年薪制离职补偿金
  • 中国增值税发展史
  • 成本费用的结转方法
  • 租赁产生的成本有哪些
  • 我的初级备考经历怎么写
  • 集体企业属于事业单位吗
  • 普通增值税发票左上角的二维码可以扫出来吗?
  • 软件开发公司账务怎么做
  • win7系统鼠标键盘
  • 电脑中毒之后怎么办
  • 复制粘贴如何提取文字
  • 微软告诉你
  • 企业研发费用可以只加计一半吗
  • 苹果推送最新系统怎么弄
  • PHP:pg_num_fields()的用法_PostgreSQL函数
  • driver-e
  • 二次规划是什么意思
  • 以前年度损益调整属于哪类科目
  • 财务人员应计入什么科目
  • 图像分割最新算法
  • vue2:elementUI中Form 表单在特定情况下做动态rules添加删除
  • 结转工资费用
  • 未摊销完的房租转哪个科目
  • vue技术解密
  • 论文导语如何写
  • modulenotfounderror
  • 盘点时发现存货怎么处理
  • mysql中regexp_substr函数的使用
  • 企业所得税退税如何进行账务处理
  • php防盗链
  • php安装不了
  • 企业合并属于非企业吗
  • 新政府会计制度下,属于资产类科目的是
  • 记账凭证填错了怎么办还没有登记账簿
  • 银行代发工资流程
  • 个体工商户公帐转法人私人账户
  • 发票 认证抵扣
  • 零售金银首饰是否缴纳消费税
  • 残疾人就业保障金是什么意思啊
  • 购买汽车抵扣增值税税率
  • 其他应付款贷方增加还是减少
  • 学校固定资产账记法
  • 金融企业借款费用计入
  • windows7如何获得正版
  • 资源管理器操作教程
  • fedora怎么用
  • win7系统如何卸载流氓软件
  • win10系统打开网页一会儿就没了
  • win8粘贴板
  • Centos 6.5 64位双网卡绑定教程
  • win7系统怎么把c盘的内存加到d盘
  • win8的计算机在哪里
  • linux如何用
  • nodejs搭建web服务器
  • django pypi
  • Python类的继承动物类
  • vue stylus
  • jq点击图片让图片进行切换
  • node.js和ajax的顺序
  • android开发电视app教程
  • 公司在异地办公
  • 季报逾期申报怎么写
  • 放管服改革存在的不足
  • 个人所得税税单下载
  • 烟草税多少比例
  • 浅谈企业所得税论文
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设