美文网首页
Pytorch袖珍手册之十六

Pytorch袖珍手册之十六

作者: 深思海数_willschang | 来源:发表于2021-09-01 10:28 被阅读0次
    pytorch pocket reference

    第七章 模型部署 Deploying Pytorch to Production 之二

    ONNX部署方案
    ONNX GitHub地址

    开放神经网络交换(Open Neural Network Exchange)简称ONNX是微软和Facebook提出用来表示深度学习模型的开放格式。所谓开放就是ONNX定义了一组和环境,平台均无关的标准格式,来增强各种AI模型的可交互性。

    ONNX文件不仅仅存储了神经网络模型的权重,同时也存储了模型的结构信息以及网络中每一层的输入输出和一些其它的辅助信息。 ONNX使用的是Protobuf这个序列化数据结构去存储神经网络的权重信息。

    Protobuf是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。

    ONNXf几个组件:

    • 可扩展计算图模型的定义
    • 标准数据类型的定义
    • 内置运算符的定义

    示例代码片断

    # 转换模型为onnx
    model = vgg16(pretrained=True)
    example_input = torch.rand(1, 3, 224, 224)
    onnx_model = torch.onnx.export(model, example_input, "vgg16.onnx")
    
    # 加载
    import onnx
    model = onnx.load("vgg16.onnx")
    onnx.checker.check_model(model)
    onnx.helper.printable_graph(model.graph)
    

    ONNX 教程

    移动端库方案
    现在智能移动端基本上随处可见,因此也有相关的智能移动端的库支持AI模型的部署。
    Pytorch Mobile为iOS,Android和Linux等移动端应用提供了相关的预处理和集成需要的接口。

    Pytorch mobile workflow

    相关文章

      网友评论

          本文标题:Pytorch袖珍手册之十六

          本文链接:https://www.haomeiwen.com/subject/tqtziltx.html