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之眼花缭乱的运算符
Sep 14 Python
Python 25行代码实现的RSA算法详解
Apr 10 Python
python 正确保留多位小数的实例
Jul 16 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
Oct 11 Python
python中的tcp示例详解
Dec 09 Python
python并发爬虫实用工具tomorrow实用解析
Sep 25 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
Python requests模块cookie实例解析
Apr 14 Python
Python连接mysql数据库及简单增删改查操作示例代码
Aug 03 Python
Python实现http接口自动化测试的示例代码
Oct 09 Python
Python常用外部指令执行代码实例
Nov 05 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
PHP daddslashes 使用方法介绍
2012/10/26 PHP
PHP开发框架Laravel数据库操作方法总结
2014/09/03 PHP
PHP 类与构造函数解析
2017/02/06 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
Python的gevent框架的入门教程
2015/04/29 Python
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
Python中optparser库用法实例详解
2018/01/26 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
为什么Python中没有"a++"这种写法
2018/11/27 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
基于python实现计算两组数据P值
2020/07/10 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
端口镜像是怎么实现的
2014/03/25 面试题
资产评估专业大学生求职信
2013/09/29 职场文书
毕业生教师求职信
2013/10/20 职场文书
硕士研究生自我鉴定
2013/11/08 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang