深度學習框架PyTorch為何值得學

深度學習框架PyTorch為何值得學

深度學習框架PyTorch為何值得學

大家知道,深度學習的發展和推進,在某種程度上也是一場框架的爭奪戰,其中 Google 釋出的TensorFlow和 Facebook 主力支援的 PyTorch 是最耀眼的兩顆明星。我們今天就來看看其中一位明星 PyTorch,看看它為何值得學。

簡單介紹

深度學習框架PyTorch為何值得學

PyTorch 強調從研究到生產

根據官網介紹,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為何值得學

PyTorch 當前穩定版及相關配置

受歡迎程度

Jeff Hale 4 月份在 Medium 上發表了一篇文章,比較了TensorFlow、PyTorch、keras 和 FastAI 的流行度,全面涵蓋職位需求、使用、學術研究和興趣等維度。

Jeff 根據多個招聘網站線上職位搜尋、Google Trends、GitHub 活躍度、Arxiv 文章數、Medium 文章數、Quora 相關問題關注人數統計計算出了一個綜合的增長分數。我們這裡引用一下最終結果圖片:

深度學習框架PyTorch為何值得學

深度學習框架半年增長分數

(2018 年 10 月-2019 年 3 月)

可以看到TensorFlow

穩居第一,而 PyTorch 表現也非常搶眼,未來的需求和發展非常值得期待。

PyTorch 核心優勢:動態計算圖

PyTorch 是一款強大的動態計算圖模式的深度學習框架。大部分框架是靜態計算圖模式,其應用模型在執行之前就已經確定了,而 PyTorch 支援在執行過程中根據執行引數動態改變應用模型。

可以簡單理解為:一種是先定義後使用,另一種是邊使用邊定義。動態計算圖模式是 PyTorch 的天然優勢之一,Google 今年 3 月份釋出的TensorFlow2。0 Alpha 版本中的 Eager Execution,被認為是在動態計算圖模式上追趕 PyTorch 的舉措。

靜態計算圖模式框架在執行計算圖之前需要先宣告和編譯。 雖然在實際生產中這種實現比較高效,但在研究和開發中非常繁瑣。

以 PyTorch 為代表的動態計算圖框架則無需在每次執行之前編譯模型。在建模 NLP 任務時,每個輸入都可能導致不同的圖結構,因此動態圖就絕對佔優了——這也是 PyTorch 在處理很多問題上(尤其是 RNN 相關問題)更高效的原因。

此外,動態圖機制在除錯方面非常方便,基本上,如果計算圖執行出錯,就可以在堆疊跟蹤定義圖的程式碼行。有人形容除錯 PyTorch 就跟除錯 Python 一樣,透過斷點檢查就可以高效解決問題。

PyTorch 更多優勢

無縫接入 Python 生態圈,張量、變數與 Numpy 互轉

在張量之上封裝變數,方便構建神經網路

強大的後端功能

指令式程式設計風格

擴充套件性極好

廣泛應用於 NLP 之外的多種深度學習應用

富有活力的社群和背後大廠 Facebook 支援

……

深入瞭解與使用 PyTorch

如果你想深入細緻瞭解使用 PyTorch 快速高效地構建深度學習模型,那麼——

資深資料科學家

Rich Ott

在O’Reilly主辦的

AI Conference 2019 北京站

上主講的

「PyTorch深度學習」

課程值得學習,學習時間為期兩天,具體為 6 月 18 日 ~ 6 月 19 日。

有志於將來投身人工智慧領域的 Python 開發者、Python資料分析師,以及想進一步深入理解 PyTorch 的機器學習工程師、演算法工程師,不要錯過這次與國外資深專業人士一起學習的機會。

深度學習框架PyTorch為何值得學

導師:Richard Ott

The Data Incubator資料科學家,熱愛資料科學,並致力於資料知識的傳播與教學。曾在 Verizon 擔任資料科學家和軟體工程師。麻省理工學院粒子物理學博士,加州大學戴維斯分校博士後。

學習內容

學習 PyTorch張量和自動求導包

多種 PyTorch深度學習模型架構

使用真實資料集構建和訓練深度神經網路

前置知識

基本的 Python 知識

簡單的矩陣和線性代數知識

建模和機器學習基礎

神經網路基礎

課程大綱

6 月 18 日

PyTorch張量

自動求導包

神經網路

多層感知機

6 月 19 日

神經網路架構

卷積神經網路

自動編碼器

參考資料

Natural Language Processing with PyTorch: Build Intelligent Language Applications Using Deep Learning

https://towardsdatascience。com/which-deep-learning-framework-is-growing-fastest-3f77f14aa318

https://www。ibm。com/developerworks/cn/cognitive/library/cc-get-started-pytorch/index。html

https://venturebeat。com/2019/05/01/facebook-launches-pytorch-1-1-with-tensorboard-support/

“我自己是一名從事了多年開發的Python老程式設計師,辭職目前在做自己的Python私人定製課程,今年年初我花了一個月整理了一份最適合2019年學習的Python學習乾貨,從最基礎的到各種框架都有整理,送給每一位喜歡Python小夥伴,想要獲取的可以轉發文章並關注我的頭條。在後臺私信我:01,即可免費獲取。“

深度學習框架PyTorch為何值得學