前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PyTorch 1.0 中文官方教程:在 C++ 中加载 PYTORCH 模型

PyTorch 1.0 中文官方教程:在 C++ 中加载 PYTORCH 模型

作者头像
ApacheCN_飞龙
发布2022-05-07 14:01:26
4610
发布2022-05-07 14:01:26
举报
文章被收录于专栏:信数据得永生

译者:talengu

PyTorch的主要接口为Python。虽然Python有动态编程和易于迭代的优势,但在很多情况下,正是Python的这些属性会带来不利。我们经常遇到的生产环境,要满足低延迟和严格部署要求。对于生产场景而言,C++通常是首选语言,也能很方便的将其绑定到另一种语言,如Java,Rust或Go。本教程将介绍从将PyTorch训练的模型序列化表示,到C++语言_加载_和_执行_的过程。

第一步:将PyTorch模型转换为Torch Script

PyTorch模型从Python到C++的转换由Torch Script实现。Torch Script是PyTorch模型的一种表示,可由Torch Script编译器理解,编译和序列化。如果使用基础的“eager”API编写的PyTorch模型,则必须先将模型转换为Torch Script,当然这也是比较容易的。如果已有模型的Torch Script,则可以跳到本教程的下一部分。

将PyTorch模型转换为Torch Script有两种方法。 第一种方法是Tracing。该方法通过将样本输入到模型中一次来对该过程进行评估从而捕获模型结构.并记录该样本在模型中的flow。该方法适用于模型中很少使用控制flow的模型。 第二个方法就是向模型添加显式注释(Annotation),通知Torch Script编译器它可以直接解析和编译模型代码,受Torch Script语言强加的约束。

小贴士 可以在官方的Torch Script 参考中找到这两种方法的完整文档,以及有关使用哪个方法的细节指导。

利用Tracing将模型转换为Torch Script

要通过tracing来将PyTorch模型转换为Torch脚本,必须将模型的实例以及样本输入传递给torch.jit.trace函数。这将生成一个 torch.jit.ScriptModule对象,并在模块的forward方法中嵌入模型评估的跟踪:

代码语言:javascript
复制
import torch
import torchvision

# 获取模型实例
model = torchvision.models.resnet18()

# 生成一个样本供网络前向传播 forward()
example = torch.rand(1, 3, 224, 224)

# 使用 torch.jit.trace 生成 torch.jit.ScriptModule 来跟踪
traced_script_module = torch.jit.trace(model, example)

阅读全文/改进本文

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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