Pytorch加载部分预训练模型的参数实例


Posted in Python onAugust 18, 2019

前言

自从从深度学习框架caffe转到Pytorch之后,感觉Pytorch的优点妙不可言,各种设计简洁,方便研究网络结构修改,容易上手,比TensorFlow的臃肿好多了。对于深度学习的初学者,Pytorch值得推荐。今天主要主要谈谈Pytorch是如何加载预训练模型的参数以及代码的实现过程。

直接加载预选脸模型

如果我们使用的模型和预训练模型完全一样,那么我们就可以直接加载别人的模型,还有一种情况,我们在训练自己模型的过程中,突然中断了,但只要我们保存了之前的模型的参数也可以使用下面的代码直接加载我们保存的模型继续训练,不用从头开始。

model=DPN(*args, **kwargs)
model.load_state_dict(torch.load("DPN.pth"))

这样的加载方式是基于Pytorch使用的模型存储方法:

torch.save(DPN.state_dict(), "DPN.pth")

加载部分预训练模型参数

其实大多数时候我们根据自己的任物所提出的模型是在一些公开模型的基础上改变而来,其中公开模型的参数我们没有必要在从头开始训练,只要加载其训练好的模型参数即可,这样有助于提高训练的准确率和我们模型的泛化能力。

model = DPN(num_init_features=64, k_R=96, G=32, k_sec=(3,4,20,3), inc_sec=(16,32,24,128), num_classes=1,decoder=args.decoder)
 http = {'url': 'http://data.lip6.fr/cadene/pretrainedmodels/dpn92_extra-b040e4a9b.pth'}
 pretrained_dict=model_zoo.load_url(http['url'])
 model_dict = model.state_dict()
 pretrained_dict = {k: v for k, v in pretrained_dict.items() if k in model_dict}#filter out unnecessary keys 
 model_dict.update(pretrained_dict)
 model.load_state_dict(model_dict)
 model = torch.nn.DataParallel(model).cuda()

因为需要删除预训练模型中不匹配的的键,也就是层的名字。

以上这篇Pytorch加载部分预训练模型的参数实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
如何运行Python程序的方法
Apr 21 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
Jun 07 Python
Python学习小技巧之列表项的拼接
May 20 Python
Python3之简单搭建自带服务器的实例讲解
Jun 04 Python
django框架之cookie/session的使用示例(小结)
Oct 15 Python
python 多线程中子线程和主线程相互通信方法
Nov 09 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 Python
pycharm如何使用anaconda中的各种包(操作步骤)
Jul 31 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 Python
在pytorch中查看可训练参数的例子
Aug 18 #Python
浅析PyTorch中nn.Module的使用
Aug 18 #Python
关于PyTorch 自动求导机制详解
Aug 18 #Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 #Python
pytorch numpy list类型之间的相互转换实例
Aug 18 #Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
Aug 18 #Python
pytorch 自定义数据集加载方法
Aug 18 #Python
You might like
第六章 php目录与文件操作
2011/12/30 PHP
php生成短网址示例
2014/05/05 PHP
JS查看对象功能代码
2008/04/25 Javascript
Javascript 读书笔记索引贴
2010/01/11 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
js实现图片360度旋转
2017/01/22 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
python实现爬虫下载漫画示例
2014/02/16 Python
Python的Flask框架中web表单的教程
2015/04/20 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
在python中实现求输出1-3+5-7+9-......101的和
2020/04/02 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
美国家居装饰店:Pier 1
2019/09/04 全球购物
活动总结报告范文
2014/05/04 职场文书
安全生产月活动总结
2014/05/04 职场文书
师德师风的心得体会
2014/09/02 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript
详细分析PHP7与PHP5区别
2021/06/26 PHP
Python测试框架pytest高阶用法全面详解
2022/06/01 Python