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实现通过哈希算法检测图片重复的教程
Apr 02 Python
python装饰器初探(推荐)
Jul 21 Python
详解python中xlrd包的安装与处理Excel表格
Dec 16 Python
恢复百度云盘本地误删的文件脚本(简单方法)
Oct 21 Python
Python实现的选择排序算法示例
Nov 29 Python
详解python字节码
Feb 07 Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 Python
python3.8与pyinstaller冲突问题的快速解决方法
Jan 16 Python
python中对二维列表中一维列表的调用方法
Jun 07 Python
Jmeter HTTPS接口测试证书导入过程图解
Jul 22 Python
关于Python字符编码与二进制不得不说的一些事
Oct 04 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 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
php删除指定目录的方法
2015/04/03 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
php实现QQ小程序发送模板消息功能
2019/09/18 PHP
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
js获取class的所有元素
2013/03/28 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
jQuery实现下拉框功能实例代码
2016/05/06 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
angularJS的radio实现单项二选一的使用方法
2018/02/28 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
2019/03/25 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
使用Python判断IP地址合法性的方法实例
2014/03/13 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
医科大学生毕业的自我评价分享
2013/11/12 职场文书
优秀实习自我鉴定
2013/12/04 职场文书
民事调解协议书
2016/03/21 职场文书
施工安全责任协议书
2016/03/23 职场文书
代码解析React中setState同步和异步问题
2021/06/03 Javascript
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技