pytorch加载自定义网络权重的实现


Posted in Python onJanuary 07, 2020

在将自定义的网络权重加载到网络中时,报错:

AttributeError: 'dict' object has no attribute 'seek'. You can only torch.load from a file that is seekable. Please pre-load the data into a buffer like io.BytesIO and try to load from it instead.

我们一步一步分析。

模型网络权重保存额代码是:torch.save(net.state_dict(),'net.pkl')

(1)查看获取模型权重的源码:

pytorch源码:net.state_dict()

def state_dict(self, destination=None, prefix='', keep_vars=False):
  r"""Returns a dictionary containing a whole state of the module.

  Both parameters and persistent buffers (e.g. running averages) are
  included. Keys are corresponding parameter and buffer names.

  Returns:
    dict:
      a dictionary containing a whole state of the module

  Example::

    >>> module.state_dict().keys()
    ['bias', 'weight']

  """

将网络中所有的状态保存到一个字典中了,我自己构建的就是一个字典,没问题!

(2)查看保存模型权重的源码:

pytorch源码:torch.save()

def save(obj, f, pickle_module=pickle, pickle_protocol=DEFAULT_PROTOCOL):
  """Saves an object to a disk file.

  See also: :ref:`recommend-saving-models`

  Args:
    obj: saved object
    f: a file-like object (has to implement write and flush) or a string
      containing a file name
    pickle_module: module used for pickling metadata and objects
    pickle_protocol: can be specified to override the default protocol

  .. warning::
    If you are using Python 2, torch.save does NOT support StringIO.StringIO
    as a valid file-like object. This is because the write method should return
    the number of bytes written; StringIO.write() does not do this.

    Please use something like io.BytesIO instead.

函数功能是将字典保存为磁盘文件(二进制数据),那么我们在torch.load()时,就是在内存中加载二进制数据,这就是报错点。

解决方案:将字典保存为BytesIO文件之后,模型再net.load_state_dict()

#b为自定义的字典
torch.save(b,'new.pkl')
net.load_state_dict(torch.load(b))

解决方法很简单,主要记录解决思路。

以上这篇pytorch加载自定义网络权重的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的数据结构与算法之链表详解
Apr 22 Python
python根据日期返回星期几的方法
Jul 06 Python
python编写简单爬虫资料汇总
Mar 22 Python
Python正则表达式如何进行字符串替换实例
Dec 28 Python
python列表list保留顺序去重的实例
Dec 14 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
Apr 06 Python
python中的global关键字的使用方法
Aug 20 Python
解决tensorflow打印tensor有省略号的问题
Feb 04 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
python实现mean-shift聚类算法
Jun 10 Python
Python趣味挑战之实现简易版音乐播放器
May 28 Python
Matplotlib绘制雷达图和三维图的示例代码
Jan 07 #Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 #Python
浅谈Python访问MySQL的正确姿势
Jan 07 #Python
pytorch自定义二值化网络层方式
Jan 07 #Python
Pytorch: 自定义网络层实例
Jan 07 #Python
Python StringIO如何在内存中读写str
Jan 07 #Python
Python内置数据类型list各方法的性能测试过程解析
Jan 07 #Python
You might like
php&mysql 日期操作小记
2012/02/27 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
2018/04/26 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
Python多继承顺序实例分析
2018/05/26 Python
Django进阶之CSRF的解决
2018/08/01 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
python 随机森林算法及其优化详解
2019/07/11 Python
Python如何调用JS文件中的函数
2019/08/16 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
物流仓管员工作职责
2014/01/06 职场文书
食品安全检查制度
2014/02/03 职场文书
趣味活动策划方案
2014/02/08 职场文书
六一儿童节活动总结
2014/08/27 职场文书
2015年秋季小学开学典礼主持词
2015/07/16 职场文书
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS
win7配置本地ftp服务器的图文教程
2022/08/05 Servers