pytorch 基本概念(新版PyTorch发布新增TorchScriptAPI)

铜灵 发自 凹非寺

量子位 出品 | 公众号 QbitAI

今天,PyTorch 1.2.0版正式发布。

官方表示,和1.1版本相比,新版本在使用体验上又往前迈进了一大步。主要新增/改动的功能包括:

  • 完善TorchScript环境,提供了新的将模型编译为TorchScrip的API
  • 扩展ONNX模型的导出的支持
  • 增强对Transformer架构的模块级支持
  • 此外,TensorBoard现在也能快速开始使用了

对于这一系列的更新,Reddit网友开心得不得了。

有网友评价,Transformer层非常棒,此前需要用自己的自定义图层,现在终于不用去维护它了。

pytorch 基本概念(新版PyTorch发布新增TorchScriptAPI)(1)

TensorBoard不再是一个实验性的功能了。RIP,浏览器。

pytorch 基本概念(新版PyTorch发布新增TorchScriptAPI)(2)

总之,1.2.0版本的PyTorch更方便更好用了。一起围观下具体更新。

pytorch 基本概念(新版PyTorch发布新增TorchScriptAPI)(3)

四大更新

TorchScript编译器

TorchScript编译器最早是在1.0版本出现的,可以将PyTorch模型转换为静态图表征,可用于Python不可用的受限环境中的优化和执行。

新版本中扩展了TorchScript对PyTorch模型中使用的Python子集的支持,提供了一种新的、更易于使用的API,用于将模型编译为TorchScript。

此前,TorchScript编译器将模型逐步转换为TorchScript,将编译后的代码与Python无缝混合。有了新的API,能将nn.Modules 转换为ScriptModules。

看一下示例用法:

pytorch 基本概念(新版PyTorch发布新增TorchScriptAPI)(4)

扩展ONNX导出

作为开源的模型交换格式,让不同的框架以相同格式存储模型数据并交互,ONNX的出现为开发人员节约了不少时间。

在PyTorch最新版中,开发者进一步扩展了ONNX导出。

主要包括:

  • 支持多种Opset,包括在Opset 10中导出dropout、slice、flip和interpolate
  • 改进ScriptModule,支持多个Tensor factory和tuples作为输入和输出
  • 新支持了十几个额外的PyTorch operator,还能对其进行自定义
  • 改进bug~

nn.Transformer模块

在PyTorch 1.2.0版本中,包含了一个标准的nn.Transformer模块,这个模块完全依赖于注意机制来理清输入和输出之间的全局依赖关系。其中的各个组件可以独立使用。

  • 例如,nn.TransformerEncoder可以单独使用,不需要更大nn.Transformer。新API包括:
  • nn.Transformer
  • nn.TransformerEncoder和nn.TransformerEncoderLayer
  • nn.TransformerDecoder和nn.TransformerDecoderLayer

Tensorboard

此外还有一处更新。现在输入from torch.utils.tensorboard import SummaryWriter即可直接使用了。

只要安装了TensorBoard,这些实用程序就可以将PyTorch模型和标准记录到目录中,用户可在TensorBoard UI中进行可视化。

更新×3

这次更新的不止PyTorch 1.2,还有torchvision 0.4,torchaudio 0.3和torchtext 0.4。

torchvision 0.4版本,包含了:

可用于读/写视频和音频文件的IO原语(I/O primitives),支持任意编码和格式。

一个标准视频数据集,兼容torch.utils.data.Dataset和torch.utils.data.DataLoader。

基于Kinetics-400数据集构建的预训练模型,可用于视频(训练脚本)的动作分类。

用于训练你自己视频模型的参考训练脚本

torchaudio 0.3主要针对让机器解释音波,新版本中围绕标准化、复数(complex number)、转换(重新采样)进行改进,还更新了torchaudio的转换接口。

torchtext 0.4针对的时NLP研究,可以用于处理基于原始文本的数据。

此次更新的版本中,包含了很多流行监督学习带“one-command”数据加载的baseline,此外,还更新了如何用新数据集进行文本分类分析的教程。

传送门

PyTorch介绍:

https://pytorch.org/blog/pytorch-1.2-and-domain-api-release/

GitHub地址:

https://github.com/pytorch/pytorch/releases

— 完 —

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页