解决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中对list去重的多种方法
Sep 18 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
May 17 Python
python内置函数:lambda、map、filter简单介绍
Nov 16 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
python 字典修改键(key)的几种方法
Aug 10 Python
用Python读取几十万行文本数据
Dec 24 Python
对Django 转发和重定向的实例详解
Aug 06 Python
python3实现网页版raspberry pi(树莓派)小车控制
Feb 12 Python
Python实现简单的猜单词小游戏
Oct 28 Python
pytorch 计算Parameter和FLOP的操作
Mar 04 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 Python
解决Pytorch dataloader时报错每个tensor维度不一样的问题
May 28 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中用文本文件做数据库的实现方法
2008/03/27 PHP
php学习 字符串课件
2008/06/15 PHP
php实现图片添加水印功能
2014/02/13 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
Node.js编写CLI的实例详解
2017/05/17 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
2017/05/27 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
爱游人:Travelliker
2017/09/05 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
廉洁自律个人总结
2015/02/14 职场文书
婚前保证书范文
2015/02/28 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书
Python 中数组和数字相乘时的注意事项说明
2021/05/10 Python
Python实现学生管理系统(面向对象版)
2021/06/24 Python