解决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入门_浅谈逻辑判断与运算符
May 16 Python
Python 含参构造函数实例详解
May 25 Python
浅谈python内置变量-reversed(seq)
Jun 21 Python
Python升级导致yum、pip报错的解决方法
Sep 06 Python
python之文件读取一行一行的方法
Jul 12 Python
python遍历文件夹找出文件夹后缀为py的文件方法
Oct 21 Python
python处理两种分隔符的数据集方法
Dec 12 Python
python多进程下实现日志记录按时间分割
Jul 22 Python
对Python _取log的几种方式小结
Jul 25 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
python实现贪吃蛇双人大战
Apr 18 Python
浅析python 动态库m.so.1.0错误问题
May 09 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
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
php实现给二维数组中所有一维数组添加值的方法
2017/02/04 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
详解vue更改头像功能实现
2019/04/28 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
python使用pygame框架实现推箱子游戏
2018/11/20 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
python爬取本站电子书信息并入库的实现代码
2020/01/20 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
团支部推优材料
2014/05/21 职场文书
集中采购方案
2014/06/10 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
社区艾滋病宣传活动总结
2015/05/07 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript