不同层设置不同学习率

使用预训练模型时,可能需要将

(1)预训练好的 backbone 的 参数学习率设置为较小值,

(2)而backbone 之外的部分,需要使用较大的学习率。

python 复制代码
from collections import OrderedDict
import torch.nn as nn
import torch.optim as optim

net = nn.Sequential(OrderedDict([
    ("linear1", nn.Linear(10, 20)),
    ("linear2", nn.Linear(20, 30)),
    ("linear3", nn.Linear(30, 40))]))


linear3_params = list(map(id, net.linear3.parameters()))
base_params = filter(lambda p: id(p) not in linear3_params, net.parameters())

optimizer = optim.SGD([
    {'params': base_params},
    {'params': net.linear3.parameters(), 'lr': 0.0005}],
    lr=0.001, momentum=0.9)


print(optimizer)
print(optimizer.param_groups[0]['lr'])
print(optimizer.param_groups[1]['lr'])
相关推荐
ZhengEnCi1 小时前
正样本几万、负样本个位数:极端类别不平衡下怎么训模型(全文可跑)
深度学习
kyrie_sakura2 小时前
大模型学习20 大模型学习 - LangChain3 - Agents
人工智能·学习·langchain
zroooo2 小时前
计算机学习-知识庞大而繁杂
笔记·学习
坤坤子吖2 小时前
算法学习——单调队列
开发语言·c++·笔记·学习·算法
布吉岛的石头2 小时前
Java 程序员第 50 阶段13:对齐税 alignment tax 是什么
人工智能·深度学习·transformer
乌暮3 小时前
请求进门先安检:Spring 拦截器与统一功能实战指南
java·开发语言·后端·学习·spring
起个名字费劲死了4 小时前
Halcon学习一:骰子识别
前端·python·学习
米饭是菜qy4 小时前
深度学习Transformer详细介绍
人工智能·深度学习·transformer
智码看视界4 小时前
深度学习:生成对抗网络 GAN 原理与图像生成应用
深度学习·生成对抗网络·gan·wgan·图像生成·dcgan·stylegan