pytorch 实现模型不同层设置不同的学习率方式


Posted in Python onJanuary 06, 2020

在目标检测的模型训练中, 我们通常都会有一个特征提取网络backbone, 例如YOLO使用的darknet SSD使用的VGG-16。

为了达到比较好的训练效果, 往往会加载预训练的backbone模型参数, 然后在此基础上训练检测网络, 并对backbone进行微调, 这时候就需要为backbone设置一个较小的lr。

class net(torch.nn.Module):
  def __init__(self):
    super(net, self).__init__()
    # backbone
    self.backbone = ...
    # detect
    self....

在设置optimizer时, 只需要参数分为两个部分, 并分别给定不同的学习率lr。

base_params = list(map(id, net.backbone.parameters()))
logits_params = filter(lambda p: id(p) not in base_params, net.parameters())
params = [
  {"params": logits_params, "lr": config.lr},
  {"params": net.backbone.parameters(), "lr": config.backbone_lr},
]
optimizer = torch.optim.SGD(params, momentum=config.momentum, weight_decay=config.weight_decay)

以上这篇pytorch 实现模型不同层设置不同的学习率方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python设置windows桌面壁纸的实现代码
Jan 28 Python
Python调用命令行进度条的方法
May 05 Python
python实现飞机大战
Sep 11 Python
Python弹出输入框并获取输入值的实例
Jun 18 Python
Python适配器模式代码实现解析
Aug 02 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
pytorch中获取模型input/output shape实例
Dec 30 Python
Django实现从数据库中获取到的数据转换为dict
Mar 27 Python
python如何删除列为空的行
Jul 17 Python
golang/python实现归并排序实例代码
Aug 30 Python
pytorch 一行代码查看网络参数总量的实现
May 12 Python
pytorch训练神经网络爆内存的解决方案
May 22 Python
浅析Python3 pip换源问题
Jan 06 #Python
通过实例学习Python Excel操作
Jan 06 #Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 #Python
python与mysql数据库交互的实现
Jan 06 #Python
win10系统下python3安装及pip换源和使用教程
Jan 06 #Python
基于python实现文件加密功能
Jan 06 #Python
Pytorch 实现冻结指定卷积层的参数
Jan 06 #Python
You might like
JS实现php的伪分页
2008/05/25 PHP
PHP MVC模式在网站架构中的实现分析
2010/03/04 PHP
学习php中的正则表达式
2014/08/17 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
AngularJS创建自定义指令的方法详解
2016/11/03 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
浅谈js闭包理解
2019/04/01 Javascript
Vue项目中使用better-scroll实现菜单映射功能方法
2019/09/11 Javascript
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
Django设置Postgresql的操作
2020/05/14 Python
python能做哪方面的工作
2020/06/15 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
12岁生日感言
2014/01/21 职场文书
幼儿教师国培感言
2014/02/19 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
责任书范本大全
2015/05/11 职场文书
民事起诉书范本
2015/05/19 职场文书
观后感开头
2015/06/19 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL