PyTorch 1.0 穩定版終于正式發布了!新版本增加了JIT編譯器、全新的分布式包、C++ 前端,以及 Torch Hub等新功能,支持AWS、谷歌云、微軟Azure等云平臺,一句話,強大!
昨天,在 NeurIPS 大會上,Facebook 正式發布PyTorch 1.0 穩定版!
這距離 PyTorch 1.0 預覽版發布僅僅過去了兩個月。PyTorch 1.0 預覽版首次發布是在 10 月份的 PyTorch 開發者大會,新增了面向生產的特征和主要云平臺的支持等功能,被認為 90% 的功能能經受住業界的考驗。
題外話,NeurIPS 大會上,同一天 TensorFlow 團隊和 PyTorch 團隊先后有一個演講,介紹他們的框架。網友表示,這就像現實版的 “Mac 和 PC 之爭”(PyTorch 是 Mac)。TensorFlow 2.0 將在 2019 年正式發布。
回到 PyTorch1.0,研究人員和工程師現在可以輕松地充分利用這個開源深度學習框架的新特性,包括一個用于 eager 和 graph execution 模型無縫轉換的 hybrid 前端,改進的分布式訓練,用于高性能研究的純 C++ 前端,以及與云平臺的深度集成。
PyTorch團隊主要成員,包括賈揚清
此外,PyTorch 1.0 加速了 AI 從研究原型開發到生產部署的工作流程,并使其更容易入門。在過去幾個月,初學者通過各種教育項目快速開始使用 PyTorch,專家們構建各種創新項目,將框架擴展到從自然語言處理到概率編程的各個領域。
PyTorch 1.0 穩定版增加了一系列新功能,包括 JIT Compiler,全新的分布式包、C++ 前端,以及 Torch Hub。以及大量更新、新增特征、bug修復等:
地址:
https://github.com/pytorch/pytorch/releases/tag/v1.0.0
JIT編譯器、C++ 前端等四大新功能
JIT
JIT 是一組編譯器工具,用于縮小 PyTorch 在研究和生產上的鴻溝。它允許創建可以在不依賴 Python 解釋器的情況下運行的模型,并且可以更積極地優化這些模型。
使用程序注釋可以將現有模型轉換為 Torch 腳本,這是 PyTorch 可以直接運行的 Python 子集。模型代碼仍然是有效的 Python 代碼,并且可以使用標準 Python 工具鏈進行調試。
PyTorch 1.0 提供了兩種方法使現有代碼與 JIT 兼容的方法,torch.jit.trace 或 torch.jit.script。一旦加上注釋,Torch Script 代碼就可以被積極地優化,并且可以序列化,以便在新的 c++ API 中使用。這個 API 完全不依賴 Python。
全新的分布式包
torch.distributed 軟件包和 torch.nn.parallel.DistributedDataParallel 模塊由全新的、重新設計的分布式庫提供支持。新的庫的主要亮點有:
新的 torch.distributed 是性能驅動的,并且對所有后端 (Gloo,NCCL 和 MPI) 完全異步操作。
顯著的分布式數據并行性能改進,尤其適用于網絡較慢的主機,如基于以太網的主機。
為 torch.distributedpackage 中的所有分布式集合操作添加異步支持。
在 Gloo 后端添加以下 CPU 操作:send,recv,reduce,all_gather,gather,scatter
在 NCCL 后端添加 barrier 操作
為 NCCL 后端添加 new_group 支持
C++ 前端
C ++ 前端是 PyTorch 后端的純 C ++ 接口,它遵循已建立的 Python 前端的 API 和體系結構。它旨在實現高性能、低延遲和裸機 C ++ 應用程序的研究。它提供了 torch.nn,torch.optim,torch.data 和 Python 前端的其他組件的對應版本。以下是兩種語言前端的比較:
作為 PyTorch 1.0 的一部分,我們發布的是標記有 “API Unstable” 的 C ++ 前端。這意味著它已準備好用于你的研究應用程序,但仍有一些不穩定,我們將在接下來的幾個版本中穩定下來。在此期間,API 的某些部分可能會發生大的更改。
Torch Hub
Torch Hub 是一個預訓練的模型庫,旨在促進研究的可重復性。
Torch Hub 支持使用簡單的 hubconf.py 文件將預訓練的模型(模型定義和預訓練的權重)發布到 github 存儲庫; 以 pytorch/vision 中的 resnet 模型為例,請參閱 hubconf for resnet models in pytorch/vision。
發布后,用戶可以使用 torch.hub.load API 加載預先訓練的模型。更多詳細信息,請閱讀 torch.hub 文檔。
不斷增長的 PyTorch 社區
PyTorch 在 2017 年初首次推出,很快成為 AI 研究人員的熱門選擇。他們發現,由于其靈活、動態的編程環境和用戶友好的界面,PyTorch 是快速實驗的理想選擇。從那時起,這個社區迅速發展起來。
PyTorch 現在是GitHub 上增長速度第二快的開源項目,在過去的 12 個月里,貢獻者增加了 2.8 倍。
此外,Facebook 提供了一系列教育項目,幫助開發人員更輕松地學習如何使用 PyTorch 構建、訓練和部署機器學習模型。
上個月,Udacity 和 Facebook 聯合推出一門新課程——PyTorch 深度學習入門 (Introduction to Deep Learning with PyTorch),以及 PyTorch Challenge Program,該項目旨在為繼續接受 AI 教育提供獎學金。僅僅幾個星期,已經有全球各地成千上萬的學生在網上積極學習。
所有人都可以通過 Udacity 網站免費獲得完整的課程,更高級的 PyTorch 課程則將很快通過 Udacity 的 AI 納米學位提供。
除了在線教育課程,fast.ai 等組織還提供了一些軟件庫來支持開發人員學習如何使用 PyTorch 構建神經網絡。fastai 是一個簡化訓練神經網絡的庫,自從兩個月前發布以來,已經在 GitHub 上獲得了 10000 顆星星。
我們非常高興看到開發人員使用這個庫取得的成功。例如,Santhosh Shetty 使用 fastai 將災后損傷等級分類的準確率提高了一倍;Alena Harley 將腫瘤正常測序的假陽性率降低了 7 倍;Jason Antic 創建了一個名為 DeOldify 的項目,使用深度學習對舊圖像進行著色和恢復。
圖片由 Jason Antic 提供
PyTorch 已經被應用于從圖像識別到機器翻譯的各種用例。因此,我們看到來自開發者社區的各種各樣的項目,這些項目擴展并支持了 PyTorch 開發。其中一些項目包括:
Horovod——一個分布式訓練框架,它使開發人員可以輕松地使用單個 GPU 程序,并在多個 GPU 上快速進行訓練。
PyTorch Geometry——PyTorch 的幾何計算機視覺庫,提供一組例程和可微分模塊。
TensorBoardX—一個將 PyTorch 模型記錄到 TensorBoard 的模塊,允許開發人員使用可視化工具進行模型訓練。
此外,Facebook 的團隊也在為 PyTorch 構建和開源項目,比如 Translate,這是一個基于 Facebook 機器翻譯系統的用于訓練 sequence-to-sequence 模型的庫。
支持各種云
為了使 PyTorch 更易于訪問和用戶友好,我們繼續深化與云平臺和服務的合作,例如Amazon Web services、Google Cloud Platform和Microsoft Azure。
就在最近,AWS 推出了支持 PyTorch 的 Amazon SageMaker Neo,允許開發人員在 PyTorch 中構建機器學習模型,一次訓練后即可部署到云或邊緣的任何地方,并且性能提高了兩倍。
開發人員現在還可以通過創建一個新的深度學習 VM 實例,在谷歌云平臺上試用 PyTorch 1.0。
此外,微軟的 Azure 機器學習服務現在已經普遍可用,它允許數據科學家在 Azure 上無縫地訓練、管理和部署 PyTorch 模型。使用該服務的 Python SDK, PyTorch 開發人員可以利用按需分布式計算功能,用 PyTorch 1.0 大規模訓練模型,以加速生產過程。
-
深度學習
+關注
關注
73文章
5554瀏覽量
122491 -
自然語言處理
+關注
關注
1文章
628瀏覽量
14021 -
pytorch
+關注
關注
2文章
809瀏覽量
13771
原文標題:PyTorch 1.0 穩定版正式發布!
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
PyTorch 2.5.1: Bugs修復版發布

FreeCad 1.0 版本正式發布

評論