1. 程式人生 > >最受歡迎機器學習框架王座之爭:PyTorch存在感已直逼Tensorflow

最受歡迎機器學習框架王座之爭:PyTorch存在感已直逼Tensorflow

儘管谷歌推出的 Tensorflow 自推出以來一路登上 AI 界最受歡迎的框架工具,但是,其他框架的崛起勢頭也不容小覷,比如說 PyTorch。

Tensorflow 和 PyTorch 都是開源框架。Tensorflow 基於 Theano 框架,由谷歌推出。PyTorch 則基於 Torch 框架,由 Facebook 推出。近日,根據一名 Reddit 網友的統計,在今年的 AI 頂會 ICLR 上,TensorFlow 相關的論文數量從 2018 年的 228 升到了 266,而 PyTorch 相關的論文數量則對應從 87 激增到了 252。從 ICLR 這一資料來看,PyTorch 可謂頗有“後來者居上”之勢。

本人對於Python學習建立了一個小小的學習圈子,為各位提供了一個平臺,大家一起來討論學習Python。歡迎各位到來Python學習群:960410445一起討論視訊分享學習。Python是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並不斷的成長,掌握Python核心技術,才是掌握真正的價值所在。

圖丨(來源:Reddit)

不過,現在要下這個結論仍為時過早。今年早些時候,也有資料顯示兩者之間仍有一定距離。2018 年 5 月,著名資料科學網站 KDnuggets 釋出 2018 年資料科學和機器學習工具調查結果。在深度學習框架上,呼聲很高的 PyTorch 僅僅佔據了 6.4% 的使用率,遠遠落後於 TensorFlow 的 29.9% 和 Keras 的 22.2%。

圖丨使用率增幅最大的主要分析/資料科學/機器學習工具

那麼,Tensorflow 和 PyTorch 具體究竟在哪?

根據 AI 學者 Yashwardhan Jain 的一篇文章,計算圖的定義方式是這兩個深度學習框架之間最大的區別。Tensorflow 建立的是靜態圖,而 Pytorch 建立的是動態圖。具體來說,Tensorflow 在定義模型的整個計算圖之後,才開始執行機器學習模型,而 PyTorch 的計算圖是在執行時建立的,可以隨時定義、隨時更改、隨時執行節點。在 RNN 神經網路中,需要使用可變長度的輸入,這時 PyTorch 的動態計算圖就會很有幫助。

另外,Tensorflow 的學習曲線要比 PyTorch 陡峭的多。PyTorch 更貼近 Python 語言,建立機器學習模型時也更直接、符合人的思維。但如果使用 Tensorflow 的話,你需要先理解 Tensorflow 的一些工作機制(比如會話(session)、佔位符(placeholder)等等),這樣的話就要比 PyTorch 更難學習一些。

而在社群的規模上,Tensorflow 擁有比 PyTorch 大得多的社群,這意味著尋找學習 Tensorflow 的資源、解決相關問題的答案更容易一些。而且很多學習資料、MOOC 的課程主要覆蓋的是 Tensorflow 而非 PyTorch。這主要是因為 PyTorch 相對 Tensorflow 來說是一個比較新的框架,顯然 Tensorflow 的資源也要更多一些。

最後,我們不得不提到 TensorBoard 工具,TensorBoard 是 Tensorflow 中的一個在瀏覽器內直接視覺化機器學習模型的工具。PyTorch 中沒有這樣的工具,不過可以使用python 中的 Matplotlib 庫來視覺化模型。儘管現在有一些方法可以使 TensorBoard 在 PyTorch 中使用,但是官方目前仍未支援。

(來源:各框架Logo)

Tensorflow 擁有很好的可擴充套件性,對復現模型來說更為優秀,本身就是被設計為易擴充套件的。而相對於 Tensorflow 來說,PyTorch 更容易學習上手,搭建模型更為簡潔,對一些臨時搭建模型任務或建立快速原型的任務來說,PyTorch 更為適合。

事實上,這兩個框架都實力強大,也是目前最為流行的深度學習框架,使用的人數都很多,而且背後也都有一個龐大的社群支援。對學習機器學習/深度學習來說,兩者中的任何一個框架都可以出色地完成任務。