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 相关文章推荐
Python3中常用的处理时间和实现定时任务的方法的介绍
Apr 07 Python
用Python实现协同过滤的教程
Apr 08 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
浅谈Python traceback的优雅处理
Aug 31 Python
python使用zip将list转为json的方法
Dec 31 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
Aug 24 Python
python nmap实现端口扫描器教程
May 28 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
Dec 31 Python
Python将CSV文件转化为HTML文件的操作方法
Jun 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经典的给图片加水印程序
2006/12/06 PHP
php设计模式 State (状态模式)
2011/06/26 PHP
php 短链接算法收集与分析
2011/12/30 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
php获取客户端IP及URL的方法示例
2017/02/03 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
文本框的字数限制功能jquery插件
2009/11/24 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
jQuery中Form相关知识汇总
2015/01/06 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
python动态规划算法实例详解
2020/11/22 Python
python实现计算器简易版
2020/12/17 Python
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
香港中原电器网上商店:Chung Yuen
2019/06/26 全球购物
给儿子的表扬信
2014/01/15 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
军训结束新闻稿
2015/07/17 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS