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 文件操作api(文件操作函数)
Aug 28 Python
python正则分析nginx的访问日志
Jan 17 Python
Python入门必须知道的11个知识点
Mar 21 Python
Python使用type关键字创建类步骤详解
Jul 23 Python
Python定时任务随机时间执行的实现方法
Aug 14 Python
python如何从文件读取数据及解析
Sep 19 Python
Python容器使用的5个技巧和2个误区总结
Sep 26 Python
Python3 A*寻路算法实现方式
Dec 24 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
Jun 18 Python
Windows下Sqlmap环境安装教程详解
Aug 04 Python
Python自动发送和收取邮件的方法
Aug 12 Python
Django 实现图片上传和下载功能
Dec 31 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批量生成缩略图的代码
2008/07/19 PHP
PHP6 先修班 JSON实例代码
2008/08/23 PHP
thinkphp中连接oracle时封装方法无法用的解决办法
2013/06/17 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
php对象工厂类完整示例
2018/08/09 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
JS实现简易刻度时钟示例代码
2017/03/11 Javascript
老生常谈js数据类型
2017/08/03 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
使用webpack5从0到1搭建一个react项目的实现步骤
2020/12/16 Javascript
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
Python使用python-docx读写word文档
2019/08/26 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
园林设计师自荐信
2013/11/18 职场文书
小学生环保倡议书
2014/05/15 职场文书
安全教育的主题班会
2015/08/13 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP