PyTorch 1.9發(fā)布&pytorch庫更新,這次的亮點(diǎn)在移動(dòng)端
PyTorch因自身易上手的特性,近些年被研究人員,深度學(xué)習(xí)愛好者,以及剛?cè)腴T人工智能的同學(xué)廣泛使用。如果你想快速上手pytorch會比TensorFlow更適合你。
本月15號pytorch團(tuán)隊(duì)發(fā)布了PyTorch 1.9,該版本由 1.8 以來的 3,400 多個(gè)commit組成,由 398 位貢獻(xiàn)者參與完成。

本次更新具體有以下幾個(gè)亮點(diǎn):
支持科學(xué)計(jì)算的重大改進(jìn),包括torch.linalg、torch.special和 Complex Autograd
使用 Mobile Interpreter 對設(shè)備上的二進(jìn)制大小進(jìn)行重大改進(jìn)
通過 TorchElastic 上游到 PyTorch Core 對彈性容錯(cuò)訓(xùn)練的原生支持
PyTorch RPC 框架的重大更新以支持具有 GPU 支持的大規(guī)模分布式訓(xùn)練
用于優(yōu)化模型推理部署的性能和打包的新 API
支持 PyTorch Profiler 中的分布式訓(xùn)練、GPU 利用率和 SM 效率
(PS:從 PyTorch 1.6 版本開始,PyTorch 版本中的功能特性分為穩(wěn)定版、測試版和原型版。)
簡單介紹PyTorch 1.9
前端 API
torch.linalg
在PyTorch 1.9中,torch.linalg模塊正在轉(zhuǎn)向穩(wěn)定版本。
線性代數(shù)對于深度學(xué)習(xí)和科學(xué)計(jì)算非常重要,torch.linalg模塊擴(kuò)展了 PyTorch 對線性代數(shù)的支持,實(shí)現(xiàn)了NumPy的線性代數(shù)模塊(現(xiàn)在支持加速器和 autograd)中的每個(gè)函數(shù)等等。
比如:torch.linalg.matrix_norm和torch.linalg.householder_product。這使得使用過NumPy的用戶能夠快速熟悉該模塊。
Complex Autograd
Complex Autograd 功能在 PyTorch 1.8 中作為測試版發(fā)布,現(xiàn)已穩(wěn)定。
自beta版發(fā)布以來,PyTorch 1.9中為超過98%的運(yùn)算符擴(kuò)展了對 Complex Autograd 的支持,通過添加更多 OpInfos 改進(jìn)了對復(fù)雜運(yùn)算符的測試,并通過 TorchAudio 遷移到本機(jī)復(fù)雜張量增加了更好的驗(yàn)證。
此功能為用戶提供了計(jì)算復(fù)雜梯度和使用復(fù)雜變量優(yōu)化實(shí)值損失函數(shù)的功能。這是 PyTorch 中復(fù)數(shù)的多個(gè)當(dāng)前和下游潛在用戶(如 TorchAudio、ESPNet、Asteroid 和 FastMRI)所必需的功能。
PyTorch 1.9 有torch.use_determinstic_algorithms這個(gè)選項(xiàng),這個(gè)選項(xiàng)是用來幫助調(diào)試和編寫程序的。啟用此設(shè)置后,如果可能,操作將具有確定性的行為,或者如果它們的行為具有不確定性,則會引發(fā)運(yùn)行時(shí)錯(cuò)誤。
來看幾個(gè)例子:
PyTorch 移動(dòng)版
Mobile Interpreter
pytorch團(tuán)隊(duì)正在研發(fā)beta版的Mobile Interpreter,用來作為PyTorch 運(yùn)行時(shí)的簡化版本,Interpreter將在邊緣設(shè)備中執(zhí)行 PyTorch 程序,減少二進(jìn)制文件大小的占用空間。
TorchVision 庫
從1.9開始,用戶可以在他們的iOS/Android應(yīng)用程序上使用TorchVision庫。Torchvision 庫包含C++ TorchVision操作,需要與iOS的主PyTorch庫鏈接在一起,對于Android,它可以作為一個(gè)gradle依賴項(xiàng)添加。這允許使用TorchVision預(yù)構(gòu)建的MaskRCNN操作符進(jìn)行對象檢測和分割。
Demo apps (演示應(yīng)用)
PyTorch團(tuán)隊(duì)將發(fā)布基于PyTorch視頻庫的新視頻應(yīng)用程序和基于最新的 torchaudio、wave2vec模型的更新語音識別應(yīng)用程序,兩者均可在iOS和Android上使用。
此外,PyTorch Mobile v1.9更新了7個(gè)計(jì)算機(jī)視覺和3個(gè)自然語言處理演示應(yīng)用程序,包括 HuggingFace DistilBERT和DeiT視覺轉(zhuǎn)換器模型。通過添加這兩個(gè)應(yīng)用程序,PyTorch團(tuán)隊(duì)給用戶提供一整套涵蓋了圖像、文本、音頻和視頻的演示應(yīng)用程序。

