前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PyTorch 1.9发布,支持新API,可在边缘设备中执行

PyTorch 1.9发布,支持新API,可在边缘设备中执行

作者头像
机器之心
发布2023-03-29 18:36:20
4240
发布2023-03-29 18:36:20
举报
文章被收录于专栏:机器之心机器之心

机器之心报道

编辑:陈萍

PyTorch 团队发布了 PyTorch 1.9 版本。该版本整合了 1.8 版本发布以来的 3,400 多次 commit,398 名贡献者参与更新。提供了包括支持科学计算、前端 API、大规模分布式训练等主要改进和新特性。

近年来,深度学习框架 PyTorch 凭借着其对初学者的友好性和灵活性,发展迅猛。不久之前,PyTorch 官方博客发布 1.8 版本,此版本由 1.7 发布以来的 3000 多个 commit 组成,重要更新内容包括在编译、代码优化和科学计算前端 API 方面的优化和改进,以及通过 pytorch.org 提供的二进制文件来支持 AMD ROCm。

现在 PyTorch 官方宣布 PyTorch 1.9 发布了!

  • 完整文档地址:https://pytorch.org/blog/pytorch-1.9-released/
  • GitHub 地址:https://github.com/pytorch/pytorch/releases

自 PyTorch 1.8 版本发布以来,本次新版本的发布包含了 3,400 多个 commit,398 名贡献者参与更新。本次新版的更新,主要包含以下亮点:

  • 支持科学计算方面的重大改进,现已支持 torch.linalg、torch.special 以及 Complex Autograd;
  • 使用 Mobile Interpreter 对设备上的二进制大小进行重大改进;
  • 通过 TorchElastic 向 PyTorch Core 上游提供对弹性容错训练的本地支持;
  • PyTorch RPC 框架的更新,以支持 GPU 的大规模分布式训练;
  • 为模型推理部署优化性能和封装的新 API;
  • 支持 PyTorch Profiler 中的分布式训练、GPU 利用率和 SM efficiency。

(注:从 PyTorch 1.6 版本开始,PyTorch 特性分为 Stable(稳定版)、Beta(测试版)和 Prototype(原型版)。

此外,除了 PyTorch 1.9 的发布,该团队还发布了 PyTorch 库的主要更新。

PyTorch 库更新地址:https://pytorch.org/blog/pytorch-1.9-new-library-releases/

PyTorch 1.9 新特性

前端 API

torch.linalg:在 PyTorch 1.9 中, torch.linalg 模块正在向稳定版本靠近。线性代数对深度学习和科学计算至关重要,torch.linalg 模块扩展了 PyTorch 对线性代数的支持,实现了 NumPy 的线性代数模块(现在支持 accelerators 和 autograd)中的每一个函数等等。

为了帮助调试和编写程序,PyTorch 1.9 包含了 torch.use_determinstic_algorithms option。启用此设置后,如果可能,操作的行为将是确定性的;如果操作的行为不可确定,则抛出运行时错误。以下是几个例子:

PyTorch Mobile

PyTorch 团队正在发布 Mobile Interpreter,一个 PyTorch 运行时的简化版本,beta 版。Interpreter 将在边缘设备中执行 PyTorch 程序,减少二进制大小的占用。

TorchVision 库:从 PyTorch 1.9 开始,用户可以在 iOS/Android 应用程序上使用 TorchVision 库。Torchvision 库包含了 C++ 的 Torchvision 操作,需要与 iOS 的主 PyTorch 库链接在一起,对于 Android,可以将其作为一个 gradle 依赖添加。这允许使用 TorchVision 预先构建的 MaskRCNN 操作符进行对象检测和分割。

PyTorch 团队正在发布一个基于 PyTorch Video 库的新视频应用程序和一个基于最新 torchaudio、wave2vec 模型的更新语音识别应用程序。这两个版本都可以在 iOS 和 Android 上使用。此外,研究团队还更新了 7 个计算机视觉和 3 个自然语言处理演示应用程序,包括 HuggingFace DistilBERT 和 DeiT Vision transformer 模型,以及 PyTorch Mobile v1.9。随着这两个应用程序的加入,现在提供了一整套演示应用程序,包括图像、文本、音频和视频。

分布式训练

TorchElastic 现在是 PyTorch 核心的一部分。可以让 PyTorch 分布式训练具备弹性伸缩与自动容错的能力。

当分布式训练中某个 worker 发生异常错误 (如机器宕机)、高优先级任务抢占资源等情况时,支持 worker 重启或转移而不需要停止训练。可以先运行在最小资源集合下,当有更多空闲资源时,可以动态扩容 worker 数运行在更多的资源上以便提升训练效率;当部分资源因某些原因要释放时,也可以动态缩容 worker 数释放占用的部分资源。

弹性 (Elastic): 可以先运行在最小资源集合下,当有更多空闲资源时,可以动态扩容 worker 数运行在更多的资源上以便提升训练效率;当部分资源因某些原因要释放时,也可以动态缩容 worker 数释放占用的部分资源。

性能优化以及工具

Freezing API:模块冻结是将模块参数和属性值作为常量内联到 TorchScript 内部表示中的过程。这允许进一步优化和专门化程序,包括 TorchScript 优化,optimize_for_mobile API 、ONNX 和其他工具都使用它。

在模型部署时推荐 Freezing。这是训练、调优或调试 PyTorch 模型所必需的。它支持在非冻结图形上语义无效的图形融合,例如 fusing Conv-BN。

PyToch 1.9 对 torch.profiler API 的支持扩展到更多版本,包括 Windows 和 Mac,而不是以前的 torch.autograd.profiler API。新 API 支持现有的 profiler 功能,与 CUPTI 库(仅限 Linux)集成,跟踪设备 CUDA 内核,并支持长期运行作业,例如:

推理模式 API 可以显着提高推理工作负载的速度,同时保持安全并确保永远不会计算出不正确的梯度。

了解更多内容,请参考官方文档。

基于深度学习的蛋白质结构预测

6月17日,机器之心特别邀请到许锦波教授作客最新一期「蛋白质结构预测系列技术直播」,为大家带来他关于基于深度学习的蛋白质结构预测的经验和思考。

点击阅读原文,直达直播间。

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档