爭論不休的TF 2.0與PyTorch,到底現在戰局如何了?

作者 | Jeff Hale

譯者 | Jackey

編輯 | Jane

出品 | AI科技大本營(id:rgznai100)

【導語】 TensorFlow 2.0 和 PyTorch 1.0 陸續發佈後,關於它們二者到底誰更勝一籌的討論一直未停,也一直沒有一個結果。到底目前誰更受青睞,本文中,作者圍繞 TensorFlow 2.0 和 PyTorch 1.0,蒐集多方來源的數據爲大家進行深入分析,除此之外,還談到一些學習建議,未來深度學習框架還有哪些方向值得大家關注等話題。

TF 2.0 vs PyTorch 焦灼之戰

2018 年 9 月,作者曾寫過一篇文章,從需求量、使用量、熱門度等角度對比分析了主流深度學習框架。TensorFlow 毫無爭議地成爲重量級深度學習框架的冠軍,PyTorch 即是賽場新秀,也是後起之秀。那麼,在過去的六個月的時間裏,深度學習框架的賽場又有什麼新進展?

爲此,我查詢了 Indeed、Monster、LinkedIn 和 SimplyHired 幾家招聘網站的職位信息,還考量了谷歌搜索的結果、GitHub的表現、Medium 和ArXiv 的新增文章數,Quora 上關於深度學習框架主題的關注者數量,這些信息勾勒出了深度學習框架在需求、使用和熱度增長方面的大體概況。

集成與更新

最近,TensorFlow 和 PyTorch 框架都有一些重要的進展。PyTorch 1.0 版於 2018 年 10 月預發佈,同時 fastai v1.0 版也已發佈,都標誌着這些框架在走向成熟。TensorFlow 2.0 Alpha 版於 2019 年 3 月 4 日發佈,增加了新功能還改進了用戶體驗,更緊密地與 Keras 結合,集成爲高級API,同時也會有更多功能。

對比分析方法

這次,我將 Keras 和 fastai 也納入評估分析範圍,因爲它們與 TensorFlow 和 PyTorch 有着緊密的關係,而它們的發展與受歡迎數據也可以作爲評估 TensorFlow 和 PyTorch 的一個衡量尺度。

但是這次不會再探討其他深度學習框架,如 Caffe、 Theano、 MXNET、 CNTK、 DeepLearning4J 還有 Chainer 等,這些框架有其各自的優點,但它們與 TensorFlow 或 PyTorch 的發展方向是不同的,而且也沒有與其他框架緊密結合。

蒐集查詢這些數據的時間是 2019 年 3 月 20日至 21 日,並且把數據可視化展現出來,想要源數據和參考交互圖表的小夥伴們可以訪問下面兩個地址:

https://docs.google.com/spreadsheets/d/1Q9rQkfi8ubKM8aX33In0Ki6ldUCfJhGqiH9ir6boexw/edit?usp=sharing

https://www.kaggle.com/discdiver/2019-deep-learning-framework-growth-scores

接下來,我們就一起來看看更具體的對比分析結果。

一、招聘網站:職位需求變化

爲了解現在的招聘需求中看重哪些深度學習框架,我在 Indeed、LinkedIn、Monster 和SimplyHired 上搜索了相關職位。

用“機器學習”+“庫名”這兩個關鍵詞進行搜索。比如我要搜索哪些崗位需要 TensorFlow,就輸入“ machine learning TensorFlow”,這樣做也是個人習慣使然。不加上機器學習這個關鍵詞進行搜索也可以,並不會產生明顯不同的結果。(搜索區域爲美國)。

排除 2019 年 3 月前的職位信息,以限定數據時間範圍爲這半年內,整理後發現:


對掌握 TensorFlow 的職位比 PyTorch 略高。Keras的職位需求大約是 TensorFlow 的一半。目前沒有什麼招聘需求中對 fastai 有明確的要求。值得注意的是,除了 LinkedIn,其他求職網站上需要掌握 PyTorch 的職位要比 TensorFlow 多。

二、Google Trends:分析谷歌搜索數據

谷歌作爲最大的搜索引擎,其網頁搜索結果可以作爲衡量深度學習框架受歡迎程度的標準之一。分析 Google Trends 看了過去一年來各個框架的檢索歷史,搜索全球範圍內,用戶對於機器學習和人工智能類別的搜索熱度。谷歌不提供絕對的搜索數字,但提供了大概數字,可以進行參考。

通過計算過去六個月,用戶對各個框架搜索熱度的平均分數,並將其與在此之前的六個月的平均分數進行對比,TensorFlow 的搜索量相對下降,PyTorch 的搜索量則有所提升。下圖反映了過去一年中,用戶使用谷歌搜索各個框架的熱度。

  (藍色:TensorFlow;黃色:Keras;紅色:PyTorch;綠色:fastai)

三、博客網站:新文章發表情況

Medium 是數據科學文章和教程的重要發佈渠道之一,很多人會在上面分享自己的博文。

同樣在過去六個月中,Medium 上關於TensorFlow 和 Keras 發表的文章數量十分接近,而 PyTorch 則相對較少。 作爲高級 API,Keras 和 fastai 也受到了很多深度學習開發者的歡迎,在 Medium 上也有很多教學文章。

四、arXiv:新論文中的使用情況

