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转换摩斯密码示例
Feb 16 Python
Python中的fileinput模块的简单实用示例
Jul 09 Python
pandas中Timestamp类用法详解
Dec 11 Python
利用python实现微信头像加红色数字功能
Mar 26 Python
解决Python的str强转int时遇到的问题
Apr 09 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
如何在Django项目中引入静态文件
Jul 26 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
Windows 下python3.8环境安装教程图文详解
Mar 11 Python
Django多数据库配置及逆向生成model教程
Mar 28 Python
使用Python实现微信拍一拍功能的思路代码
Jul 09 Python
Python操作Elasticsearch处理timeout超时
Jul 17 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
WordPress判断用户是否登录的代码
2011/03/17 PHP
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
PHP中ini_set和ini_get函数的用法小结
2014/02/18 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
Jquery实现的角色左右选择特效
2014/05/21 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
JS检测移动端横竖屏的代码
2016/05/30 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
Vue列表页渲染优化详解
2017/07/24 Javascript
vue better-scroll插件使用详解
2018/01/25 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
简单介绍Python中的try和finally和with方法
2015/05/05 Python
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
大学生学年自我鉴定
2014/02/10 职场文书
工会优秀工作者事迹
2014/08/17 职场文书
单位委托书怎么写
2014/09/21 职场文书
2015年志愿者服务工作总结
2015/04/20 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery