PyTorch 1.7版本包括许多新的API,包括对与NumPy兼容的FFT操作的支持,性能分析工具以及对基于分布式数据并行(DDP)和基于远程过程调用(RPC)的分布式训练的重大更新。
此外,一些功能已经稳定下来,包括自定义C ++类,内存分析器,自定义张量对象的创建,RPC中的用户异步功能以及torch中的许多其他功能。例如Per-RPC超时,DDP动态存储和RRef助手。
亮点包括:
CUDA 11现在通过PyTorch.org提供的二进制文件得到正式支持。
在autograd探查器中对RPC,TorchScript和Stack跟踪的性能分析进行更新和添加
(Beta版本)通过torch.fft支持NumPy兼容的快速傅立叶变换(FFT)
(Prototype版本)支持Nvidia A100一代GPU和本机TF32格式
(Prototype版本)现在支持Windows上的分布式训练
torchvision
(Stable版本) TTransform现在支持Tensor输入,批处理计算,GPU和TorchScript
(Stable版本) 用于JPEG和PNG格式的本机图像I / O
(Beta版本) 新的视频阅读器API
torchaudio
(Stable版本) 增加了对语音记录(wav2letter),文本到语音(WaveRNN)和源分离(ConvTasNet)的支持
重申一下,从PyTorch 1.6开始,功能现在分为stable版,beta版和prototype版。
前端API
[BETA] NUMPY兼容的TORCH.FFT模块
与FFT相关的功能通常用于各种科学领域,例如信号处理。尽管PyTorch过去一直支持一些与FFT相关的功能,但1.7版本增加了一个新的torch.fft模块,该模块使用与NumPy相同的API来实现与FFT相关的功能。
必须导入此新模块才能在1.7版中使用,因为其名称与历史性(现已弃用)torch.fft函数冲突。
用法示例:
[BETA]对Transformer中NN模块的C ++支持
此更新使开发人员可以使用C ++前端中的nn.transformer模块抽象。而且,开发人员不再需要从python / JIT保存模块并将其加载到C ++中,因为它现在可以直接在C ++中使用。
分布式训练和RPC
[BETA]具有TORCHSCRIPT支持的分布式优化器
PyTorch提供了大量用于训练算法的优化器,这些优化器已作为python API的一部分被重复使用。但是,用户经常希望使用多线程训练而不是多进程训练,因为它在大规模分布式训练(例如Distributed Model Parallel)或任何基于RPC的训练应用程序的上下文中提供了更好的资源利用率和效率。用户以前无法使用分布式优化器来做到这一点,因为需要摆脱python全局解释器锁定(GIL)的限制才能实现此目的。
在PyTorch 1.7中,启用了分布式优化器中的TorchScript支持以删除GIL,并使其可以在多线程应用程序中运行优化器。新的分布式优化器具有与以前完全相同的界面,但是它将自动将每个工作器中的优化器转换为TorchScript以释放每个GIL。这是通过利用功能优化器概念并允许分布式优化器将优化器的计算部分转换为TorchScript来完成的。这将有助于诸如分布式模型并行训练之类的用例,并使用多线程提高性能。
当前,唯一支持使用TorchScript进行自动转换的优化器是,Adagrad并且其他所有优化器在没有TorchScript支持的情况下仍可以像以前一样工作。这是如何使用它的示例:
[BETA]对基于RPC的分析的增强
PyTorch 1.6首次引入了对将PyTorch Profiler与RPC框架结合使用的支持。在PyTorch 1.7中,进行了以下增强:
为通过RPC分析TorchScript函数实现了更好的支持
在与RPC一起使用的探查器功能方面实现了奇偶校验
在服务器端增加了对异步RPC函数的支持(用修饰的函数
rpc.functions.async_execution)
。
用户现在可以使用熟悉的性能分析工具,例如和torch.autograd.profiler.profile()
和with torch.autograd.profiler.record_function
,并且可以与RPC框架透明地工作,并具有全部功能支持,配置文件异步功能和TorchScript函数。
[PROTOTYPE] WINDOWS对分布式训练的支持
PyTorch 1.7提供了对Windows平台上DistributedDataParallel和集体通信的原型支持。在此版本中,支持仅涵盖基于Gloo的ProcessGroup和FileStore。
要在多台计算机上使用此功能,请在中提供共享文件系统中的文件init_process_group。
关于Pytrotch1.7版本的更多信息,请参考:
https://pytorch.org/blog/pytorch-1.7-released/
球分享
球点赞
球在看