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实现的二叉树定义与遍历算法实例
Jun 30 Python
Scrapy的简单使用教程
Oct 24 Python
python实现报表自动化详解
Nov 16 Python
Python3内置模块random随机方法小结
Jul 13 Python
解决Django migrate不能发现app.models的表问题
Aug 31 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 Python
python和js交互调用的方法
Jun 23 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
Oct 26 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 Python
python标准库ElementTree处理xml
May 20 Python
Pandas实现批量拆分与合并Excel的示例代码
May 30 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在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
PHP实现Google plus的好友拖拽分组效果
2016/10/21 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
详解Vue内部怎样处理props选项的多种写法
2018/11/06 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
Python 私有函数的实例详解
2017/09/11 Python
python如何爬取个性签名
2018/06/19 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
python命令行工具Click快速掌握
2019/07/04 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
机械设计专业应届生求职信
2013/11/21 职场文书
通信工程专业求职信
2014/06/04 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP