PyTorch 1.3 发布

oschina
 oschina
发布于 2019年10月12日
收藏 6

PyTorch 1.3 已经发布了,新的版本不仅能支持 Android/iOS 移动端部署,甚至还能让用户去对手 Google 的 Colab 上调用云 TPU。此外还有一大波新工具,涉及可解释性、加密、以及关于图像语音的诸多功能。PyTorch 1.3 带来了三个实验性的新功能:

命名张量

允许用户给张量维度命名,从而让张量更易用,这样就可以直接喊他们的名字,不用根据位置来跟踪张量维度。

升级之前,你需要在代码里写注释来给张量命名:

# Tensor[N, C, H, W]
 images = torch.randn(32, 3, 56, 56)
 images.sum(dim=1)
 images.select(dim=1, index=0)

升级之后,就直接能在代码里写了,这样可读性大大提高:

NCHW = [‘N’, ‘C’, ‘H’, ‘W’]
   images = torch.randn(32, 3, 56, 56, names=NCHW)
   images.sum('C')
   images.select('C', index=0)

另外,这项功能还能自动检查 API 是否被正确的使用,提升了安全性,还可以直接用名字来重新排列尺寸。

量化支持

开发 ML 应用程序时,有效利用服务器端和设备上的计算资源非常重要。

为了支持在服务器和边缘设备上进行更有效的部署,PyTorch 1.3 现在支持用 eager 模式进行 8 位模型量化。所谓量化,是指降低精度执行计算和存储的技术。

当前处于实验性的量化功能包括对后训练量化(post-training quantization)、动态量化(dynamic quantization)和量化感知训练(quantization-aware training)的支持。它分别利用了 x86 和 ARM CPU 的 FBGEMM 和 QNNPACK 最新的量化内核后端,这些后端与 PyTorch 集成在一起,并且现在共享一个通用 API。

移动端

另外,为了在边缘设备上高效的运行机器学习,PyTorch 1.3 支持端到端的工作流,从 Python 到部署在 iOS 和安卓端。

当然,这个功能还是早期实验版本,针对端到端做了优化,新版本重点在:

  1. 大小优化,根据用户需要构建级别优化和选择性编译。
  2. 提升了移动 CPU 和 GPU 上的性能。
  3. 高级 API:扩展移动原生 API,覆盖常用预处理、将机器学习合并到移动应用需要的集成任务,比如计算机视觉或者 NLP 的任务。

新工具

  • 可解释性工具 Captum:Captum 可以帮助使用 PyTorch 的开发者了解为什么他们的模型生成某个特定输出。Captum 提供了先进的工具来理解特定神经元和层如何影响模型做出的预测。下面的案例展示了如何在预训练的ResNet模型上应用模型可解释性算法,然后通过将每个像素的属性叠加在图像上,使其可视化:
noise_tunnel = NoiseTunnel(integrated_gradients)

attributions_ig_nt, delta = noise_tunnel.attribute(input, n_samples=10, nt_type='smoothgrad_sq', target=pred_label_idx)
_ = viz.visualize_image_attr_multiple(["original_image", "heat_map"],
                                      ["all", "positive"],
                                      np.transpose(attributions_ig_nt.squeeze().cpu().detach().numpy(), (1,2,0)),
                                      np.transpose(transformed_img.squeeze().cpu().detach().numpy(), (1,2,0)),
                                      cmap=default_cmap,
                                      show_colorbar=True)

 

  • 加密工具 Cryp Ten:这是一个新的基于社区的研究平台,用于推动隐私保护 ML 领域的发展。

多模 AI 系统工具

  • Detectron2:Detectron2 是在 PyTorch 中实现的目标检测库。它以增强的灵活性帮助计算机视觉研究,并改善可维护性和可伸缩性,以支持在生产中的用
  • Fairseq 的语音扩展:语言翻译和音频处理是系统和应用程序(例如搜索,翻译,语音和助手)中的关键组件。由于变压器等新架构的发展以及大规模的预训练方法的发展,最近在这些领域取得了巨大的进步。

云端支持

  • 谷歌云 TPU:在 Facebook、Google 和 Salesforce 的工程师共同努力下,新版的 PyTorch 加入对了云 TPU 支持,包括对超级计算机云 TPU Pods 的实验性支持。谷歌 Colab 还提供了对云 TPU 的 PyTorch 支持。
  • 阿里云:阿里云的集成涉及 PyTorch 1.x 的一键式解决方案,数据科学 Workshop notebook 服务,使用 Gloo/NCCL 进行的分布式训练,以及与阿里巴巴 IaaS(如 OSS、ODPS 和 NAS)的无缝集成。

  • 硬件生态扩展:除了主要的 GPU 和 CPU 合作伙伴之外,PyTorch 生态系统还支持专用的机器学习加速器。比如英特尔不久前推出的 NNP-I 推理芯片、Habana Labs 的 AI 处理器

参考:量子位 

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:PyTorch 1.3 发布
加载中
返回顶部
顶部