PyTorch 1.7发布,支持CUDA 11、Windows分布式训练

昨日,PyTorch 团队发布 PyTorch 1.7 版本。该版本增添了很多新特性,如支持 CUDA 11、Windows 分布式训练、增加了支持快速傅里叶变换(FFT)的新型 API 等。

PyTorch 1.7 版本包含很多新的 API,如支持 NumPy 兼容的 FFT 操作、性能分析工具,以及对基于分布式数据并行(DDP)和基于远程过程调用(RPC)的分布式训练的重要更新。

此外,一些特性也更新为稳定版,包括自定义 C++ 类、内存分析器、通过自定义类张量对象进行扩展、RPC 中的用户异步函数,以及 torch.distributed 中的许多其他特性(如 Per-RPC 超时、DDP dynamic bucketing、RRef helper)。

本次更新的亮点包括:
  • CUDA 11 得到 PyTorch 官方支持;

  • 对 autograd 分析器,更新和添加了 RPC、TorchScript 和堆栈跟踪(Stack trace)的分析和性能;

  • (测试版)通过 torch.fft 支持 NumPy 兼容的 FFT 操作;

  • (原型版)支持英伟达 A100 GPU 和原生 TF32 格式;

  • (原型版)支持 Windows 系统上的分布式训练。

  • torchvision

  • (稳定版)transforms 支持张量输入、批处理计算、GPU 和 TorchScript

  • (稳定版)JPEG 和 PNG 格式的原生图像 I/O

  • (测试版)新型视频读取器 API

  • torchaudio

  • (稳定版)增加了对语音录制(wav2letter)、文本转语音(WaveRNN)和源分离(ConvTasNet)的支持

(注:从 PyTorch 1.6 版本开始,PyTorch 特性分为 Stable(稳定版)、Beta(测试版)和 Prototype(原型版)。

新特性

PyTorch 1.7 相比之前版本,增加了很多新特性,包括 Python API、C++ API、Autograd、CUDA、量化等多个方面。

例如 Python API 增添了多个新的 namespace、operator 以及 API 扩展,CUDA 增加了 TF32 支持等,量化方面增加了新的量化操作、支持 FP16 量化等。

PyTorch 1.7 部分新特性,详情参见 https://github.com/pytorch/pytorch/releases/tag/v1.7.0。

开发者对 PyTorch 1.7 的态度

有开发者对 PyTorch 1.7「支持 Windows 上的分布式训练」这一新功能表示赞赏:

以及乐见于「PyTorch 对 CUDA 11 的支持」:

依然有人趁机表白 PyTorch,并列出偏好 PyTorch 的原因,如报错易读、代码直观、易于实验。

当然,版本更迭的路似乎永无止境。有开发者提出了自己的需求,例如 fp32 卷积、TensorFlow 有而 PyTorch 没有的 Semantic Versioning:

此时距离 PyTorch 1.6 版本发布仅三个月,不知道 PyTorch 的下一个版本又将带给我们哪些惊喜。

参考链接:
https://pytorch.org/blog/pytorch-1.7-released/
https://github.com/pytorch/pytorch/releases/tag/v1.7.0
https://www.reddit.com/r/MachineLearning/comments/jj4sr7/d_pytorch_17_released_w_cuda_11_new_apis_for_ffts/

工程PyTorchCUDA
相关数据
TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

傅里叶变换技术

傅里叶变换(法语:Transformation de Fourier、英语:Fourier transform)是一种线性积分变换,用于信号在时域(或空域)和频域之间的变换,在物理学和工程学中有许多应用。因其基本思想首先由法国学者约瑟夫·傅里叶系统地提出,所以以其名字来命名以示纪念。实际上傅里叶变换就像化学分析,确定物质的基本成分;信号来自自然界,也可对其进行分析,确定其基本成分。

量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

推荐文章
暂无评论
暂无评论~