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中生成器和yield语句的用法详解
Apr 17 Python
Python利用Nagios增加微信报警通知的功能
Feb 18 Python
Windows下python2.7.8安装图文教程
May 26 Python
Python3 Random模块代码详解
Dec 04 Python
pyqt5自定义信号实例解析
Jan 31 Python
python针对excel的操作技巧
Mar 13 Python
python增加矩阵维度的实例讲解
Apr 04 Python
TensorFlow 合并/连接数组的方法
Jul 27 Python
keras多显卡训练方式
Jun 10 Python
如何卸载python插件
Jul 08 Python
python实现感知机模型的示例
Sep 30 Python
Python 3.9的到来到底是意味着什么
Oct 14 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
Laravel5权限管理方法详解
2016/07/26 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
2017/10/19 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
基于slideout.js实现移动端侧边栏滑动特效
2016/11/28 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
2020/07/26 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
Python 字典(Dictionary)操作详解
2014/03/11 Python
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
Python底层封装实现方法详解
2020/01/22 Python
python设置表格边框的具体方法
2020/07/17 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
python中如何使用虚拟环境
2020/10/14 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
为什么UNION ALL比UNION快
2016/03/17 面试题
简单的项目建议书模板
2014/03/12 职场文书
房地产广告策划方案
2014/05/15 职场文书
学生会工作感言
2015/08/07 职场文书
八年级英语教学反思
2016/02/15 职场文书
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python
python运算符之与用户交互
2022/04/13 Python