解决Pytorch 加载训练好的模型 遇到的error问题


Posted in Python onJanuary 10, 2020

这是一个非常愚蠢的错误

debug的时候要好好看error信息

提醒自己切记好好对待error!切记!切记!

-----------------------分割线----------------

pytorch 已经非常友好了 保存模型和加载模型都只需要一条简单的命令

#保存整个网络和参数
torch.save(your_net, 'save_name.pkl')
#加载保存的模型
net = torch.load('save_name.pkl')

因为我比较懒我就想直接把整个网络都保存下来,然后在test文件中直接load一下不就好了?

解决Pytorch 加载训练好的模型 遇到的error问题

就遭受了这样的错误。看错了error信息,把‘Net'看成‘net'。报错没有属性‘net'?这个不是我自己写的变量名么?

-----------------瞎捣鼓1h后(呵呵呵)----------------

回头看error,没有属性‘Net',Net???

解决Pytorch 加载训练好的模型 遇到的error问题

我当下明白过来,应该是test文件中没有把它import进来,test中就没有任何关于Net的信息。我直接把定义的Net复制进了test.py,就顺利加载了训练好的模型。

但是我也有一个疑问,我理解的把整个模型保存难道不是把它的结构都保存下来了么?为什么还要再把这个网络import一次?来自python、pytorch、面向对象编程三次元小白的疑惑,先存个疑,搞懂了再来回答。

接下来试试只保存网络参数

#只保存网络参数
torch.save(your_net.state_dict(), 'save_name.pkl')
#加载保存的模型
net.load_state_dict(torch.load('save_name.pkl'))

保存网络参数

解决Pytorch 加载训练好的模型 遇到的error问题

重新定义网络

解决Pytorch 加载训练好的模型 遇到的error问题

报错

解决Pytorch 加载训练好的模型 遇到的error问题

想死。。。

仔细看了报错信息,以我小白的理解,我感觉保存下来的可能只是单纯的数据,而不是一个对象(没有方法可以操作),或者该对象没有.copy()方法,所以没有办法进行.copy(),那肯定是保存哪里出错了。然后发现保存部分代码写错了,改成

解决Pytorch 加载训练好的模型 遇到的error问题

print一下 net.state_dict和net.state_dict(),前者输出的是网络结构,后者才是网络的参数。

试着回答之前的问题,第二种保存模型的方法只保存了网络的参数(包括卷积层和全连接层每次的weight,bias),所以再加载模型的时候需要先定义网络无可厚非,就像训练时候定义网络那样定义就可以;而第一种保存整个网络的方法,保存了一个网络的实例(包括它的所有结构和参数),net是Net的一个实例,那为什么还要有Class Net的定义呢,还是回答不了。。

那就继续存疑,保持探究精神吧。。

以上这篇解决Pytorch 加载训练好的模型 遇到的error问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现将xml导入至excel
Nov 20 Python
Python中的多行注释文档编写风格汇总
Jun 16 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
python 3.6.4 安装配置方法图文教程
Sep 18 Python
Python GUI布局尺寸适配方法
Oct 11 Python
django基础学习之send_mail功能
Aug 07 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
正则给header的冒号两边参数添加单引号(Python请求用)
Aug 09 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
Pytorch之保存读取模型实例
Dec 30 Python
Appium中scroll和drag_and_drop根据元素位置滑动
Feb 15 Python
yolov5返回坐标的方法实例
Mar 17 Python
Ubuntu16.04安装python3.6.5步骤详解
Jan 10 #Python
Pytorch 保存模型生成图片方式
Jan 10 #Python
在pytorch中对非叶节点的变量计算梯度实例
Jan 10 #Python
python如何获取apk的packagename和activity
Jan 10 #Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
Jan 10 #Python
python颜色随机生成器的实例代码
Jan 10 #Python
关于python pycharm中输出的内容不全的解决办法
Jan 10 #Python
You might like
PHP数据过滤的方法
2013/10/30 PHP
PHP中imagick函数的中文解释
2015/01/21 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
JQuery切换显示的效果实例代码
2013/02/27 Javascript
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
jquery实现submit提交表单
2015/02/03 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
Django中Forms的使用代码解析
2018/02/10 Python
python3调用R的示例代码
2018/02/23 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/27 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
Javascript如何发送一个Ajax请求
2015/01/26 面试题
秋天的图画教学反思
2014/05/01 职场文书
行政监察建议书
2014/05/19 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
2015年学校精神文明工作总结
2015/05/27 职场文书
公司备用金管理制度
2015/08/04 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python