译者:guobaoyo

示例:从Pytorch到Caffe2的端对端AlexNet模型

这里是一个简单的脚本程序,它将一个在 torchvision 中已经定义的预训练 AlexNet 模型导出到 ONNX 格式. 它会运行一次,然后把模型保存至 alexnet.onnx:

import torch
import torchvisiondummy_input = torch.randn(10, 3, 224, 224, device='cuda')
model = torchvision.models.alexnet(pretrained=True).cuda()# 可以根据模块图形的数值设置输入输出的显示名称。这些设置不会改变此图形的语义。只是会变得更加可读了。
#该网络的输入包含了输入的扁平表(flat list)。也就是说传入forward()里面的值,其后是扁平表的参数。你可以指定一部分名字,例如指定一个比该模块输入数量更少的表,随后我们会从一开始就设定名字。
input_names = [ "actual_input_1" ] + [ "learned_%d" % i for i in range(16) ]
output_names = [ "output1" ]torch.onnx.export(model, dummy_input, "alexnet.onnx", verbose=True, input_names=input_names, output_names=output_names)

得到的 alexnet.onnx 是一个 protobuf 二值文件, 它包含所导出模型 ( 这里是 AlexNet )中网络架构和网络参数. 关键参数 verbose=True 会使导出过程中打印出的网络更可读:

#这些是网络的输入和参数,包含了我们之前设定的名称。
graph(%actual_input_1 : Float(10, 3, 224, 224)%learned_0 : Float(64, 3, 11, 11)%learned_1 : Float(64)%learned_2 : Float(192, 64, 5, 5)%learned_3 : Float(192)# ---- 为了简介可以省略 ----%learned_14 : Float(1000, 4096)%learned_15 : Float(1000)) {# 每个声明都包含了一些输出张量以及他们的类型,以及即将运行的操作符(并且包含它的属性,例如核部分,步长等等)它的输入张量(%actual_input_1, %learned_0, %learned_1)%17 : Float(10, 64, 55, 55) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[11, 11], pads=[2, 2, 2, 2], strides=[4, 4]](%actual_input_1, %learned_0, %learned_1), scope: AlexNet/Sequential[features]/Conv2d[0]

阅读全文/改进本文

PyTorch 1.0 中文文档:torch.onnx相关推荐

  1. PyTorch 1.0 中文文档:torch.sparse

    译者:hijkzzz 警告 这个API目前还处于试验阶段,可能在不久的将来会发生变化. Torch支持COO(rdinate )格式的稀疏张量,这可以有效地存储和处理大多数元素为零的张量. 稀疏张量表 ...

  2. PyTorch 1.0 中文文档正式接受校对 | ApacheCN

    参与方式:https://github.com/apachecn/pytorch-doc-zh/blob/master/CONTRIBUTING.md 整体进度:https://github.com/ ...

  3. PyTorch 1.0 中文文档:torch.hub

    译者:kunwuz torch.hub.load(github, model, force_reload=False, *args, **kwargs) 从github上加载一个带有预训练权重的模型. ...

  4. PyTorch 1.0 中文文档:torch.utils.bottleneck

    译者: belonHan torch.utils.bottleneck是 调试瓶颈bottleneck时首先用到的工具.它总结了python分析工具与PyTorch自动梯度分析工具在脚本运行中情况. ...

  5. PyTorch 1.0 中文文档:Torch 脚本

    译者:keyianpai 创建 Torch 脚本代码 将追踪和脚本化结合起来 Torch 脚本语言参考 类型 表达式 语句 变量解析 python值的使用 调试 内置函数 Torch脚本是一种从PyT ...

  6. PyTorch 1.0 中文文档:torch.autograd

    译者:gfjiangly torch.autograd 提供类和函数,实现任意标量值函数的自动微分. 它要求对已有代码的最小改变-你仅需要用requires_grad=True关键字为需要计算梯度的声 ...

  7. PyTorch 1.0 中文文档:torch.nn.init

    译者:GeneZC torch.nn.init.calculate_gain(nonlinearity, param=None) 返回给定非线性函数的推荐的增益值.对应关系如下表: 非线性函数 增益 ...

  8. PyTorch 1.0 中文文档:torch.utils.model_zoo

    译者:BXuan694 torch.utils.model_zoo.load_url(url, model_dir=None, map_location=None, progress=True) 由给 ...

  9. PyTorch 1.0 中文文档:torch.utils.data

    译者:BXuan694 class torch.utils.data.Dataset 表示数据集的抽象类. 所有用到的数据集都必须是其子类.这些子类都必须重写以下方法:__len__:定义了数据集的规 ...

最新文章

  1. SQL Server 2005/2008 图形界面(SQL Server Management Studio Express)
  2. Intel主动管理技术用例-远程诊断、远程修复
  3. sigmoid函数(Logistic函数)
  4. java面试换背景颜色_实习|渣二本Java菜鸡0 Offer的春招血泪史,一定要主动去找实习呀!
  5. intel服务器最新主板芯片组,intel主板芯片组的介绍
  6. JAVA跟MYSQL数据库交互_【编写Java程序实现与Mysql数据库的连接,并交互性的实现简单查询,删除,修改,排序,显示等操作】...
  7. 盒子模型阴影设置,爱奇艺阴影配置
  8. 103. 二叉树的锯齿形层次遍历
  9. 工作405-关于vue组件开发过程中一直报错:This relative module was not found:
  10. live2dviewer android,live2dviewerex安卓版
  11. css之左边div固定宽度右边div自适应布局
  12. nmap扫描端口命令详解linux网络探测之网络安全
  13. 今日早报 每日精选12条新闻简报 每天一分钟 知晓天下事 6月29日
  14. 利用WireShark分析H264码流
  15. Access的DateAdd 函数
  16. oracle序列号查询最大值,Oracle sequence值到了最大值的处理
  17. matlab 圆角,rectangle函数MATLAB matlab中rectangle画圆角矩形
  18. [C++]深复制与浅复制
  19. MPU9250使用笔记
  20. Alfresco 4.0安装手把手教程

热门文章

  1. C语言中static关键字详解
  2. HDVPSS模块介绍及使用
  3. Nginx基本数据结构之ngx_buf_t
  4. HTTP常见问题总结
  5. excel导出多重表头utils_Java中注解学习系列教程-4 使用自定义注解实现excel导出...
  6. java中用流提取文档中的文字,语言实现从word文档中提取文本
  7. linux mutex 数量上限,互斥量mutex
  8. IDEA+Maven:cannot download sources
  9. 简记Ubuntu下载 Android源码
  10. NLP(paper + code)