广受人们欢迎的深度学习框架 PyTorch 刚刚更新了 1.10 正式版,在 CUDA Graphs API 等方面进行了诸多改进。
PyTorch 是一个开源的 Python 机器学习库,基于 Torch,底层由 C++ 实现,主要应用于人工智能领域,如自然语言处理,它最初由 Facebook 的人工智能研究团队开发。由于 PyTorch 定义网络结构简单等特点,自发布以来便受到众多研究人的青睐。
经过研究者的不断努力,现在, PyTorch 更新到 PyTorch 1.10 版本。此版本由 1.9 版本以来的 3,400 多次 commits 组成,由 426 位贡献者完成。
此次PyTorch 1.10 的更新侧重于改进 PyTorch 的训练和性能以及开发人员的可用性。亮点包括以下:
集成了 CUDA Graphs API 以减少 CUDA 工作负载的 CPU 开销;
FX、torch.special 和 nn.ModuleParametrization 等几个前端 API 已从测试版变为稳定版;
除了 GPU 之外,JIT Compiler 中对自动融合的支持扩展到 CPU;
Android NNAPI 支持现已推出测试版。
(注:从 PyTorch 1.6 版本开始,PyTorch 特性分为 Stable(稳定版)、Beta(测试版)和 Prototype(原型版)。
PyTorch 1.10 最新特性
前端 API
使用 FX 进行 Python 代码转换(稳定版):FX 提供了一个用于转换和降低 PyTorch 程序的 python 化平台,它是一个工具包,在 1.10 版本中,FX 趋于稳定,用户可以使用 torch.fx 实现程序转换。
torch.special(稳定版):torch.special 模块,类似于 SciPy 的特殊模块,现在稳定版可用。该模块有 30 种运算,包括 gamma、Bessel 和(高斯)误差函数。
nn.Module 参数化(稳定版):允许用户在不修改 nn.Module 本身的情况下参数化任何参数等,在稳定版中可用。此版本增加了权重归一化 (weight_norm)、正交参数化(矩阵约束和部分剪枝),用户在创建自己的参数化时更加灵活。
CUDA Graphs API 集成(测试版):PyTorch 现在集成了 CUDA Graphs API 以减少 CUDA 工作负载的 CPU 开销。