PyTorch杠上TensorFlow:誰才是增長最快的深度學(xué)習(xí)框架?

深度學(xué)習(xí)框架的流行趨勢正在快速變化,其中最受矚目的莫過于 TensorFlow 和 PyTorch。前段時間,TensorFlow 發(fā)布了 2.0(Alpha)版本,不僅推出了許多新功能,也通過引入 Keras 高級 API 和 EagerExecution 模式讓入門門檻進一步降低。但是這些改變并沒有減慢 PyTorch 追趕的步伐。在今天這篇文章中,本文作者通過 GitHub、Medium 文章、arXiv 論文和 LinkedIn 等多個維度評估了這兩款深度學(xué)習(xí)框架的最新發(fā)展趨勢。 

2018 年 9 月,我在這篇文章(https://towardsdatascience.com/deep-learning-framework-power-scores-2018-23607ddf297a)中從市場需求、使用和受歡迎程度三方面比較了所有主要的深度學(xué)習(xí)框架。 其中,TensorFlow 是深度學(xué)習(xí)框架中無可爭議的重量級冠軍,PyTorch 則是引發(fā)了熱烈討論的年輕新秀。

在過去六個月中,這些領(lǐng)先的深度學(xué)習(xí)框架又有什么變化呢?

為了回答這個問題,我查看了 Indeed、Monster、LinkedIn 和 SimplyHired 上的職位列表數(shù)量。 我還評估了 Google 搜索量、GitHub 活動、 Medium 文章、ArXiv 文章和 Quora 主題關(guān)注者 的變化。 總的來說,這些資料來源描繪了市場需求、使用和興趣增長的全面情況。

集成和更新

我們最近在 TensorFlow 和 PyTorch 框架中看到了幾個重要的進展。

PyTorch v1.0 于 2018 年 10 月發(fā)布,同時 FastAI v1.0 發(fā)布。 這兩個版本的發(fā)布都是重要的里程碑,標志著深度學(xué)習(xí)框架趨于成熟。

TensorFlow 2.0 alpha 于 2019 年 3 月 4 日發(fā)布,它增加了新的功能并改善了用戶體驗,并且更加緊密地集成了 Keras 作為其高級 API。

方法論

在本文中,我將 Keras 和 FastAI 包含在比較中,因為它們與 TensorFlow 和 PyTorch 緊密集成,并且還提供了評估 TensorFlow 和 PyTorch 的尺度。

我不會在本文中探索其他深度學(xué)習(xí)框架。 我希望我能夠收到 Caffe、Theano、MXNET、CNTK、DeepLearning4J 或 Chainer 等值得討論的反饋。 雖然這些框架各有其優(yōu)點,但似乎沒有一個框架顯示出其可以媲美 TensorFlow 或 PyTorch,并且它們也沒有與這兩個框架緊密結(jié)合。

搜索在 2019 年 3 月 20 日至 21 日進行。源數(shù)據(jù)在此 Google 表格 中。

我使用了 plotly 數(shù)據(jù)可視化庫來探索流行度,對于交互式 plotly 圖表,請在 此處 查看我的 Kaggle Kernel。
讓我們看看每個類別的結(jié)果。

在線職位列表的變化

為了確定在當今的就業(yè)市場中需要哪些深度學(xué)習(xí)庫,我在 Indeed、LinkedIn、Monster 和 SimplyHired 上搜索了工作列表。

我同時搜索了關(guān)鍵詞”機器學(xué)習(xí)“和深度學(xué)習(xí)框架名,比如,TensorFlow 通過”機器學(xué)習(xí) TensorFlow“搜索關(guān)鍵詞進行評估。 用此方法是出于與歷史比較的原因。 不加關(guān)鍵詞”機器學(xué)習(xí)“的搜索沒有產(chǎn)生明顯不同的結(jié)果。 搜索區(qū)域是美國。

我從 2019 年 3 月的職位列表數(shù)量中減去了六個月前的職位列表數(shù)量,下面就是我發(fā)現(xiàn)的內(nèi)容:
2f0cf34e640ff25284036_5.png
TensorFlow 的職位列表增幅略大于 PyTorch, Keras 也顯示出了職位列表數(shù)的增長 —— 大約是 TensorFlow 的一半,F(xiàn)astAI 仍然沒有出現(xiàn)在任何工作列表中。

請注意,除了 LinkedIn 之外,PyTorch 在其他所有求職網(wǎng)站上都有更多的額外崗位列表。 另外,從絕對數(shù)量上講,TensorFlow 的工作列表數(shù)量幾乎是 PyTorch 或 Keras 的三倍。

Google 搜索活動的平均變化

在大型搜索引擎上進行網(wǎng)絡(luò)搜索的行為是衡量人氣的指標。 我查看了過去一年 Google 趨勢中的搜索記錄。 我在世界范圍內(nèi)搜索了對機器學(xué)習(xí)和人工智能類別的興趣。 Google 不提供絕對搜索數(shù)字,但確實提供了相對數(shù)據(jù)。

我統(tǒng)計了過去六個月的平均興趣分數(shù),并將其與更早的六個月的平均興趣分數(shù)進行了比較。
2f0cf34e640ff25284036_6.png
在過去的六個月中,TensorFlow 的相對搜索量有所下降,而 PyTorch 的相對搜索量卻在增長。

下面這個來自谷歌的圖表顯示了過去一年各個框架的搜索興趣。

(藍色表示 TensorFlow;黃色表示 Keras;紅色表示 PyTorch;綠色表示 FastAI)

Medium 新文章

Medium 是數(shù)據(jù)科學(xué)文章和教程的熱門聚集地。 我希望你會喜歡它!

在過去的六個月里,我統(tǒng)計了在谷歌網(wǎng)站搜索出的 Medium.com 文章數(shù)量,發(fā)現(xiàn)與 TensorFlow 和 Keras 相關(guān)的文章數(shù)量差不多,而 PyTorch 則相對較少。
2f0cf34e640ff25284036_8.png
作為高級 API,Keras 和 FastAI 受到新的深度學(xué)習(xí)從業(yè)者的歡迎, Medium 有許多教程展示了如何使用這些框架。

arXiv 新文章

arXiv 是一個在線存儲庫,大多數(shù)深度學(xué)習(xí)學(xué)術(shù)文章都發(fā)布在此。 我用 Google 搜索了在過去六個月里在 arXiv 上提及各個框架的新文章 。

2f0cf34e640ff25284036_9.png
TensorFlow 的新文章出現(xiàn)率最高。

新的 GitHub 活動

GitHub 上的近期活動是衡量框架流行度的另一個指標。 我在下面的圖表中描繪了 GitHub 點贊 、復(fù)制、關(guān)注和貢獻者的數(shù)量。
2f0cf34e640ff25284036_10.png
TensorFlow 在每個類別中擁有最多的 GitHub 活動。 然而,PyTorch 在關(guān)注和貢獻者的增長方面非常接近。 此外,F(xiàn)astAI 也增加了許多新的貢獻者。

毫無疑問,Keras 的一些貢獻者對 TensorFlow 庫也進行了研究。 值得注意的是,TensorFlow 和 Keras 都是由 Google 員工負責(zé)的開源產(chǎn)品。

Quora 新粉絲

我新增了 Quora 主題關(guān)注者數(shù)量 —— 一個我之前沒有統(tǒng)計數(shù)據(jù)的新類別。
2f0cf34e640ff25284036_11.png
在過去六個月中,TensorFlow 主題新增的粉絲數(shù)量最多,而 PyTorch 和 Keras 的粉絲增量就少了很多。

獲得所有數(shù)據(jù)后,我將其合并為一個度量指標。

增長分數(shù)計算方法

以下是我計算增長分數(shù)的方法:

  1. 把所有特征值縮放至 0 到 1 之間。
  2.  
  3. 聚合在線職位列表和 GitHub 活動子類別。
  4.  
  5. 對各個類別根據(jù)以下百分比加權(quán)。2f0cf34e640ff25284036_12.png
  6. 為了便于理解,各加權(quán)分數(shù)乘以 100。
  7.  
  8. 將每個框架的類別分數(shù)匯總為單個增長分數(shù)。

其中,工作列表的權(quán)重占總分的三分之一多一點,原因也很俗氣,有錢能使鬼推磨。 這種權(quán)重系數(shù)的劃分似乎是在各種類別之間取得了適當?shù)钠胶狻?與我在 2018 年對各框架能力系數(shù)的分析不同,這次我沒有包括 KDNuggets 的使用情況調(diào)查(沒有新數(shù)據(jù)),也沒有包括書籍(六個月內(nèi)發(fā)布的數(shù)量不多)。

結(jié)果

下面的表格中列出了四種主流框架在各個類目上的變化情況:

下面是各個類別的分數(shù),以及最后匯總的分數(shù):

下面是最終的增長分數(shù):
2f0cf34e640ff25284036_15.png
TensorFlow 是市場需求最多,也是增長最快的框架,它的領(lǐng)先地位不會在短期內(nèi)被顛覆。 PyTorch 也在迅速發(fā)展,它在工作列表中的大量增加證明了其使用和需求的增加。在過去的六個月里,Keras 也有了很大的發(fā)展。最后,值得注意的是,F(xiàn)astAI 是從較小的基數(shù)開始發(fā)展的,它是最年輕的深度學(xué)習(xí)框架。

TensorFlow 和 PyTorch 都是很好的值得學(xué)習(xí)的框架。

學(xué)習(xí)建議

如果你想學(xué)習(xí) TensorFlow,我建議你從 Keras 開始。我推薦 Chollet 的 Python 深度學(xué)習(xí) 和 Dan Becker 關(guān)于 Keras 的 DataCamp 課程。 Tensorflow 2.0 通過 tf.keras 使用 Keras 作為其高級 API。這里有 Chollet 對 TensorFlow 2.0 的快速入門介紹。

如果你想學(xué)習(xí) PyTorch,我建議你從 FastAI 的 MOOC 實踐深度學(xué)習(xí)編碼 (v3) 開始,學(xué)習(xí)深度學(xué)習(xí)基礎(chǔ)知識、FastAI 和 PyTorch 的基礎(chǔ)知識。

