首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pytorch加载和保存模型

pytorch加载和保存模型

作者头像
狼啸风云
修改于 2022-09-02 14:38:06
修改于 2022-09-02 14:38:06
2.8K00
代码可运行
举报
运行总次数:0
代码可运行

方法一(推荐):

第一种方法也是官方推荐的方法,只保存和恢复模型中的参数。

保存    

torch.save(the_model.state_dict(), PATH)

恢复

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
the_model = TheModelClass(*args, **kwargs)

the_model.load_state_dict(torch.load(PATH))

使用这种方法,我们需要自己导入模型的结构信息。

方法二:

使用这种方法,将会保存模型的参数和结构信息。

保存

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
torch.save(the_model, PATH)

恢复

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
the_model = torch.load(PATH)

一个相对完整的例子

saving

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
torch.save({
'epoch': epoch + 1,
'arch': args.arch,
'state_dict': model.state_dict(),
'best_prec1': best_prec1,}, 
'checkpoint.tar' )

loading

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if args.resume:
if os.path.isfile(args.resume):
print("=> loading checkpoint '{}'".format(args.resume))
checkpoint = torch.load(args.resume)
args.start_epoch = checkpoint['epoch']
best_prec1 = checkpoint['best_prec1']
model.load_state_dict(checkpoint['state_dict'])
print("=> loaded checkpoint '{}' (epoch {})"
.format(args.evaluate, checkpoint['epoch']))

获取模型中某些层的参数

对于恢复的模型,如果我们想查看某些层的参数,可以:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 定义一个网络
from collections import OrderedDict
model = nn.Sequential(OrderedDict([
('conv1', nn.Conv2d(1,20,5)),
('relu1', nn.ReLU()),
('conv2', nn.Conv2d(20,64,5)),
('relu2', nn.ReLU())
]))
# 打印网络的结构
print(model)

OUT:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sequential (
(conv1): Conv2d(1, 20, kernel_size=(5, 5), stride=(1, 1))
(relu1): ReLU ()
(conv2): Conv2d(20, 64, kernel_size=(5, 5), stride=(1, 1))
(relu2): ReLU ()
)

如果我们想获取conv1的weight和bias:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
params=model.state_dict()
for k,v in params.items():
print(k) #打印网络中的变量名
print(params['conv1.weight']) #打印conv1的weight
print(params['conv1.bias']) #打印conv1的bias
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/05/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
C/C++学习路线
随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者。而在今天,它又扮演着什么样重要的角色呢?请往下看:
Sindsun
2019/12/06
8750
C/C++学习路线
c++学习路线
C++常用在后端服务器,移动互联网后端,经典Windows界面开发,移动互联网端界面开发,跨平台界面开发,图形分析,系统架构,应用设计,还有现在最为流行的分布架构等一些新的技术领域,C/C++工程师必备知识的思维导图。
C语言与CPP编程
2020/12/02
7150
如果一定要在 C++ 和 Java 中选择,是选 C++ 还是 Java ?
如果你是学生或有大把空余时间,那建议你把 C++ 学好,C++ 被称为程序员的九阳神功是有一定的道理的,并不是说 C++ 有多难学,而是 C++ 技术栈的学习讲究的是其背后的一系列操作系统原理,你把 C++ 学好了,就意味着你把这些背后的原理学好了,你之后再学其他任何语言和机制都轻松很多;
范蠡
2022/02/12
4.5K0
如果一定要在 C++ 和 Java 中选择,是选 C++ 还是 Java ?
Python学习路线图(免费视频及参考图书)
之前分享了 Java学习路线图,有需要的小伙伴可以点击蓝字查看,这是比较基础的入门学习内容,想要真正成为一名合格的大佬,还是有很多坑需要踩,有许多的内容去学习,这里仅仅起到抛砖引玉。还有许多小伙伴在私信问Python的相关学习路线,那么我就简单的分享一下Python的学习路线,仅供参考。
马拉松程序员
2022/04/26
9500
Python学习路线图(免费视频及参考图书)
C/C++学习路线
随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者。而在今天,它又扮演着什么样重要的角色呢?请往下看:
全栈程序员站长
2022/09/16
5570
C++入门指南(持续更新)
完整PDF下载地址(持续更新): https://download.csdn.net/download/xiaolong1126626497/19785777
DS小龙哥
2022/01/26
6780
C++入门指南(持续更新)
很多小伙伴问我推荐什么书籍和网课,这次把私藏很久的资料都贡献了(上)
平时有不少读者朋友问,有没有学习书籍网上课程推荐?今天结合自己学习经历与身边几个朋友的经历总结了一份程序员相关的书籍和网课。
C语言与CPP编程
2021/06/17
1.2K0
飞龙的程序员书单 – 编程语言
丢掉老谭的那本书吧,这本书才是最好的入门书。这本书两百多页,语言简洁,但又覆盖到了C语言的每个方面。然而这本书不仅仅讲解C语言,还附带讲解了二分查找、快速排序、二叉树、哈希表这些重要的数据结构和算法。甚至为了解释让人头疼的复杂声明,写了一个递归下降的parser。就算你不是拿此书入门的,也可以放在手头当作参考书来用。
ApacheCN_飞龙
2019/02/15
9940
一顿烤羊腿换来的Golang学习路线
这篇学习路线写完其实很久了,不过前段时间又请组内的Go后端资深研发工程师吃了一顿烤羊腿。
拓跋阿秀
2021/12/09
1.3K0
一顿烤羊腿换来的Golang学习路线
Go 语言推荐书籍(2023)
Go是谷歌公司为了解决重大问题而设计的一种小型编程语言。 快速、现代的编程语言能让业余爱好者、初学者和专业人员都受益。你需要的正是这样的语言。
kcodez
2023/02/27
2.6K1
Go 语言推荐书籍(2023)
3、J2EE学习推荐书籍
YGingko
2017/12/28
2.5K0
转行了!
微信上收到一个读者的私信,他正在一所 985 高校读研,专业是机械工程,想转行做软件开发,问我该选择 C++ 还是 Java?
沉默王二
2021/11/16
6250
转行了!
C 语言与 C++ 学习路线
诸如Windows平台VC系列:VC++6.0(比较古老) ;Visual Studio2013, Visual Studio 2015,Visual Studio2019;Mac平台的XCode系列,还有CodeBlock,另附一些高级编辑器Notepad++,EditPlus,UE等一些开发工具的常用设置和一些常见快捷键的使用。
C语言与CPP编程
2020/10/17
2.5K0
C 语言与 C++ 学习路线
C++ 夺冠!成为 TIOBE 2022 年度编程语言(附C&C++书单)
👆点击“博文视点Broadview”,获取更多书讯 整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 2022 年年度编程语言揭榜啦!在上个月预想的 C++、C、Python 三种候选语言中,C++ 脱颖而出,成为 TIOBE 2022 年度编程语言的最终获得者! C++ 摘得桂冠 近段时间来,C++ 的发展有目共睹,其在上个月甚至首次超过了 Java,位居榜单第三的位置。现如今之所以赢得年度编程语言的称号,TIOBE 官方也进行了总结与回顾。 其表示,「C++ 受欢迎的原因是它出色的性能
博文视点Broadview
2023/04/04
7480
C++ 夺冠!成为 TIOBE 2022 年度编程语言(附C&C++书单)
前端必备javascript书籍测评【含红宝书和绿皮书】
大家好,我是大圣,今天给大家带来期待已久的javascript书籍测评,工作者9年多看过的js书大部分都在这了,会分成这几个部分来推荐
若川
2020/10/10
3.8K0
前端必备javascript书籍测评【含红宝书和绿皮书】
游戏开发图书推荐--我读过的技术经典图书
很多同学问我学游戏开发应该看些什么书,我在这里抛砖引玉,给一份推荐表,希望大家共同提高。由于本人英文不太好,推荐的大部书籍都是国人编写的,有些经典的外文图书可能是翻译不好,我自己难以读下去,所以未能推荐。
帘卷西风
2018/08/03
1.4K0
各种计算机语言的经典书籍(C/C++/Java/C#/VC/VB等)
Java编程语言(第三版)—Java四大名著—-James Gosling(Java之父)
谙忆
2021/01/21
1.3K0
C++后台开发必看,这个学习路线必须收藏
在去年结束的秋季招聘中,后台开发或服务器开发的岗位需求一度火热,甚至超过了算法岗。不少同学从诸神黄昏的算法岗战场上退下,转向更偏向工程能力的后台开发岗,从而造成后台开发岗位竞争的大爆发。
java架构师
2020/04/10
2K0
C++后台开发必看,这个学习路线必须收藏
浅谈C++基本框架内涵及其学习路线
C++支持面向对象编程,通过类和对象的概念,促进代码的重用性和模块化设计。面向对象编程的核心概念包括封装、继承和多态性。
小李很执着
2024/06/15
1970
浅谈C++基本框架内涵及其学习路线
校招| C++ 后台开发学习路线
之前一直没写的原因在于自己觉得自己懂得太少,还没成为一个大佬,还没成为一个精通某个领域的专家,怎么能教别人如何学习呢?
C语言与CPP编程
2021/03/25
1.5K0
校招| C++ 后台开发学习路线
相关推荐
C/C++学习路线
更多 >
LV.2
这个人很懒,什么都没有留下~
目录
  • 方法一(推荐):
    • 保存    
    • torch.save(the_model.state_dict(), PATH)
    • 恢复
  • 方法二:
    • 保存
    • 恢复
  • 一个相对完整的例子
  • 获取模型中某些层的参数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档