解决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编程实现粒子群算法(PSO)详解
Nov 13 Python
Python实现的计数排序算法示例
Nov 29 Python
TensorFlow 模型载入方法汇总(小结)
Jun 19 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
pandas筛选某列出现编码错误的解决方法
Nov 07 Python
django的ORM模型的实现原理
Mar 04 Python
详解PyCharm+QTDesigner+PyUIC使用教程
Jun 13 Python
python上selenium的弹框操作实现
Jul 13 Python
Python基于xlrd模块处理合并单元格
Jul 28 Python
Python制作数据预测集成工具(值得收藏)
Aug 21 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
Sep 09 Python
python 实现音频叠加的示例
Oct 29 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
Jquery 一次处理多个ajax请求的代码
2011/09/02 Javascript
如何让页面加载完成后执行js
2013/06/26 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
微信小程序实现图片压缩功能
2018/01/26 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
Python中实现参数类型检查的简单方法
2015/04/21 Python
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
python3正则模块re的使用方法详解
2020/02/11 Python
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
美国电子元器件分销商:Newark element14
2018/01/13 全球购物
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
室内设计自我鉴定
2013/10/15 职场文书
应聘自荐信
2013/12/14 职场文书
地球一小时倡议书
2014/04/15 职场文书
庆祝儿童节标语
2014/10/09 职场文书
2014年秘书工作总结
2014/11/25 职场文书
财务个人年度总结范文
2015/02/26 职场文书
教师求职信怎么写
2015/03/20 职场文书
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers