前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pytorch的python API略读--序列化和反序列化

pytorch的python API略读--序列化和反序列化

作者头像
用户9875047
发布2022-07-04 14:06:07
2340
发布2022-07-04 14:06:07
举报
文章被收录于专栏:机器视觉全栈er

2.2 序列化和反序列化

序列化是将某个对象的信息转化成可以存储或者传输的信息的过程,反序列化是和序列化相反的过程。

torch.save: 序列化的用法如下:

代码语言:javascript
复制
torch.save(obj, f, pickle_module=pickle, 
pickle_protocol=DEFAULT_PROTOCOL, 
_use_new_zipfile_serialization=True)

举个简单的例子:

代码语言:javascript
复制
>>> import torch
>>> cvtutorials = torch.randn([2, 3])
>>> cvtutorials
tensor([[-1.8449,  1.7814, -0.5579],
        [-0.5615, -0.2925, -0.0764]])
>>> torch.save(cvtutorials, "cvtutorials.pt")

torch.load: 反序列化的用法如下:

代码语言:javascript
复制
torch.load(f, map_location=None, pickle_module=pickle, 
**pickle_load_args)

举个简单的例子:

代码语言:javascript
复制
>>> cvtutorials_1 = torch.load("cvtutorials.pt", map_location=torch.device("cpu"))
>>> cvtutorials_1
tensor([[-1.8449,  1.7814, -0.5579],
        [-0.5615, -0.2925, -0.0764]])
>>> cvtutorials_1.is_cuda
False

这里要注意,上面的函数将所有的tensor放到cpu上的,如果要特别指定放到GPU上,需要设置为GPU,举例如下:

代码语言:javascript
复制
>>> cvtutorials_2 = torch.load("cvtutorials.pt", map_location=lambda storage, loc: storage.cuda(1))
>>> cvtutorials_2
tensor([[-1.8449,  1.7814, -0.5579],
        [-0.5615, -0.2925, -0.0764]], device='cuda:1')
>>> cvtutorials_2.is_cuda
True

我将tensor载入到GPU上时,速度明显变慢了,有一个从CPU迁移到GPU的过程。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器视觉全栈er 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档