PyTorch 1.10正式版上线了!附相关资源
广受人们欢迎的深度学习框架 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 开销。
CUDA Graphs 大大降低了 CPU 绑定 cuda(CPU-bound cuda)工作负载的 CPU 开销,从而通过提高 GPU 利用率来提高性能。对于分布式工作负载,CUDA Graphs 还可以减少抖动,并且由于并行工作负载必须等待最慢的工作负载,因此减少抖动可以提高整体并行效率。
分布式训练
在 1.10 版本中,有许多特性在分布式包中从测试版过渡到稳定版,具体包括:
Remote Module(稳定版):此功能允许用户远程操作模块,就像使用本地模块一样,其中 RPC 对用户是透明的;
DDP Communication Hook(稳定版):此功能允许用户覆盖 DDP 如何跨进程同步梯度;
ZeroRedundancyOptimizer(稳定版):此功能可与 DistributedDataParallel 结合使用,以减少每个进程优化器状态的大小。
性能优化以及工具
(测试版)TorchScript 严格要求源代码具有类型注释才能成功编译。长期以来,用户只能通过反复试验来添加缺失或不正确的类型注解,效率低下,耗时长。现在,PyTorch 1.10 利用 MonkeyType 等现有工具为 torch.jit.script 启用了配置文件定向输入,这使得该过程变得更容易、更快和更高效。
(测试版)CPU 融合:PyTorch 1.10 为 CPU 添加了一个基于 LLVM 的 JIT 编译器,可以将 Torch 库调用序列融合在一起以提高性能。虽然此前的版本在 GPU 上拥有此功能已有一段时间了,但 1.10 版本是第一次将编译引入 CPU。
PyTorch Profiler
(测试版)PyTorch Profiler 的目标是针对时间或内存成本最高的执行步骤,并可视化 GPU 和 CPU 之间的工作负载分布。PyTorch 1.10 包括以下主要功能:
增强型内存视图:这有助于用户更好地了解内存使用;
增强型内核视图:附加列显示网格和块大小以及每个线程共享内存使用和寄存器的情况;
分布式训练:Gloo 现在支持分布式训练工作;
TensorCore:该工具显示 Tensor Core(TC) 的使用,并为数据科学家和框架开发人员提供建议;
NVTX:对 NVTX markers 的支持是从旧版 autograd profiler 移植过来的;
支持移动设备分析:PyTorch profiler 现在与 TorchScript 、移动后端能够更好的集成,支持移动工作负载的跟踪收集。
支持 Android NNAPI
去年,PyTorch 官方发布了对 Android Neural Networks API (NNAPI) 的原型支持。PyTorch1.10 版本增加了更多的操作,包括在加载时对形状的支持,以及在主机上运行模型进行测试的能力。
此外,迁移学习已经添加到对象检测示例中。
对于此次 PyTorch 的更新,网友也不仅赞叹:「PyTorch 团队的出色工作,融合和 profiler 工作,非常酷!」
关于 PyTorch1.10 版本的更新,更多信息请参考:
Github: https://github.com/pytorch/pytorch/releases/tag/v1.10.0
参考链接:https://pytorch.org/blog/pytorch-1.10-released/
https://www.marktechpost.com/2021/10/21/pytorch-releases-version-1-10-with-updates-on-cuda-graphs-apis/
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件
本站qq群554839127,加入微信群请扫码:
PyTorch 1.10正式版上线了!附相关资源相关推荐
- Android 10 vivo,更快更安全,vivo产品经理宣布:iQOO将首批适配Android 10正式版
今天,谷歌一年一度的I/O 2019开发者大会如期举行.此次大会除了多款重磅新产品,新一代系统Android Q(10)beta版本的更多新功能也被揭开.除了支持5G网络.针对折叠屏这样的大屏设备进行 ...
- android 10系统下载地址,Android 10正式版
Android 10正式版全新上线啦.就在8月23号,谷歌刚刚宣布Android系统的重大改变,是什么改变了呢,根据最新的消息报道,此次的更新不仅换了全新的logo,所谓的命名方式也是变了.之前的An ...
- vivo适配android10,更快更安全,vivo产品经理宣布:iQOO将首批适配Android 10正式版...
原标题:更快更安全,vivo产品经理宣布:iQOO将首批适配Android 10正式版 天,谷歌一年一度的I/O 2019开发者大会如期举行.此次大会除了多款重磅新产品,新一代系统Android Q( ...
- Zend Studio 10正式版破解(2013-02-26更新)
Zend Studio 10正式版注册破解(2013-02-26完成更新) 1.以下方法仅供技术交流学习,请勿非法使用,如长期使用请支持购买正版. 2.若你还没有最新安装程序? ZendStudio ...
- 我的世界1.7.10java下载安装_我的世界1.7.10正式版
游戏简介 <我的世界1.7.10正式版>是由官方带来的一个全新版本,加入了大量新内容,包含了道具.武器装备.建筑等等,此外本作为官方纯净版本,玩家可以自行添加各种mod,欢迎下载体验. 更 ...
- MySQL 企业监控器 2.3.10 正式版发布
Oracle于近日发布了 MySQL 企业监控器 2.3.10 正式版. MySQL企业监控器主要用于实施对数据库进行监控和管理.通过它,数据库管理员不但可以获得高级的数据复制和数据库监控功能,同时还 ...
- 搜狐“狐友”正式版上线 扩张我的社交圈
6月9日,搜狐旗下社交产品--以"扩张我的社交圈"为口号的"狐友"APP正式版举办开放日活动.邀请"狐友"进行线下交流,明星柳岩作为&quo ...
- Windows 10正式版历代记:Version 和 Build 对应关系
2017年10月中下旬,微软面向正式版用户推送了Windows 10创意者更新秋季版.这是自发布以来,Windows 10的第五个大版本. 在这篇文章中,我们来回顾一下Windows 10正式版的历史 ...
- Zend Studio 10正式版注册破解
Zend Studio 10正式版注册破解 1.文件和汉化文件 ZendStudio官方下载地址:http://www.geekso.com/component/zendstudio-download ...
最新文章
- BTC跟跌黄金,BCH领涨主流 2019.8.14
- 【备忘】とある画像の自动生成
- 半关闭函数:高级版的 close 函数
- css3中变形与动画(三)
- SCRUM与XP区别
- 【译】适合dba和开发者的mysql最佳实践
- iOS10推送适配完整说明
- 重磅干货免费下载!阿里云RDS团队论文被数据库顶会SIGMOD 2018收录
- MySQL数据以全量和增量方式,同步到ES搜索引擎
- [ 淘宝商城 ] 商城SEO
- R语言如何下载及安装?——R语言安装及环境配置1
- 汤晓鸥教授:人工智能让天下没有难吹的牛!
- 卡尔曼滤波的细致讲解从一维到多维
- Nodebb 开发1
- python和办公软件有什么区别_WPS与OFFICE办公软件有哪些区别
- 艺赛旗(RPA)国家企业信用信息公示系统验证码破解(二)
- hexo的next主题换到Yelee(Yilia)
- 保护你的 Flutter 应用程序
- [概率统计]—中心极限定理
- 手脫 -- PECompact 2.x -gt; Jeremy Collake
热门文章
- android activity生命周期的一张经典图片
- Codeforces Round #133 (Div. 2) C. Hiring Staff 想法题目
- 用js实现统计字符串里面的出现次数最多的字符
- 蒟蒻浅谈树链剖分之一——两个dfs操作
- wannalfy 挑战赛8 F 白云的树(树形dp)
- 第二次作业:王者荣耀软件分析
- 如何开发一个npm包并发布
- SQL 数据库 连接查询 变量、if else、while
- The Reflection And Amplification Attacks NTP Reply Flood Attack Based On NTP
- 0bjective-c 之 NSString 使用详解