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