Pytorch 加载训练好的模型 遇到的error

这是一个非常愚蠢的错误 

debug的时候要好好看error信息

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

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

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

 

就遭受了这样的错误。看错了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'))

保存网络参数  

重新定义网络 

发布了52 篇原创文章 · 获赞 6 · 访问量 9004

猜你喜欢

转载自blog.csdn.net/PMPWDF/article/details/101271314