这是一个非常愚蠢的错误

debug的时候要好好看error信息

提醒自己切记好好对待error!切记!切记!

-----------------------分割线----------------

pytorch 已经非常友好了 保存模型和加载模型都只需要一条简单的命令

#保存整个网络和参数

torch.save(your_net, 'save_name.pkl')

#加载保存的模型

net = torch.load('save_name.pkl')

因为我比较懒我就想直接把整个网络都保存下来,然后在test文件中直接load一下不就好了?

就遭受了这样的错误。看错了error信息,把‘Net'看成‘net'。报错没有属性‘net'?这个不是我自己写的变量名么?

-----------------瞎捣鼓1h后(呵呵呵)----------------

回头看error,没有属性‘Net',Net???

我当下明白过来,应该是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'))

保存网络参数

重新定义网络

报错

想死。。。

仔细看了报错信息,以我小白的理解,我感觉保存下来的可能只是单纯的数据,而不是一个对象(没有方法可以操作),或者该对象没有.copy()方法,所以没有办法进行.copy(),那肯定是保存哪里出错了。然后发现保存部分代码写错了,改成

print一下 net.state_dict和net.state_dict(),前者输出的是网络结构,后者才是网络的参数。

试着回答之前的问题,第二种保存模型的方法只保存了网络的参数(包括卷积层和全连接层每次的weight,bias),所以再加载模型的时候需要先定义网络无可厚非,就像训练时候定义网络那样定义就可以;而第一种保存整个网络的方法,保存了一个网络的实例(包括它的所有结构和参数),net是Net的一个实例,那为什么还要有Class Net的定义呢,还是回答不了。。

那就继续存疑,保持探究精神吧。。

以上这篇解决Pytorch 加载训练好的模型 遇到的error问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持python博客。

pytorch 驱动不兼容_解决Pytorch 加载训练好的模型 遇到的error问题相关推荐

  1. 关于PaddleNLP如何加载训练好的模型进行NER

    关于PaddleNLP如何加载训练好的模型进行NER 关于PaddleNLP如何加载训练好的模型进行NER 当时在如何加载已经训练好的模型的问题上花了很长时间,后来也是受另一篇文章启发,问题才得以解决 ...

  2. ajax传输json数据格式乱码_解决Ajax加载JSon数据中文乱码问题

    一.问题描述 使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经对中文乱码处理,为什么还会出现呢? 此处为的异步请求的配置: Java代码 async: { ...

  3. pytorch 加载训练好的模型后测试得到的结果不一样

    1.训练模型,在模型train模式下,运行测试图片,得到结果正确:5200240905064,保存此模型, 2.加载训练好的pth模型,调用model.eval(),在eval模式下,去测试我下载的一 ...

  4. python训练好的图片验证_利用keras加载训练好的.H5文件,并实现预测图片

    我就废话不多说了,直接上代码吧! import matplotlib matplotlib.use('Agg') import os from keras.models import load_mod ...

  5. tensorflow加载训练好的模型实例

    1. 首先了解下tensorflow的一些基础语法知识 这里不再详细说明其细节,只举例学习. 1.1 tensorflow的tf.transpose()简单使用: tf.reshape(tensor, ...

  6. react页面数据过多怎么办_解决 React-Native 加载数据页面卡顿问题

    一般情况下,我们在componentDidMount方法里面执行请求数据.根据字面意思:页面组件加载完毕,然后请求数据. 对的 ,没毛病!!! 然而问题就出现,当我们跳转到新页面时,到界面请求完数据, ...

  7. PyTorch:保存/加载训练好的模型测试

    保存 torch.save(model.state_dict(), './cnn.pth') 加载 model = VGG16() #加载模型前要创建一个模型的实例对象 model.load_stat ...

  8. 加载慢_解决游戏加载慢不必大刀阔斧升改,教你一个简单有效的方法

    随着支持PCIe4.0技术的3A平台出现,PCIe4.0的应用也逐渐进入普及阶段.对于资深的游戏装机玩家而言,很难不被PCIe4.0翻倍的带宽和频率所吸引,因为这能为游戏性能带来非常大的提升.除了处理 ...

  9. pytorch加载训练数据集dataloader操作耗费时间太久,该如何解决?

    笔者在使用pytorch加载训练数据进行模型训练的时候,发现数据加载需要耗费太多时间,该如何缩短数据加载的时间消耗呢?经过查询相关文档,总结实际操作过程如下: 1.尽量将jpg等格式的文件保存为bmp ...

最新文章

  1. Sybase时间日期函数
  2. 我用C++复刻了这款上世纪最伟大的游戏
  3. JS中双引号单引号,转义字符问题!!
  4. anaconda moviepy_Anaconda和PyCharm的详细安装步骤~小白专用,手把手教学
  5. oracle查询表的意思,Oracle表的查询(一)
  6. 用ZedGraph作图表(一)
  7. 职场 PUA 你知多少?
  8. [HAOI2006] 聪明的猴子
  9. IDEA导入本地项目
  10. win10摄像头可以用计算机里不显示,win10打开计算机如何显示摄像头
  11. C++(一)#pragma once用法
  12. 【Linux系统开发】Study210开发板刷安卓系统
  13. ERP软件高效排产计划:如何解决企业排产难题
  14. Android BLE4.+ 蓝牙开发国产手机兼容性解决方案
  15. ROS:坐标系之间的关系 (map \ odom \ base_link)
  16. PHP配置环境搭建 MyEclipce添加PHP插件
  17. boj478. 小妹妹采蘑菇-概率
  18. c语言实现运输问题表上作业法,运输问题的表上作业法
  19. safari中判断app是否安装
  20. linux搭建erp教程,在Debian 10(Buster)上安装ERPNext ERP系统的步骤

热门文章

  1. vs mysql 登录界面_vs登录界面连接数据库代码
  2. 计算机病毒是什么文件形式,【文件病毒】文件病毒的格式、危害、特点_什么是文件病毒_佰佰安全网...
  3. 怎么选?阿里P7 or 副处级干部?
  4. 内存只有100G,要全表扫描一个200G大表,会不会把内存用完?
  5. 4.2w Star的文件同步工具,比VIP网盘还好用!
  6. 浪潮的加班标语炸了,这是顶风作案?网传:1月加班87小时还要扣工资?
  7. 皮一皮:论圈子的重要性!
  8. 一上来,就问原理,问上亿(MySQL)大表的索引优化...
  9. Redis 性能问题分析
  10. 关于程序猿鄙视链,哽咽