pytorch快速搭建卷积神经网络【优化器_第5课_增加参数_add_param_group】

本文介绍了PyTorch中optimizer的add_param_group()方法,用于在优化器中添加新的参数组,并能独立设置学习率、动量等超参数。示例代码展示了如何为不同的权重分配不同的学习率和动量,这对于微调模型或管理多个学习率策略非常有用。
摘要由CSDN通过智能技术生成

理论

add_param_group()
功能:给 optimizer 管理的参数组中增加一组参数,可为该组参数定制 lr, momentum, weight_decay 等,在 finetune 中常用。
例如:optimizer_1.add_param_group({‘params’: w3, ‘lr’: 0.001, ‘momentum’: 0.8})

代码

# coding: utf-8

import torch
import torch.optim as optim

# ----------------------------------- add_param_group

w1 = torch.randn(2, 2)
w1.requires_grad = True

w2 = torch.randn(2, 2)
w2.requires_grad = True

w3 = torch.randn(2, 2)
w3.requires_grad = True

# 一个参数组
optimizer_1 = optim.SGD([w1, w2], lr=0.1)
print('当前参数组个数: ', len(optimizer_1.param_groups))
print(optimizer_1.param_groups, '\n')

# 增加一个参数组
print('增加一组参数 w3\n')
optimizer_1.add_param_group({'params': w3, 'lr': 0.001, 'momentum': 0.8})

print('当前参数组个数: ', len(optimizer_1.param_groups))
print(optimizer_1.param_groups, '\n')

print('可以看到,参数组是一个list,一个元素是一个dict,每个dict中都有lr, momentum等参数,这些都是可单独管理,单独设定,十分灵活!')


结果

当前参数组个数:  1
[{'params': [tensor([[-1.6583, -0.3996],
                     [-1.1855, -1.7234]], requires_grad=True), 
             tensor([[-1.9086,  1.3887],
                     [-2.0119, -0.7889]], requires_grad=True)], 
             'lr':   0.1, 'momentum': 0,  'dampening': 0, 'weight_decay': 0, 'nesterov': False}] 

增加一组参数 w3

当前参数组个数:  2
[{'params': [tensor([[-1.6583, -0.3996],
                     [-1.1855, -1.7234]], requires_grad=True), 
             tensor([[-1.9086,  1.3887],
                     [-2.0119, -0.7889]], requires_grad=True)], 
             'lr':   0.1, 'momentum': 0,  'dampening': 0, 'weight_decay': 0, 'nesterov': False},
 {'params': [tensor([[ 1.0240,  1.0964],
                     [ 1.8146, -0.0168]], requires_grad=True)], 
             'lr':0.001, 'momentum': 0.8, 'dampening': 0, 'weight_decay': 0, 'nesterov': False}] 

可以看到,参数组是一个list,一个元素是一个dict,每个dict中都有lr, momentum等参数,这些都是可单独管理,单独设定,十分灵活!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【网络星空】

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值