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实现数据图表
Jul 29 Python
Python编写一个优美的下载器
Apr 15 Python
Python列表推导式与生成器用法分析
Aug 02 Python
新年快乐! python实现绚烂的烟花绽放效果
Jan 30 Python
python读取有密码的zip压缩文件实例
Feb 08 Python
Python元组知识点总结
Feb 18 Python
详解Python3序列赋值、序列解包
May 14 Python
python matplotlib拟合直线的实现
Nov 19 Python
pytorch:torch.mm()和torch.matmul()的使用
Dec 27 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 Python
Python读取pdf表格写入excel的方法
Jan 22 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
抓取YAHOO股票报价的类
2009/05/15 PHP
php strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
PHP获取MAC地址的具体实例
2013/12/13 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
dojo学习第二天 ajax异步请求之绑定列表
2011/08/29 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
聊聊Vue.js的template编译的问题
2017/10/09 Javascript
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
深入解析Python中的变量和赋值运算符
2015/10/12 Python
python 获取网页编码方式实现代码
2017/03/11 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
python实现最短路径的实例方法
2020/07/19 Python
python实现三壶谜题的示例详解
2020/11/02 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
世界上最好的足球商店:Unisport
2019/03/02 全球购物
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
技校生自我鉴定
2013/12/08 职场文书
委托书格式
2014/08/01 职场文书
酒桌上的开场白
2015/06/01 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python