解决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操作SQLite简明教程
Jul 10 Python
Python实现的多线程端口扫描工具分享
Jan 21 Python
Python 两个列表的差集、并集和交集实现代码
Sep 21 Python
python使用xlrd与xlwt对excel的读写和格式设定
Jan 21 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
Feb 03 Python
python控制台实现tab补全和清屏的例子
Aug 20 Python
Django通用类视图实现忘记密码重置密码功能示例
Dec 17 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
python实现可下载音乐的音乐播放器
Feb 25 Python
python字典的值可以修改吗
Jun 29 Python
基于opencv实现简单画板功能
Aug 02 Python
python re模块常见用法例举
Mar 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
2021年最新CPU天梯图
2021/03/04 数码科技
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
2012/08/01 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
js实现文字闪烁特效的方法
2015/12/17 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
Python中的zip函数使用示例
2015/01/29 Python
Python编写登陆接口的方法
2017/07/10 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
python创建学生管理系统
2019/11/22 Python
django 模版关闭转义方式
2020/05/14 Python
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
见习期自我鉴定
2014/01/31 职场文书
服装设计专业自荐信
2014/06/17 职场文书
暑期培训班招生方案
2014/08/26 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
大学生自我评价范文
2015/03/03 职场文书
opencv读取视频并保存图像的方法
2021/06/04 Python