Distributed Training(分布式訓(xùn)練)
TorchElastic一年多前在pytorch/elastic github 存儲庫中開源,是 PyTorch 工作進(jìn)程的運(yùn)行器和協(xié)調(diào)器,現(xiàn)在它是 PyTorch 核心的一部分。TorchElastic可以讓 PyTorch 分布式訓(xùn)練具備彈性伸縮與自動(dòng)容錯(cuò)的能力。
一個(gè)顯著的彈性推論是,對等點(diǎn)發(fā)現(xiàn)和等級分配內(nèi)置于 TorchElastic 中,使用戶能夠在可搶占式實(shí)例上運(yùn)行分布式訓(xùn)練,而不需要組調(diào)度器。
Performance Optimization and Tooling (性能優(yōu)化和工具)
Freezing API(凍結(jié)API)
Module Freezing是將模塊參數(shù)和屬性值作為常量內(nèi)聯(lián)到 TorchScript 內(nèi)部表示中的過程。這允許進(jìn)一步優(yōu)化和專業(yè)化程序,包括 TorchScript 優(yōu)化和降低到其他后端。它被optimize_for_mobile API、ONNX 等使用。
建議凍結(jié)模型部署,它有助于 TorchScript JIT 優(yōu)化,優(yōu)化訓(xùn)練、調(diào)整或調(diào)試 PyTorch 模型所需的開銷和簿記。它支持在非凍結(jié)圖上語義無效的圖融合 - 例如融合 Conv-BN。
PyTorch 分析器
新的 PyTorch Profiler 已升級到測試版,并利用Kineto進(jìn)行GPU分析,利用TensorBoard 進(jìn)行可視化,現(xiàn)在已成為PyTorch使用教程和文檔中的標(biāo)準(zhǔn)。
PyTorch 1.9 將對新的torch.profiler API的支持?jǐn)U展到更多版本,包括Windows和Mac,并且建議替代以前的torch.autograd.profiler API使用。新的API支持現(xiàn)有的分析器功能,與 CUPTI 庫(僅限 Linux)集成以跟蹤設(shè)備上的 CUDA 內(nèi)核并為長時(shí)間運(yùn)行的作業(yè)提供支持,例如:
PyTorch Profiler Tensorboard 插件具有以下新功能:
帶有 NCCL 通信概覽的分布式培訓(xùn)摘要視圖
跟蹤視圖和 GPU 操作員視圖中的 GPU 利用率和 SM 效率
內(nèi)存分析視圖
從 Microsoft VSCode 啟動(dòng)時(shí)跳轉(zhuǎn)到源代碼
能夠從云對象存儲系統(tǒng)中進(jìn)行負(fù)載跟蹤
本次pytorch團(tuán)隊(duì)還發(fā)布了pytorch庫的更新
這次更新包括域庫的新版本,還有TorchVision、TorchText和TorchAudio。

來看一下本次pytorch庫更新的一些亮點(diǎn):
TorchVision添加了新的SSD和SSDLite模型、用于對象檢測的量化內(nèi)核、GPU Jpeg解碼和iOS 支持。
TorchAudio添加了可在非Python 環(huán)境(包括C++、Android和iOS)中部署的wAV2vec 2.0模型。lfilter、頻譜操作、重采樣方面的許多性能改進(jìn)。添加了采樣質(zhì)量控制選項(xiàng)(即Kaiser窗口支持)。啟動(dòng)了復(fù)雜張量操作的遷移。改進(jìn)的autograd 支持。
TorchText添加了一個(gè)新的高性能Vocab模塊,為NLP工作流提供通用的功能API。
詳細(xì)內(nèi)容可以查閱官方文檔了解!
PyTorch 1.9更新文檔地址:https://pytorch.org/blog/pytorch-1.9-released/
PyTorch 庫更新地址:https://pytorch.org/blog/pytorch-1.9-new-library-releases/
關(guān)注【學(xué)姐帶你玩AI】公眾號,獲取人工智能相關(guān)專業(yè)知識!
