昨日,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)。
本次更新的亮点包括:
(1) CUDA 11 得到 PyTorch 官方支持;
(2) 对 autograd 分析器,更新和添加了 RPC、TorchScript 和堆栈跟踪(Stack trace)的分析和性能;
(3) (测试版)通过 torch.fft 支持 NumPy 兼容的 FFT 操作;
(4) 原型版)支持英伟达 A100 GPU 和原生 TF32 格式;
(5) 原型版)支持 Windows 系统上的分布式训练。
(6) torchvision
- (稳定版)transforms 支持张量输入、批处理计算、GPU 和 TorchScript
- (稳定版)JPEG 和 PNG 格式的原生图像 I/O
- (测试版)新型视频读取器 API
(7) 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/
【本文是51CTO专栏机构“机器之心”的原创译文,微信公众号“机器之心( id: almosthuman2014)”】