解决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 ljust rjust center输出
Sep 06 Python
Python代码的打包与发布详解
Jul 30 Python
深入浅析Python中join 和 split详解(推荐)
Jun 30 Python
python3使用requests模块爬取页面内容的实战演练
Sep 25 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
Python使用numpy实现BP神经网络
Mar 10 Python
python实现排序算法解析
Sep 08 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 Python
python根据多个文件名批量查找文件
Aug 13 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
Jan 15 Python
Python flask框架如何显示图像到web页面
Jun 03 Python
浅谈PyTorch中in-place operation的含义
Jun 27 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
一个用于网络的工具函数库
2006/10/09 PHP
php模板之Phpbean的目录结构
2008/01/10 PHP
PHP技术开发技巧分享
2010/03/23 PHP
基于php-fpm的配置详解
2013/06/03 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
PHP内存缓存功能memcached示例
2016/10/19 PHP
JavaScript CSS修改学习第五章 给“上传”添加样式
2010/02/19 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
送你43道JS面试题(收藏)
2019/06/17 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
Django app配置多个数据库代码实例
2019/12/17 Python
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
老公保证书范文
2014/04/29 职场文书
品质标语大全
2014/06/21 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
委托证明书
2014/09/17 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
2015年安全月活动总结
2015/03/26 职场文书
培训讲师开场白
2015/06/01 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
Redis如何实现分布式锁
2021/08/23 Redis