当前位置: 首页 > news >正文

深度学习基础知识 给模型的不同层 设置不同学习率

深度学习基础知识 给模型的不同层 设置不同学习率

  • 1、使用预训练模型时,可能需要将
  • 2、学习率设置方式:

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

(1)预训练好的 backbone 的 参数学习率设置为较小值,
(2)backbone 之外的部分 (新增的部分,一般为分类头、检测头,等),需要使用较大的学习率。

2、学习率设置方式:

在定义优化器的时候,用 list 将参数设置为不同的组,每个组( list 中的每个元素 )用字典表示,在字典中指明 参数组、该组的学习率

optimizer = optim.SGD([{'params': params_group_1, 'lr': 0.001},{'params': params_group_2, 'lr': 0.0005}])
  • params_group_1 和 params_group_2 可以是任何实现了 iter() 方法的对象,例如 list、tuple
from collections import OrderedDict
import torch.nn as nn
import torch.optim as optimnet=nn.Sequential(OrderedDict([("linear1",nn.Linear(10,20)),("linear2",nn.Linear(20,30)),("linear3",nn.Linear(30,40))
]))print(net)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},   # 未指定学习率的,使用默认学习率0.001{"params":net.linear3.parameters(),"lr":0.0005}],lr=0.01,momentum=0.9
)
print(optimizer)
print(optimizer.param_groups[0]["lr"])
print(optimizer.param_groups[1]["lr"])

打印结果如下所示:
在这里插入图片描述

http://www.lryc.cn/news/191434.html

相关文章:

  • 【Python 零基础入门】 Numpy
  • 1600*C. Circle of Monsters(贪心)
  • 国外互联网巨头常用的项目管理工具揭秘
  • sql 注入(4), 盲注
  • 【string题解 C++】字符串相乘 | 翻转字符串III:翻转单词
  • CentOS 7下JumpServer安装及配置(超详细版)
  • 基于 ACK Fluid 的混合云优化数据访问(五):自动化跨区域中心数据分发
  • sentinel的启动与运行
  • 模拟量采集无线WiFi网络接口TCP Server, UDP, MQTT
  • 五、OSPF动态路由实验
  • 系统架构设计:16 论软件开发过程RUP及其应用
  • Gralloc ION DMABUF in Camera Display
  • 【LVS】lvs的四种模式的区别是什么?
  • Android原生实现控件点击弹起效果方案(API28及以上)
  • 【数据结构-队列 二】【单调队列】滑动窗口最大值
  • 如何设置CentOS系统以禁用不必要的网络端口和服务?
  • 【IDEA项目个别类爆红,但是项目可以正常运行】
  • hive 之select 中文乱码
  • 优化|优化处理可再生希尔伯特核空间的非参数回归中的协变量偏移
  • Netty深入浅出Java网络编程学习笔记(一) Netty入门篇
  • 自动化产线集控系统(西门子CNC 840D/840DSL远程控制)
  • MVVM 与 MVC区别和应用场景?
  • Linux开发-Ubuntu软件源工具
  • 环境下载地址
  • E. Block Sequence-Codeforces Round 903 (Div. 3)
  • 路由router
  • 学习编程-先改变心态
  • 【Node.js】http 模块
  • S/4 HANA 大白话 - 财务会计-2 总账主数据
  • Redis根据中心点坐标和半径筛选符合的数据