arXiv 想必大家都非常熟悉了,大多數人都會把自己的研究論文掛在上面。查找半年來 arXiv 上更新的論文中使用 TensorFlow 和 PyTorch 的數量發現,研究中使用 TensorFlow 的數量還是明顯多於 PyTorch 的。

五、GitHub:四個數據

GitHub 的數據也可以作爲評價框架受歡迎程度的一個指標,下面的四個圖是分別對 Github 上不同深度學習框架 Stars、Forks、Watches 和 Contributors 的統計結果。無論是哪個數據,TensorFlow 都是 Top 1,不過 PyTorch 的 Watchers 數和 Contributors 數與 TensorFlow 非常接近,並沒有很大的差距,與此同時 FastAI 的 Contributors 數量值得關注,其遠高於 Keras,接近PyTorch。Keras 和 TensorFlow 本都是 Google 主導開發的,一些 Keras 的貢獻者也在 TensorFlow 中參與開發,因此,Keras 的數據也會受此影響。

六、Quora:關注數量

在這次的對比分析中,新增加了一個新參考指標:Quora 上各框架的關注人數。這個指標以前沒有參考過。過去六個月,TensorFlow 的關注者最多,PyTorch 和 Keras的關注者還遠不及TensorFlow。

蒐集完這些數據後,我把所有的信息整合到一個統一的評測量度中,下面就爲大家介紹增長分數的計算。

增長分數計算

以下是計算增長分數的步驟:

1、將所有的信息轉化成從 0到1 區間的數值。

2、聚合在線職位信息和 GitHub 活動的各個分項。

3、根據下圖,對各類別進行加權計算。

4、將加權得分換算成百分制

5、將所有的得分求和,得出每個框架的增長得分。

在上面的 6 個類別中,職位信息數據佔總比的 35%,其他五類權重相等。(金錢的推動力還是很現實的)。這樣的劃分似乎可以很好地平衡了各個分類的權重。與之前 2018 年加權分數分析不同,我沒有考量 KDNuggets 的調查(沒有更新數據)與新書出版情況(近六個月沒有很多新書出版)。

對比結果

下表顯示了各個框架的細分項得分:

查看谷歌表格可訪問下面網址

https://docs.google.com/spreadsheets/d/1Q9rQkfi8ubKM8aX33In0Ki6ldUCfJhGqiH9ir6boexw/edit?usp=sharing

以下是各個類別和最終得分:

下圖展現了各個框架的成長得分:

TensorFlow 還是需求量最大,增長最快的深度學習框架,其地位暫時不可取代。PyTorch 的增長同樣迅速,職位需求的大幅增加也印證了其使用量和需求量的增長。Keras 在過去六個月中有所提升。最後,FastAI 本身基數較低,但也有增長。畢竟它還是這些框架中最新的那個。

無論是 TensorFlow 還是 PyTorch 都是值得學習的好框架。

學習建議

如果你要學習 TensorFlow,我建議你從 Keras 學起。首推 Chollet 的 Deep Learning with Python 和 Dan Becker 的 DataCamp course on Keras。TensorFlow 2.0 版本中集成了tf.keras,因此,現在在 TensorFlow 框架中就可以調用 Keras 了。如果你要學習 PyTorch,我建議你從 fastai 學起。可以學習慕課課程 Practical Deep Learning for Coders, v3,從深度學習基礎,到 fastai 與 PyTorch 基礎貫穿學習。

關於 TensorFlow 和 PyTorch,我們還能學習什麼?

未來的方向

經常聽開發者們說道,相比 TensorFlow,更喜歡用 PyTorch,因爲 PyTorch 更適用於 python,其 API 也更穩定。它還有一個原生的 ONNX 模型接口,可以加速訓練預測。此外,PyTorch 還有很多和 Numpy 一致的命令,這也降低了學習的難度。

然而,谷歌首席決策情報工程師凱西·科濟爾科夫認爲,TensorFlow 2.0版本專注於提升用戶體驗。更好用的接口、集成了 Keras,並增加了一個執行選項。這些改變,再加上 TensorFlow 的包容性,會讓 TensorFlow 在接下來的時間裏繼續保持流行與熱度。

TensorFlow 最近還宣佈了一個令人激動的計劃:開發一個 Swift for TensorFlow。Swift 是一種由蘋果公司開發的編程語言,比 Python 的執行效率和開發速度都要快。慕課上 Fast.ai 的課程也會結合一些 Swift for TensorFlow,雖然這個語言距離成熟還需要時間,但是它對於深度學習框架而言,是一個重要的進展。語言和框架間的集成與借鑑也是一定會發生的。

另一個影響深度學習框架的因素是量子計算。距離量子計算機的有效利用還需要數年的時間,不過 Google、IBM、微軟和其他一些公司已經開始思考如何集成量子計算和深度學習。屆時,爲使用新的技術,這些框架將會面臨相應的調整。

TensorFlow 和 PyTorch 框架都在進步,它們都具備高級 API 接口(tf.keras和 fastai),降低深度學習的學習門檻。

原文鏈接:

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

(本文爲 AI大本營編譯文章,轉載請微信聯繫 1092722531

關於 TF、PyTorch 或其他深度學習框架,你有哪些使用感受與經驗,希望愛技術、愛分享的小夥伴們願意與大家分享,可與我們聯繫,精彩原創內容還有稿費或紀念品哦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章