PyTorch 1.6 发布:原生支持自动混合精度训练并进入稳定阶段

栏目: 软件资讯 · 发布时间: 4年前

内容简介:PyTorch 1.6 稳定版已发布,此版本增加了许多新的 API、用于性能改进和性能分析的工具、以及对基于分布式数据并行(Distributed Data Parallel, DDP)和基于远程过程调用(Remote Procedure Call, RPC)的分布式训练的...

PyTorch 1.6 稳定版已发布,此版本增加了许多新的 API、用于性能改进和性能分析的 工具 、以及对基于分布式数据并行(Distributed Data Parallel, DDP)和基于远程过程调用(Remote Procedure Call, RPC)的分布式训练的重大更新。部分更新亮点包括:

  • 原生支持自动混合精度训练(automatic mixed-precision training),并已进入稳定阶段
  • 为 tensor-aware 增加对 TensorPipe 的原生支持
  • 在前端 API 增加了对 complex tensor 的支持
  • 新的分析工具提供了张量级的内存消耗信息
  • 针对分布式数据并行训练和远程过程调用的多项改进和新功能

此外,从该版本起,新功能的状态将分为三种,分别是稳定、Beta 和原型。原型功能即为新功能提案,团队如果能从用户获取对此的良好反馈,那么原型功能就会进入 Beta 阶段,否则就停止开发。另外,原型功能不包含在二进制发行版中,而是通过从 Nightly 版本源代码构建或通过 compiler flag 使用。详情查看此博客

PyTorch 1.6 发布:原生支持自动混合精度训练并进入稳定阶段

原生支持自动混合精度训练

由 Nvidia 贡献的自动混合精度训练功能已经进入稳定阶段,AMP 训练能在 Tensor Core GPU 上实现更高的性能并节省多达 50% 的内存。

AMP API 提供方便使用混合精度的方法。官方提到,在像线性层(Linear Layer)或是卷积操作上,float16 运算较快,但像 Reduction 运算又需要 float32 的动态范围,而现在有了 AMP 功能,便可以在部分运算操作使用 float16,另一部分则使用 float32,混合精度功能会尝试为每个运算使用相匹配的数据类型。

改进分布式训练

PyTorch 支持两种强大的范式:用于对模型进行完全同步数据并行训练的 DDP 和支持分布式模型并行的 RPC 框架。过去这两个功能独立运行,用户无法混合和匹配它们来尝试混合并行范式。

从 PyTorch 1.6 开始,DDP 和 RPC 可以无缝协作,用户可以结合这两种技术来实现数据并行和模型并行。官方举了一个例子,用户希望将大型嵌入表放置在参数服务器上,并使用 RPC 框架嵌入查找,但希望将较小的密集参数存储在训练器上,并使用 DDP 来同步密集参数,下面是示例代码:

// On each trainer

remote_emb = create_emb(on="ps", ...)
ddp_model = DDP(dense_model)

for data in batch:
   with torch.distributed.autograd.context():
      res = remote_emb(data)
      loss = ddp_model(res)
      torch.distributed.autograd.backward([loss])

支持 Complex Tensor

PyTorch 1.6 带来了对 complex tensor 的 Beta 支持,包含 torch.complex64 和 torch.complex128 dtypes 两种类型。Beta 阶段支持通用的 PyTorch 和 complex tensor,以及 Torchaudio、ESPnet 等所需的功能。

>>> x = torch.randn(2,2, dtype=torch.cfloat)
>>> x
tensor([[-0.4621-0.0303j, -0.2438-0.5874j],
     [ 0.7706+0.1421j,  1.2110+0.1918j]])

详情查看 https://pytorch.org/blog/pytorch-1.6-released/


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

有趣的二进制

有趣的二进制

[ 日] 爱甲健二 / 周自恒 / 人民邮电出版社 / 2015-10 / 39.00元

《有趣的二进制:软件安全与逆向分析》通过逆向工程,揭开人们熟知的软件背后的机器语言的秘密,并教给读者读懂这些二进制代码的方法。理解了这些方法,技术人员就能有效地Debug,防止软件受到恶意攻击和反编译。本书涵盖的技术包括:汇编与反汇编、调试与反调试、缓冲区溢出攻击与底层安全、钩子与注入、Metasploit 等安全工具。 《有趣的二进制:软件安全与逆向分析》适合对计算机原理、底层或计算机安全......一起来看看 《有趣的二进制》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具