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系列之数据处理编程实例(二)
May 22 Python
Python中使用摄像头实现简单的延时摄影技术
Mar 27 Python
使用Python对Excel进行读写操作
Mar 30 Python
对tensorflow 的模型保存和调用实例讲解
Jul 28 Python
基于python3实现socket文件传输和校验
Jul 28 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
Python模块的制作方法实例分析
Dec 21 Python
Python字典dict常用方法函数实例
Nov 09 Python
pycharm配置QtDesigner的超详细方法
Jan 25 Python
OpenCV 图像梯度的实现方法
Jul 25 Python
梳理总结Python开发中需要摒弃的18个坏习惯
Jan 22 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实现文件上传二法
2006/10/09 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
2019/03/25 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
编写Python的web框架中的Model的教程
2015/04/29 Python
python回调函数用法实例分析
2015/05/09 Python
简介Django中内置的一些中间件
2015/07/24 Python
《Python学习手册》学习总结
2018/01/17 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
python判断正负数方式
2020/06/03 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
美国宠物美容和宠物用品购物网站:Cherrybrook
2018/12/07 全球购物
Myholidays美国:在线旅游网站
2019/08/16 全球购物
应届生学校辅导员求职信
2013/11/07 职场文书
cf搞笑广告词
2014/03/14 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
产品质量保证书
2014/04/29 职场文书
环境保护标语
2014/06/20 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
通知书大全
2015/04/27 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
高中政治教学反思
2016/02/23 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
完美解决golang go get私有仓库的问题
2021/05/05 Golang