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中日期和时间格式化输出的方法小结
Mar 19 Python
python使用pil库实现图片合成实例代码
Jan 20 Python
Python爬豆瓣电影实例
Feb 23 Python
Flask框架各种常见装饰器示例
Jul 17 Python
python try 异常处理(史上最全)
Mar 07 Python
python实现五子棋人机对战游戏
Mar 25 Python
sklearn-SVC实现与类参数详解
Dec 10 Python
使用Matplotlib 绘制精美的数学图形例子
Dec 13 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
Python爬虫之自动爬取某车之家各车销售数据
Jun 02 Python
PyTorch中permute的使用方法
Apr 26 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 xml文件操作代码(一)
2009/03/20 PHP
php unset全局变量运用问题的深入解析
2013/06/17 PHP
WordPress中is_singular()函数简介
2015/02/05 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
js function使用心得
2010/05/10 Javascript
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
JavaScript编写棋盘覆盖代码详解
2017/08/28 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
Shell编程面试题
2012/05/30 面试题
工程业务员岗位职责
2013/12/31 职场文书
周年庆典邀请函范文
2014/01/23 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
道歉信范文
2015/05/12 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python