正式支持Transformer与TensorBoard,PyTorch 1.2新鲜出炉

机器之心报道

参与:李亚洲、杜伟

在 PyTorch 上,你可以像调用卷积一样调用 Transformer 了。

PyTorch 作为 Facebook 开发和维护的一个开源框架,近来的发展势头相当强劲。自 2017 年初首发以来,PyTorch 灵活、动态的编程环境及对用户友好的界面使其非常适用于快速实验,因此在社区内迅速发展壮大。

2018 年 12 月,PyTorch 1.0 正式版发布,解决了包括可重用、性能、编程语言和可扩展性等在内的一系列问题。

今日,PyTorch 发布最新版本,做了一系列更新,包括正式支持 Transformer、TensorBoard 等。

正式支持 Transformer 与 TensorBoard

基于论文《Attention is All You Need》,PyTorch 1.2 版本加入了标准的 nn.Transformer 模块。nn.Transformer 模块完全依赖注意机制描述输入和输出之间的全局依赖关系。nn.Transformer 模块的组件是单独设计的,以便于被分开使用。例如,没有更大的 nn.Transformer 的情况下,nn.TransformerEncoder 可被自身使用。新的 API 包括:

一旦我们安装了 TensorBoard,PyTorch 的这项新 API 就会将模型和指标记录到 TensorBoard UI 的目录中,并进行可视化。它对所有基于 PyTorch、Caffe 2 的模型和张量都支持数量、图像、直方图、图和嵌入可视化。

其它重要更新

新的 TorchScript API

PyTorch 1.2 版本为 nn.Modules 转换成 ScriptModules 提供了新的、易用的 API。简单用例如下:

提升 TorchScript Python 语言覆盖范围

在 PyTorch 1.2 版本中,TorchScript 显著提升了自身对 Python 语言结构和 Python 标准库的支持。亮点包括如下:

提前返回、终止和继续;

基于迭代器的结构,如 for..in 回路、zip() 和 enumerate();

NamedTuples;

支持 math 和 string 库

支持大多数 Python 内部函数

扩展 Onnx 导出

通过与微软合作,PyTorch 1.2 版本全面支持导出 ONNX Opset 版本 7 (V1.2)、版本 8(v1.3)、版本 9(v1.4) 以及版本 10 (v1.5)。PyTorch 1.2 还增强了常量折叠通道(constant folding pass),以支持 ONNX 最新可用版本 Opset 10。此外,用户现在可以注册自己的符号(symbolic)以导出自定义操作,同时可以在导出时指定输入的动态维度。重大改进之处如下:

支持多个 Opsets 版本,包括 Opset 10 版本中导出 dropout、slice、flip 和 interpolate;

改进 ScriptModule,包括支持多输出、张量 factory 以及作为输入和输出的元组;

支持 10 多个额外的 PyTorch 操作符,包括导出自定义操作符。

参考链接:https://github.com/pytorch/pytorch/releases

本文为机器之心报道,转载请联系本公众号获得授权。

------------------------------------------------

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190809A0L2ME00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券