深度學習框架的流行趨勢正在快速變化,其中最受矚目的莫過于 TensorFlow 和 PyTorch。前段時間,TensorFlow 發布了 2.0(Alpha)版本,不僅推出了許多新功能,也通過引入 Keras 高級 API 和 EagerExecution 模式讓入門門檻進一步降低。但是這些改變并沒有減慢 PyTorch 追趕的步伐。在今天這篇文章中,本文作者通過 GitHub、Medium 文章、arXiv 論文和 LinkedIn 等多個維度評估了這兩款深度學習框架的最新發展趨勢。
2018 年 9 月,我在這篇文章(https://towardsdatascience.com/deep-learning-framework-power-scores-2018-23607ddf297a)中從市場需求、使用和受歡迎程度三方面比較了所有主要的深度學習框架。 其中,TensorFlow 是深度學習框架中無可爭議的重量級冠軍,PyTorch 則是引發了熱烈討論的年輕新秀。
在過去六個月中,這些領先的深度學習框架又有什么變化呢?
為了回答這個問題,我查看了 Indeed、Monster、LinkedIn 和 SimplyHired 上的職位列表數量。 我還評估了 Google 搜索量、GitHub 活動、 Medium 文章、ArXiv 文章和 Quora 主題關注者 的變化。 總的來說,這些資料來源描繪了市場需求、使用和興趣增長的全面情況。
集成和更新
我們最近在 TensorFlow 和 PyTorch 框架中看到了幾個重要的進展。
PyTorch v1.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 日進行。源數據在此 Google 表格 中。
我使用了 plotly 數據可視化庫來探索流行度,對于交互式 plotly 圖表,請在 此處 查看我的 Kaggle Kernel。
讓我們看看每個類別的結果。
在線職位列表的變化
為了確定在當今的就業市場中需要哪些深度學習庫,我在 Indeed、LinkedIn、Monster 和 SimplyHired 上搜索了工作列表。
我同時搜索了關鍵詞”機器學習“和深度學習框架名,比如,TensorFlow 通過”機器學習 TensorFlow“搜索關鍵詞進行評估。 用此方法是出于與歷史比較的原因。 不加關鍵詞”機器學習“的搜索沒有產生明顯不同的結果。 搜索區域是美國。
我從 2019 年 3 月的職位列表數量中減去了六個月前的職位列表數量,下面就是我發現的內容:

TensorFlow 的職位列表增幅略大于 PyTorch, Keras 也顯示出了職位列表數的增長 —— 大約是 TensorFlow 的一半,FastAI 仍然沒有出現在任何工作列表中。
請注意,除了 LinkedIn 之外,PyTorch 在其他所有求職網站上都有更多的額外崗位列表。 另外,從絕對數量上講,TensorFlow 的工作列表數量幾乎是 PyTorch 或 Keras 的三倍。
Google 搜索活動的平均變化
在大型搜索引擎上進行網絡搜索的行為是衡量人氣的指標。 我查看了過去一年 Google 趨勢中的搜索記錄。 我在世界范圍內搜索了對機器學習和人工智能類別的興趣。 Google 不提供絕對搜索數字,但確實提供了相對數據。
我統計了過去六個月的平均興趣分數,并將其與更早的六個月的平均興趣分數進行了比較。

在過去的六個月中,TensorFlow 的相對搜索量有所下降,而 PyTorch 的相對搜索量卻在增長。
下面這個來自谷歌的圖表顯示了過去一年各個框架的搜索興趣。
(藍色表示 TensorFlow;黃色表示 Keras;紅色表示 PyTorch;綠色表示 FastAI)
Medium 新文章
Medium 是數據科學文章和教程的熱門聚集地。 我希望你會喜歡它!
在過去的六個月里,我統計了在谷歌網站搜索出的 Medium.com 文章數量,發現與 TensorFlow 和 Keras 相關的文章數量差不多,而 PyTorch 則相對較少。

作為高級 API,Keras 和 FastAI 受到新的深度學習從業者的歡迎, Medium 有許多教程展示了如何使用這些框架。
arXiv 新文章
arXiv 是一個在線存儲庫,大多數深度學習學術文章都發布在此。 我用 Google 搜索了在過去六個月里在 arXiv 上提及各個框架的新文章 。

TensorFlow 的新文章出現率最高。
新的 GitHub 活動
GitHub 上的近期活動是衡量框架流行度的另一個指標。 我在下面的圖表中描繪了 GitHub 點贊 、復制、關注和貢獻者的數量。

TensorFlow 在每個類別中擁有最多的 GitHub 活動。 然而,PyTorch 在關注和貢獻者的增長方面非常接近。 此外,FastAI 也增加了許多新的貢獻者。
毫無疑問,Keras 的一些貢獻者對 TensorFlow 庫也進行了研究。 值得注意的是,TensorFlow 和 Keras 都是由 Google 員工負責的開源產品。
Quora 新粉絲
我新增了 Quora 主題關注者數量 —— 一個我之前沒有統計數據的新類別。

在過去六個月中,TensorFlow 主題新增的粉絲數量最多,而 PyTorch 和 Keras 的粉絲增量就少了很多。
獲得所有數據后,我將其合并為一個度量指標。
增長分數計算方法
以下是我計算增長分數的方法:
- 把所有特征值縮放至 0 到 1 之間。
-
- 聚合在線職位列表和 GitHub 活動子類別。
-
- 對各個類別根據以下百分比加權。

- 為了便于理解,各加權分數乘以 100。
-
- 將每個框架的類別分數匯總為單個增長分數。
其中,工作列表的權重占總分的三分之一多一點,原因也很俗氣,有錢能使鬼推磨。 這種權重系數的劃分似乎是在各種類別之間取得了適當的平衡。 與我在 2018 年對各框架能力系數的分析不同,這次我沒有包括 KDNuggets 的使用情況調查(沒有新數據),也沒有包括書籍(六個月內發布的數量不多)。
結果
下面的表格中列出了四種主流框架在各個類目上的變化情況:
下面是各個類別的分數,以及最后匯總的分數:
下面是最終的增長分數:

TensorFlow 是市場需求最多,也是增長最快的框架,它的領先地位不會在短期內被顛覆。 PyTorch 也在迅速發展,它在工作列表中的大量增加證明了其使用和需求的增加。在過去的六個月里,Keras 也有了很大的發展。最后,值得注意的是,FastAI 是從較小的基數開始發展的,它是最年輕的深度學習框架。
TensorFlow 和 PyTorch 都是很好的值得學習的框架。
學習建議
如果你想學習 TensorFlow,我建議你從 Keras 開始。我推薦 Chollet 的 Python 深度學習 和 Dan Becker 關于 Keras 的 DataCamp 課程。 Tensorflow 2.0 通過 tf.keras 使用 Keras 作為其高級 API。這里有 Chollet 對 TensorFlow 2.0 的快速入門介紹。
如果你想學習 PyTorch,我建議你從 FastAI 的 MOOC 實踐深度學習編碼 (v3) 開始,學習深度學習基礎知識、FastAI 和 PyTorch 的基礎知識。
TensorFlow 和 PyTorch 的未來發展方向是什么?
未來發展方向
我一直聽說,與 TensorFlow 相比,人們更喜歡使用 PyTorch。 PyTorch 更具 pythonic,并且具有更一致的 API,它還具有原生的 ONNX 模型導出,可用于加速推理。此外,PyTorch 與 numpy 共享許多命令,這減少了學習它的障礙。
然而,TensorFlow 2.0 完全是為了改進用戶體驗,正如谷歌首席決策情報工程師 Cassie Kozyrkov 在此解釋的那樣。 TensorFlow 現在將擁有更直接的 API、簡化的 Keras 集成和 eager execution 選項。這些變化以及 TensorFlow 的廣泛采用應該有助于該框架在未來幾年保持流行。
TensorFlow 最近宣布了另一個激動人心的計劃:Swift for TensorFlow 的開發。 Swift 是一種最初由 Apple 構建的編程語言,在執行和開發速度方面,Swift 比 Python 有許多優勢。 FastAI 將在部分高級 MOOC 中使用 Swift for TensorFlow ——請參閱 FastAI 聯合創始人 Jeremy Howard 關于此主題的帖子。這種語言可能不會在一年或兩年內進入黃金時間,但它可能是對當前深度學習框架非常有用的改進。
語言和框架之間的協作和交叉授粉肯定正在發生。
影響深度學習框架的另一個進步是量子計算。一臺可用的量子計算機可能還需要幾年的時間才會出現,但谷歌、IBM、微軟和其他公司正在考慮如何將量子計算與深度學習相結合。各類框架需要適應這項新技術。
總結
目前來看,TensorFlow 和 PyTorch 都在快速增長, 兩者現在都有很好的高級 API —— tf.keras 和 FastAI——它們降低了深度學習入門的門檻。本文還帶你了解了一點最近的發展和未來方向。
來源 | AI前線
策劃|Natalie
作者|Jeff Hale
譯者|楊旭東
編輯|Debra