大家知道,深度學(xué)習(xí)的發(fā)展和推進,在某種程度上也是一場框架的爭奪戰(zhàn),其中 Google 發(fā)布的 TensorFlow 和 Facebook 主力支持的 PyTorch 是最耀眼的兩顆明星。我們今天就來看看其中一位明星 PyTorch,看看它為何值得學(xué)。
PyTorch 強調(diào)從研究到生產(chǎn)。來源:https://pytorch.org/
根據(jù)官網(wǎng)介紹,PyTorch 是一個開源的深度學(xué)習(xí)平臺,提供從研究原型到生產(chǎn)部署的無縫路徑(An open source deep learning platform that provides a seamless path from research prototyping to production deployment)。
PyTorch 的流行度僅次于 TensorFlow。而最近一年,在 GitHub 關(guān)注度和貢獻者的增長方面,PyTorch 跟 TensorFlow 基本持平。甚至,PyTorch 的搜索熱度持續(xù)上漲,加上 FastAI 的加持,PyTorch 無疑會得到越來越多的機器學(xué)習(xí)從業(yè)者的青睞。
流行度雖然可以說明問題,但是,你一定要知道更多,才能明白 PyTorch 為什么值得學(xué),你在什么情況下需要學(xué)習(xí) PyTorch 。
PyTorch 關(guān)鍵發(fā)展節(jié)點
2017 年 1 月,F(xiàn)acebook AI 研究團隊發(fā)布 PyTorch,一個基于 Torch 的 Python 工具包,專門用于 GPU 加速的深度學(xué)習(xí)編程。
2017 年 8 月,PyTorch V 0.2.0 發(fā)布,引入廣播、高級索引、高階梯度、新圖層,以及分布式訓(xùn)練等,前兩者進一步方便了 Tensor 與 Numpy 互轉(zhuǎn)。
2018 年 4 月,Caffe2 代碼合并到 PyTorch。Facebook 打算將 PyTorch 的研究特性與 Caffe2 的生產(chǎn)特性更好地結(jié)合起來。
2018 年 4 月,PyTorch V 0.4.0 發(fā)布,新特性包括 Tensor 和 Variable 合并,強化 Numpy 風(fēng)格的 Tensor 構(gòu)建等,并正式支持 Windows 系統(tǒng)。
2018 年 10 月,PyTorch V 1.0.0 發(fā)布,融合 PyTorch 自身靈活性、研究優(yōu)勢與 Caffe2 的后端與應(yīng)用能力、ONNX 的框架轉(zhuǎn)換能力于一體;同時 FastAI V1.0 發(fā)布,可用單一 API 玩轉(zhuǎn)常見深度學(xué)習(xí)應(yīng)用,大大降低了深度學(xué)習(xí)的學(xué)習(xí)門檻。
2019 年 5 月,PyTorch V 1.1 發(fā)布,提供了新的 API,原生支持 TensorBoard 和自定義循環(huán)神經(jīng)網(wǎng)絡(luò),并提升了性能。
PyTorch 剛走過了 2 年 4 個月的時間,發(fā)展相當(dāng)迅速。
PyTorch 當(dāng)前穩(wěn)定版及相關(guān)配置。來源:https://pytorch.org/
受歡迎程度
Jeff Hale 4 月份在 Medium 上發(fā)表了一篇文章,比較了 TensorFlow、PyTorch、keras 和 FastAI 的流行度,全面涵蓋職位需求、使用、學(xué)術(shù)研究和興趣等維度。
Jeff 根據(jù)多個招聘網(wǎng)站在線職位搜索、Google Trends、GitHub 活躍度、Arxiv 文章數(shù)、Medium 文章數(shù)、Quora 相關(guān)問題關(guān)注人數(shù)統(tǒng)計計算出了一個綜合的增長分?jǐn)?shù)。我們這里引用一下最終結(jié)果圖片:
深度學(xué)習(xí)框架半年增長分?jǐn)?shù)。(2018 年 10 月-2019 年 3 月)
可以看到 TensorFlow 穩(wěn)居第一,而 PyTorch 表現(xiàn)也非常搶眼,未來的需求和發(fā)展非常值得期待。
PyTorch 核心優(yōu)勢:動態(tài)計算圖
PyTorch 是一款強大的動態(tài)計算圖模式的深度學(xué)習(xí)框架。大部分框架是靜態(tài)計算圖模式,其應(yīng)用模型在運行之前就已經(jīng)確定了,而 PyTorch 支持在運行過程中根據(jù)運行參數(shù)動態(tài)改變應(yīng)用模型。
可以簡單理解為:一種是先定義后使用,另一種是邊使用邊定義。動態(tài)計算圖模式是 PyTorch 的天然優(yōu)勢之一,Google 今年 3 月份發(fā)布的 TensorFlow 2.0 Alpha 版本中的 Eager Execution,被認(rèn)為是在動態(tài)計算圖模式上追趕 PyTorch 的舉措。
靜態(tài)計算圖模式框架在執(zhí)行計算圖之前需要先聲明和編譯。 雖然在實際生產(chǎn)中這種實現(xiàn)比較高效,但在研究和開發(fā)中非常繁瑣。
以 PyTorch 為代表的動態(tài)計算圖框架則無需在每次執(zhí)行之前編譯模型。在建模 NLP 任務(wù)時,每個輸入都可能導(dǎo)致不同的圖結(jié)構(gòu),因此動態(tài)圖就絕對占優(yōu)了——這也是 PyTorch 在處理很多問題上(尤其是 RNN 相關(guān)問題)更高效的原因。
此外,動態(tài)圖機制在調(diào)試方面非常方便,基本上,如果計算圖運行出錯,就可以在堆棧跟蹤定義圖的代碼行。有人形容調(diào)試 PyTorch 就跟調(diào)試 Python 一樣,通過斷點檢查就可以高效解決問題。
PyTorch 更多優(yōu)勢
無縫接入 Python 生態(tài)圈,張量、變量與 Numpy 互轉(zhuǎn)
在張量之上封裝變量,方便構(gòu)建神經(jīng)網(wǎng)絡(luò)
強大的后端功能
命令式編程風(fēng)格
擴展性極好
廣泛應(yīng)用于 NLP 之外的多種深度學(xué)習(xí)應(yīng)用
富有活力的社區(qū)和背后大廠 Facebook 支持
-
谷歌
+關(guān)注
關(guān)注
27文章
6227瀏覽量
107710 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5557瀏覽量
122568 -
pytorch
+關(guān)注
關(guān)注
2文章
809瀏覽量
13798
原文標(biāo)題:深度學(xué)習(xí)框架PyTorch為何值得學(xué)
文章出處:【微信號:BigDataDigest,微信公眾號:大數(shù)據(jù)文摘】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Arm KleidiAI助力提升PyTorch上LLM推理性能

評論