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 相关文章推荐
Python3字符串学习教程
Aug 20 Python
python中的错误处理
Apr 10 Python
Python3.6正式版新特性预览
Dec 15 Python
python根据unicode判断语言类型实例代码
Jan 17 Python
使用Python和Prometheus跟踪天气的使用方法
May 06 Python
python多环境切换及pyenv使用过程详解
Sep 27 Python
python多进程下的生产者和消费者模型
May 07 Python
Python小白不正确的使用类变量实例
May 29 Python
python各种excel写入方式的速度对比
Nov 10 Python
Opencv 图片的OCR识别的实战示例
Mar 02 Python
使用python向MongoDB插入时间字段的操作
May 18 Python
Pytorch DataLoader shuffle验证方式
Jun 02 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
使用adodb lite解决问题
2006/12/31 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
PHP Reflection API详解
2015/05/12 PHP
简单实现PHP留言板功能
2016/12/21 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
PHP7 新增常量
2021/03/09 PHP
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
3分钟掌握常用的JS操作JSON方法总结
2017/04/25 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
Vue 数据响应式相关总结
2021/01/28 Vue.js
python实现sublime3的less编译插件示例
2014/04/27 Python
django批量导入xml数据
2016/10/16 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
python实现石头剪刀布程序
2021/01/20 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
Python中请不要再用re.compile了
2019/06/30 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
大学毕业生简单自荐信
2013/11/05 职场文书
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书