- 原文地址:Which Deep Learning Framework is Growing Fastest?
- 原文做者:Jeff Hale
- 譯文出自:掘金翻譯計劃
- 本文永久連接:github.com/xitu/gold-m…
- 譯者:ccJia
- 校對者:luochen1992, zhmhhu
在 2018 年的 9 月,我在一篇文章中,從需求量,工程使用量以及流行程度等方面對比了全部的主流深度學習框架。TensorFlow 處於絕對的王者地位,而 Pytorch 則是一位躍躍欲試的年輕挑戰者。前端
半年過去了,這種形勢是否有所改變呢?python
爲了回答這個問題,我從在線招聘網站(如:Indeed、Monster、LinkedIn 和 SimplyHired) 的職位需求、谷歌的搜索量、GitHub 活躍度、媒體的文章數、ArXiv 的文章數以及Quora 的粉絲數等幾個方面的數據變化去作評估。最終,以這些數據爲依據,繪製了需求量,使用率和流行程度的增加圖便於讀者理解。android
咱們發現,TensorFlow 和 PyTorch 都有一些重要的版本發佈。ios
PyTorch 1.0 版本在 2018 年 10 月預先發布,同一時間 fastai 1.0 版本也進行了發佈。這兩個版本的發佈是深度學習框架走向成熟的重要里程碑。git
2019 年 4 月,TensorFlow 2.0 alpha 版也進行了發佈。在新增了許多新特性的同時,改進了用戶的體驗。而且更加緊密地集成了 Keras 做爲它的高級 API。github
在本文中,因爲 Keras 和 fastai 與 TesnsorFlow 和 PyTorch 的依存關係,它們也能夠做爲一個尺度來評估 TensorFlow 和 PyTorch,因此咱們將它們也囊括到了對比之中。編程
至於其餘的深度學習框架,我將不予討論。不少讀者確定會以爲像 Caffe、Theano、MXNET、CNTK、DeepLearning4J 和 Chainer 這些框架是頗有價值的。然而它們雖然有諸多的優勢,但確實沒法與 TensorFlow 和 Pytorch 相提並論,同時又和這兩個框架沒有什麼交集。swift
咱們的分析工做是在 2019 年 3 月 20 號到 21 號間執行的,數據源在 谷歌的表格中。後端
我使用 plotly 做爲可視化庫,更多的細節能夠參考個人 Kaggle Kernel。app
好,如今咱們就來看看各個分類的結果如何。
我經過搜索幾個主要的在線招聘網站,如,Indeed、LinkedIn、Monster 和 SimplyHired 的相關數據來判斷哪個框架是目前需求量最大的。
我使用的搜索關鍵字是這樣的,machine learning ,後面跟隨對應的庫名。舉個例子,評估 TensorFlow 咱們使用的關鍵字就是 machine learning TensorFlow 。因爲歷史的比較緣由,使用了這種關鍵字進行搜索。若是不加 machine learning 結果也不會有明顯的不一樣。咱們的搜索範圍設定的是美國。
我用2019年3月的數據減去6個月以前的數據,有以下的發現:
在職位列表中,TensorFlow 的增加略微高於 PyTorch。Keras 也有增加,大體是 TensorFlow 的一半。Fastai 仍然是沒有什麼需求量。
值得注意的是除了 LinkedIn 之外,在其餘的求職網站上 PyTorch 相較於 TensorFlow 都有明顯的增加。可是在絕對的數量上,TensorFlow 的職位數量接近PyTorch 或者 Keras 的 3 倍。
在最大搜索引擎上的搜索次數能夠做爲衡量流行程度的一個指標。我在 Google Trends 上搜集了過去一年全世界範圍內關於 Machine Learning and Artificial Intelligence 分類的搜索。不幸的是谷歌不提供絕對的數值,只能得到一組相對值。
我獲得了過去 6 個月興趣分數的均值並與半年之前的興趣均值作比較。
在過去 6 個月中,TensorFlow 的相關搜索量在降低,而 PyTorch 的相關搜索量在上升。
下面的圖表直觀的反映了過去 1 年人們的興趣趨勢。
新媒體是數據科學文章和教程的主要傳播場所,我但願你會喜歡它。我利用 Medium.com 做爲篩選項在谷歌上進行搜索,在過去的 6 個月中,TensorFlow 和 Keras 的文章發表數基本類似,而 PyTorch 的要稍微少一些。
做爲高級 API 的 Keras 和 fastai 在新框架的實踐者中十分流行,有不少教程都是在向人們展現如何很好的使用這些新框架。
arXiv 是當前大多數深度學習學術論文選擇發表的在線倉儲。我使用谷歌搜索了過去 6 個月新發表的新論文中提到的框架,結果是 TensorFlow 遙遙領先。
Git 的近期活躍度是框架流行度的另外一個指標。下面的圖表展現了點贊、克隆、粉絲以及貢獻者的數量。
TensorFlow 在各個選項上都是領先的。儘管如此,PyTorch 在關注者和貢獻者方面已經十分接近 TensorFlow 了,同時 fastai 也出現了不少新的貢獻者。
毫無疑問,一些 Keras 的貢獻者還在努力的挖掘 TensorFlow 庫。同時值得注意的是,這兩個開源項目都是由谷歌的員工發起的。
我將以前遺漏的一個參考指標 —— Quora 新話題的粉絲數量也加入進來。
過去 6 個月中,絕大多數新增話題的粉絲都是圍繞着 TensorFlow,而 PyTorch 和 Keras 則遠遠落後。
一旦我有了全部的數據,我將把它們整理成一個新的指標。
下面是我如何建立增加分數的:
將全部指標的分數縮放到 0 和 1 之間。
彙總 在線職位 和 GitHub 活躍度 等子類。
根據下面的百分比對各個分類加權。
爲了方便理解,咱們再將全部得分乘以 100。
將每一個框架的對應分類的得分進行累加,獲得最後的增加分數。
在線工做一項的權重佔據了總體的三分之一,緣由很簡單,直接的經濟利益纔是最實際的。這種劃分也是爲了更好的平衡各個選項。區別於個人另外一篇 2018 power score analysis ,我沒有包含 KDNuggets 的使用狀況調查(沒有新的數據)和出版物(過去 6 個月沒有太多的新書)。
下面是表格的形式:
這裏是各個分類的得分:
這裏是最終的得分:
TensorFlow 是目前需求量最大且增加速度最快的框架,短期內,這個局面不會發生變化。PyTorch 的增加也十分迅猛,大量的職位需求就是它需求量和使用量增加的最好證實。固然,Keras在過去的6個月也有長足的進步。最後,fastai 的增加就不那麼的理想了,可是須要說明的是,它是這幾個框架中最年輕的一個。 因此,TensorFlow 和 PyTorch 都是十分值得學習的框架。
若是你準備學習 TensorFlow ,那麼我建議你能夠先從 Keras 開始。Chollet 的 Deep Learning with Python 和 Dan Becker 的 DataCamp course on Keras 是兩本很好的入門教材。在 TensorFlow 2.0 中使用 Keras 做爲高級 API 只須要經過 tf.keras 就能夠調用。這裏有一個 Chollet 寫的 TensorFlow 2.0 快速入門 教程。
若是你準備學習 PyTorch,我建議能夠從 fast.ai 的 MOOC 文章 Practical Deep Learning for Coders, v3 開始。你能夠學習到深度學習的原理以及 fastai、PyTorch 的基礎。
那麼,TensorFlow 和 PyTorch 的將來是什麼呢?
我常聽人說,PyTorch 比 TensorFlow 更好用。這是由於 PyTorch 有更穩定的 API 而且更貼近 Python 的用法。同時還有原生的模型轉換工具 ONNX,能夠用來提升推理的速度。而且,Pytorch 共用了許多 numpy 的命令,能夠下降學習的門檻。
對於 TensorFlow 2.0 的全部改進都是針對於用戶體驗這點,谷歌的首席人工智能決策官 Cassie Kozyrkov 有以下的 解釋。TensorFlow 如今有更直觀的API,更合理的 Keras 集成,以及更直接的執行選項。這些改變以及 TensorFlow 的普遍使用,都將幫助它在將來幾年繼續流行。
此外,TensorFlow 最近公佈了一項使人激動的計劃:開發針對於 Swift的TensorFlow版本。Swift 最初是由蘋果公司構建的編程語言。相較於 Python,Swift 在執行和開發速度上有不少的優點。fast.ai 的聯合創始人 Jeremy Howard 發佈的 消息,fast.ai 將在部分的進階 MOOC 中使用 TensorFLow的Swift版本。這個語言可能在最近的一兩年不會完成,可是它必定會改進現存的深度學習框架。能夠看到,語言和框架之間的合做和交叉學習正在進行着。
量子計算 的進步也將影響深度學習框架。雖然可用的量子計算機還須要幾年才能出現,可是 Google、IBM、Microsoft 和其餘的公司已經在思考如何將量子計算和深度學習結合起來了。框架須要去慢慢適應這種新的技術。
你已經看到了 TensorFLow 和 PyTorch 的增加。它們都有很好的高級 API:tf.keras 和 fastai,它們能夠下降初學者的學習門檻。你也已經看到了框架的新特性和將來方向。
若是須要使用文中的圖表,能夠到個人 Kaggle Kernel 中去獲取相關內容。
我但願你能夠從這個對比中獲取幫助。若是確實有幫助,就請你把它分享到你喜歡的社交頻道,這樣就可使更多的人獲益。
謝謝你們瀏覽!
若是發現譯文存在錯誤或其餘須要改進的地方,歡迎到 掘金翻譯計劃 對譯文進行修改並 PR,也可得到相應獎勵積分。文章開頭的 本文永久連接 即爲本文在 GitHub 上的 MarkDown 連接。
掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 Android、iOS、前端、後端、區塊鏈、產品、設計、人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃、官方微博、知乎專欄。