TensorFlow 和 PyTorch 的未來發(fā)展方向是什么?

未來發(fā)展方向

我一直聽說,與 TensorFlow 相比,人們更喜歡使用 PyTorch。 PyTorch 更具 pythonic,并且具有更一致的 API,它還具有原生的 ONNX 模型導(dǎo)出,可用于加速推理。此外,PyTorch 與 numpy 共享許多命令,這減少了學(xué)習(xí)它的障礙。

然而,TensorFlow 2.0 完全是為了改進用戶體驗,正如谷歌首席決策情報工程師 Cassie Kozyrkov 在此解釋的那樣。 TensorFlow 現(xiàn)在將擁有更直接的 API、簡化的 Keras 集成和 eager execution 選項。這些變化以及 TensorFlow 的廣泛采用應(yīng)該有助于該框架在未來幾年保持流行。

TensorFlow 最近宣布了另一個激動人心的計劃:Swift for TensorFlow 的開發(fā)。 Swift 是一種最初由 Apple 構(gòu)建的編程語言,在執(zhí)行和開發(fā)速度方面,Swift 比 Python 有許多優(yōu)勢。 FastAI 將在部分高級 MOOC 中使用 Swift for TensorFlow ——請參閱 FastAI 聯(lián)合創(chuàng)始人 Jeremy Howard 關(guān)于此主題的帖子。這種語言可能不會在一年或兩年內(nèi)進入黃金時間,但它可能是對當前深度學(xué)習(xí)框架非常有用的改進。

語言和框架之間的協(xié)作和交叉授粉肯定正在發(fā)生。

影響深度學(xué)習(xí)框架的另一個進步是量子計算。一臺可用的量子計算機可能還需要幾年的時間才會出現(xiàn),但谷歌、IBM、微軟和其他公司正在考慮如何將量子計算與深度學(xué)習(xí)相結(jié)合。各類框架需要適應(yīng)這項新技術(shù)。

總結(jié)

目前來看,TensorFlow 和 PyTorch 都在快速增長, 兩者現(xiàn)在都有很好的高級 API —— tf.keras 和 FastAI——它們降低了深度學(xué)習(xí)入門的門檻。本文還帶你了解了一點最近的發(fā)展和未來方向。

來源 | AI前線
策劃|Natalie
作者|Jeff Hale
譯者|楊旭東
編輯|Debra

Share this article:

Facebook
Twitter
LinkedIn
WhatsApp