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

  • hoco蓝牙耳机怎么配对(hoco蓝牙耳机怎么样)

    hoco蓝牙耳机怎么配对(hoco蓝牙耳机怎么样)

  • 对方通过名片分享添加 查谁分享的(对方通过名片分享添加我微信)

    对方通过名片分享添加 查谁分享的(对方通过名片分享添加我微信)

  • 路由器有两个网络一个5g是什么原因(路由器有两个网络怎么关闭一个)

    路由器有两个网络一个5g是什么原因(路由器有两个网络怎么关闭一个)

  • 快手商家认证的钱可以退吗(快手商家认证有没有用)

    快手商家认证的钱可以退吗(快手商家认证有没有用)

  • 华为手机黑屏白字怎么设置(华为手机黑屏白字怎么恢复白屏黑字了)

    华为手机黑屏白字怎么设置(华为手机黑屏白字怎么恢复白屏黑字了)

  • word中分节符的作用是什么(word中分节符的类型有哪些)

    word中分节符的作用是什么(word中分节符的类型有哪些)

  • 笔记本电源孔接触不良(笔记本电源接口拆修图解)

    笔记本电源孔接触不良(笔记本电源接口拆修图解)

  • iphone密码输错10次(iphone密码输错10次还能输入密码)

    iphone密码输错10次(iphone密码输错10次还能输入密码)

  • 苹果手机没有id可以用吗(苹果手机没有id密码怎么恢复出厂设置)

    苹果手机没有id可以用吗(苹果手机没有id密码怎么恢复出厂设置)

  • iphone8内存都有哪些(iphone8内存有几种)

    iphone8内存都有哪些(iphone8内存有几种)

  • gw文件用什么程序打开(gw文件用什么软件打开)

    gw文件用什么程序打开(gw文件用什么软件打开)

  • xbox360 s版和e版的区别(xbox360s版和e版哪个散热好)

    xbox360 s版和e版的区别(xbox360s版和e版哪个散热好)

  • 小米和云米产品一样吗(小米和云米关系)

    小米和云米产品一样吗(小米和云米关系)

  • 微信旺柴表情是什么意思(微信里的旺柴表情)

    微信旺柴表情是什么意思(微信里的旺柴表情)

  • iphone7掉水里怎么办(iphone7掉水里立刻拿出来有事吗)

    iphone7掉水里怎么办(iphone7掉水里立刻拿出来有事吗)

  • 红米note7开不开机怎么办(红米note7开机黑屏但有反应)

    红米note7开不开机怎么办(红米note7开机黑屏但有反应)

  • 充电宝长期不用会坏吗(充电宝长期不用充不进电怎么办)

    充电宝长期不用会坏吗(充电宝长期不用充不进电怎么办)

  • 用美颜相机拍的视频怎么去水印(用美颜相机拍的照片可以变回原图吗)

    用美颜相机拍的视频怎么去水印(用美颜相机拍的照片可以变回原图吗)

  • 微信的免密在哪里设置(最新微信的免密在哪里)

    微信的免密在哪里设置(最新微信的免密在哪里)

  • win10找不到机械硬盘(电脑系统找不到机械硬盘)

    win10找不到机械硬盘(电脑系统找不到机械硬盘)

  • vivoy85分辨率在哪里设置(vivoy85a分辨率)

    vivoy85分辨率在哪里设置(vivoy85a分辨率)

  • 苹果x刘海怎么设置耳朵(苹果x刘海怎么去掉)

    苹果x刘海怎么设置耳朵(苹果x刘海怎么去掉)

  • 好友纪念日怎么看(好友纪念日怎么发说说)

    好友纪念日怎么看(好友纪念日怎么发说说)

  • 在WIN10中,任务栏变宽该如何还原?(在windows 10中任务栏())

    在WIN10中,任务栏变宽该如何还原?(在windows 10中任务栏())

  • 啥子是增值税
  • 工商年报中的社保缴费基数怎么填
  • 领的增值税专用发票如何录入电脑
  • 医药行业发票税率
  • 个体户可以开多个银行账户吗
  • 运输服务的增值税是多少
  • 滴滴的普票可以抵税吗
  • 银行借款的补偿金是什么
  • 有形净资产负债率怎么计算
  • 可供出售金融资产会计处理
  • 增资导致丧失控制权
  • 收购股权怎么做账
  • 花生油 增值税
  • 开专票必须公对公付款不然不开
  • 未办理房屋预售许可证怎么处理
  • 原始股 出售
  • 承租方出售资产的行为
  • 合理工资薪金的确认原则
  • 赊销方式何时确认收入呢
  • 健身房属于什么经营类别
  • 2019小规模纳税人增值税起征点
  • 购入原材料没有发票只有入库单
  • 一般纳税人所有税率
  • 员工离职补偿金可以税前扣除吗
  • 医用酒精出口 需要什么条件
  • php统计当前在线人数
  • 计提税金会计分录怎么做
  • 增值税进项税抵扣销项税
  • 为什么连接无线网超时
  • 股权转让的不仅是权利还有义务
  • 电力系统常用的接线有哪几种
  • 增值税按简易计价方式
  • 投资性房地产转换的会计处理
  • 以下关于static
  • php操作cookie
  • 模态框无法弹出
  • 详解中国女足出线形势
  • 个人出租商用房个人所得税
  • 超经营范围开具发票
  • 资产负债表货币资金公式
  • springboot整合websocket怎么接受图片消息
  • win+e快捷键在哪
  • php如何实现多进程
  • 增值税专票和普票的区别图片
  • 三栏式明细账对方科目有多个怎么办
  • 不能抵扣的进项税转出账务处理
  • 收到境外服务费会计分录
  • 个税里的累计专项扣除是什么
  • 增值税发票相关罪名
  • mysql 锁详解
  • 增值税纳税人放弃免税权的规定
  • 所得税会计核算要点及程序有哪些
  • 个体工商户还没开业也要报税吗
  • 高新技术企业收入总额
  • 服务业小规模纳税人全套做账
  • 租赁行业的增值税率
  • 企业变卖汽车收入要交增值税吗
  • 一般纳税人内外账
  • 装修费按几年摊销费用
  • 固定资产为
  • 金融资产减值损失
  • 应交所得税如何调整
  • 新单位成立需要做什么工作
  • 农业机耕属于种植业吗
  • 期初建账怎么做
  • mysql新手入门
  • sqlserver登录日志
  • win8网络连接
  • windows7家长控制
  • linux7.2 sudo权限配置
  • win8系统特点
  • cent linux
  • 如何把网址设为常用网址
  • linux操作系统配置网络
  • Android的AsyncTask官方API谷歌翻译版
  • 查看流量的命令
  • activate webstorm
  • jquery的核心理念
  • 现在德国的普通话怎么样
  • 车辆保险增值税税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设