解决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实现类似ftp传输文件的网络程序示例
Apr 08 Python
python 3利用BeautifulSoup抓取div标签的方法示例
May 28 Python
PyQt5每天必学之日历控件QCalendarWidget
Apr 19 Python
pygame游戏之旅 添加icon和bgm音效的方法
Nov 21 Python
pytorch 常用线性函数详解
Jan 15 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
Python基于os.environ从windows获取环境变量
Jun 09 Python
keras中的loss、optimizer、metrics用法
Jun 15 Python
Python引入多个模块及包的概念过程解析
Sep 21 Python
利用python进行数据加载
Jun 20 Python
总结Python连接CS2000的详细步骤
Jun 23 Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
Nov 01 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常见数组函数用法小结
2016/03/21 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
通过实例讲解JS如何防抖动
2019/06/15 Javascript
js代码实现轮播图
2020/05/04 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
django基础学习之send_mail功能
2019/08/07 Python
python多线程实现TCP服务端
2019/09/03 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
python中xlrd模块的使用详解
2021/02/01 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
2013年保送生自荐信格式
2013/11/20 职场文书
暑期社会实践学生的自我评价
2014/01/09 职场文书
更夫岗位责任制
2014/02/11 职场文书
社会实践活动总结范文
2014/07/03 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
环保主题班会教案
2015/08/13 职场文书
体育教师研修感悟
2015/11/18 职场文书
六年级情感作文之500字
2019/10/23 职场文书
PHP基本语法
2021/03/31 PHP
Pygame Draw绘图函数的具体使用
2021/11/17 Python