深度学习框架 PyTorch 发布 1.11 版本

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

内容简介:Python 著名 AI 框架 PyTorch 1.11 已发布。此版本由自 1.10 以来的 3300 多个提交组成, TorchData 和 functorch 的 beta 版本亦伴随发布。 版本概括: TorchData 是一个用于通用模块化数据加载原语的新库,用于...

Python 著名 AI 框架 PyTorch 1.11 已发布。此版本由自 1.10 以来的 3300 多个提交组成, TorchData 和 functorch 的 beta 版本亦伴随发布。

版本概括:

  • TorchData 是一个用于通用模块化数据加载原语的新库,用于轻松构建灵活和高性能的数据管道。在 GitHub 上查看
  • functorch 是一个将可组合函数转换添加到 PyTorch 的库,现已推出 beta 版。在 GitHub 上查看
  • 分布式数据并行 (DDP) 静态图优化稳定可用。

TorchData 介绍 

TorchData 是一个通用模块化数据加载原语库,用于轻松构建灵活且高性能的数据管道。现有的 DataLoader 将太多的功能捆绑在一起,难以扩展,此外,不同的用例通常必须一遍又一遍地重写相同的数据加载实用程序。TorchData 的目标是通过称为“ DataPipes ”的 Iterable 样式和 Map 样式的构建块启用可组合的数据加载,这些构建块与 PyTorch 的 DataLoader 开箱即用。

目前已经实现了 50 多个提供不同核心功能的 DataPipes,例如打开文件、解析文本、转换样本、缓存、混洗和批处理。在此版本中,一些 PyTorch 域库已迁移其数据集以使用 DataPipes。在 TorchText 中,库提供的流行数据集是使用 DataPipes 实现的,其 SST-2 二进制文本分类教程的一部分演示了如何使用 DataPipes 为模型预处理数据。

TorchData 的文档现已上线,包含介绍如何使用 DataPipes将它们与 DataLoader 一起使用以及实现自定义项目的 README 文件中描述了与 DataLoader 相关的常见问题解答和未来计划。

functorch 介绍 

受Google JAX 的极大启发,functorch 是一个向 PyTorch 添加可组合函数转换的库。它旨在提供可组合的 vmap(矢量化)和 autodiff 转换,可与 PyTorch 模块和 PyTorch autograd 一起使用,并具有良好的渴望模式性能。

可组合的函数转换可以帮助解决当今在 PyTorch 中难以实现的许多用例:

  • 计算每样本梯度(或其他每样本数量)
  • 在单台机器上运行模型集合
  • 在 MAML 的内循环中有效地将任务批处理在一起
  • 有效地计算雅可比矩阵和黑森矩阵以及批量矩阵

组合 vmap(矢量化)、vjp(反向模式 AD)和 jvp(正向模式 AD)转换能够轻松地表达上述内容,而无需为每个转换设计单独的库。有关 functorch 的详细信息,请参阅文档教程安装说明

分布式训练

(稳定)DDP 静态图

DDP 静态图假设您的模型在每次迭代中都使用相同的一组已使用/未使用的参数,因此它可以确定性地了解状态,例如哪些 hooks 将触发、hooks 将触发多少次以及第一次迭代后的梯度计算就绪顺序。

静态图在第一次迭代中缓存了这些状态,因此它可以支持 DDP 在以前的版本中无法支持的功能,例如,支持在相同参数上的多个激活检查点,无论是否有未使用的参数。当存在未使用的参数时,静态图功能还应用性能优化,例如,它避免遍历图以在每次迭代中搜索未使用的参数,并启用动态分桶顺序。

DDP 静态图中的这些优化为一些推荐模型带来了 10% 的 QPS 增益。

要启用静态图,只需在 DDP API 中设置 static_graph=True ,如下所示:

ddp_model = DistributedDataParallel(model, static_graph=True)

有关更多详细信息,请参阅文档教程

 

更新公告:https://pytorch.org/blog/pytorch-1.11-released/


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

查看所有标签

猜你喜欢:

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

疯狂Java讲义

疯狂Java讲义

李刚 / 电子工业出版社 / 2014-7-1 / 109.00元

《疯狂Java讲义(第3版)(含CD光盘1张)》是《疯狂Java讲义》的第3版,第3版保持了前两版系统、全面、讲解浅显、细致的特性,全面新增介绍了Java 8的新特性,《疯狂Java讲义(第3版)(含CD光盘1张)》大部分示例程序都采用Lambda表达式、流式API进行了改写,因此务必使用Java 8的JDK来编译、运行。 《疯狂Java讲义(第3版)(含CD光盘1张)》深入介绍了Java编......一起来看看 《疯狂Java讲义》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码