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入门篇之列表和元组
Oct 17 Python
Python实时获取cmd的输出
Dec 13 Python
Python自定义线程池实现方法分析
Feb 07 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
Feb 10 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
详解重置Django migration的常见方式
Feb 15 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
Django REST框架创建一个简单的Api实例讲解
Nov 05 Python
python 解压、复制、删除 文件的实例代码
Feb 26 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
Django Xadmin多对多字段过滤实例
Apr 07 Python
Python实现代码块儿折叠
Apr 15 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下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
php下载文件的代码示例
2012/06/29 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
2011/07/11 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
React通过父组件传递类名给子组件的实现方法
2017/11/13 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
用Python实现读写锁的示例代码
2018/11/05 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
jupyter实现重新加载模块
2020/04/16 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
企业出纳岗位职责
2014/03/12 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
雷锋的故事观后感
2015/06/10 职场文书
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技