Pytorch之finetune使用详解


Posted in Python onJanuary 18, 2020

finetune分为全局finetune和局部finetune。首先介绍一下局部finetune步骤:

1.固定参数

for name, child in model.named_children():
    for param in child.parameters():
      param.requires_grad = False

后,只传入 需要反传的参数,否则会报错

filter(lambda param: param.requires_grad, model.parameters())

2.调低学习率,加快衰减

finetune是在预训练模型上进行微调,学习速率不能太大。

目前不清楚:学习速率降低的幅度可以更快一些。这样以来,在使用step的策略时,stepsize可以更小一些。

直接从原始数据训练的base_lr一般为0.01,微调要比0.01小,置为0.001

要比直接训练的小一些,直接训练的stepsize为100000,finetune的stepsize: 50000

3. 固定bn或取消dropout:

batchnorm会影响训练的效果,随着每个batch,追踪样本的均值和方差。对于固定的网络,bn应该使用全局的数值

def freeze_bn(self):
  for layer in self.modules():
    if isinstance(layer, nn.BatchNorm2d):
      layer.eval()

训练时,model.train()会修改模式,freeze_zn()应该在这里后面

4.过滤参数

训练时,对于优化器,应该只传入需要改变的参数,否则会报错

filter(lambda p: p.requires_grad, model.parameters())

以上这篇Pytorch之finetune使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现ssh批量登录并执行命令
Oct 25 Python
Python pandas常用函数详解
Feb 07 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
详解python实现数据归一化处理的方式:(0,1)标准化
Jul 17 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
Oct 17 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
Jan 20 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
matplotlib教程——强大的python作图工具库
Oct 15 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
Python Unittest原理及基本使用方法
Nov 06 Python
pytorch 修改预训练model实例
Jan 18 #Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 #Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 #Python
Python实现点云投影到平面显示
Jan 18 #Python
Pytorch 实现计算分类器准确率(总分类及子分类)
Jan 18 #Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
Jan 18 #Python
Python中实现输入超时及如何通过变量获取变量名
Jan 18 #Python
You might like
PHP 微信支付类 demo
2015/11/30 PHP
基于PHP制作验证码
2016/10/12 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
js构建二叉树进行数值数组的去重与优化详解
2018/03/26 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
为react组件库添加typescript类型提示的方法
2020/06/15 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
java中两个byte数组实现合并的示例
2018/05/09 Python
Django中使用Celery的方法示例
2018/11/29 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
Django 多环境配置详解
2019/05/14 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
python与pycharm有何区别
2020/07/01 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
2020/11/15 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
医学院护理专业应届生求职信
2013/11/12 职场文书
研讨会主持词
2014/04/02 职场文书
微笑服务标语
2014/06/24 职场文书
保卫工作个人总结
2015/03/03 职场文书
家庭贫困证明
2015/06/16 职场文书
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis