23 個熱門深度學習庫的排名

發表於2017-11-06

基於 Github 和 Stack Overflow 上的活躍度以及 Google 搜尋結果,The Data Incubator 最近製作了一個 23 個熱門深度學習庫的排名。

下表顯示了標準化後的分數,其中值 1 表示高於平均值的一個標準偏差(平均值為 0)。 例如,Caffe 在 Github 中的活動是一個高於平均水準的標準差,而 deeplearning4j 接近平均水平。見末尾的方法。

結果和討論

該排名基於三個同等重要的部分:Github(star 和 fork),Stack Overflow(標籤和問題)和 Google 搜尋結果(總和以及季度增長率)。這 3 部分是通過可用的 API 獲得的。想弄一個全面的深入學習工具包列表不容易,所以在最後選取了我們認為具有代表性的五個不同的列表(有關詳細資訊,請參閱下面的方法)。計算每種度量的標準化分數,使我們能夠看到在每個類別中哪些包是脫穎而出的。完整排名在這裡,而原始資料在這裡。

TensorFlow 在最大活躍社群中佔主導

TensorFlow 在所有計算度量上的平均值上至少有兩個標準偏差。TensorFlow 和第二大流行框架 Caffe 相比,在 Github 上的 fork 數幾乎是後者的三倍,在 Stack Overflow 上的問題總量是後者的六倍以上。TensorFlow 由 Google Brain 團隊於 2015 年首度開放,已經超過了眾多的高階庫,如 Theano(4)和 Torch(8),成為我們榜單的首位。TensorFlow 雖然與在 C++ 引擎上執行的 Python API 一起分發,但表中的幾個庫可以將 TensorFlow 用作後端,並提供它們自己的介面。這些庫包括了 Keras(2),將很快成為 TensorFlow 和 Sonnet 的核心部分(6)。TensorFlow 的流行可能是其通用的深度學習框架,靈活的介面,好看的計算圖形視覺化和 Google 的重要開發人員和社群資源的合力下的結果。

Caffe 尚未被 Caffe2 所取代

Caffe 在我們的名單上排名第三,除了 TensorFlow 外,Caffe 其在 Github 上的活躍度比其他競爭對手都要多。Caffe 傳統上被認為比 Tensorflow 更專業,並且專注於影象處理,目標識別和預先訓練的卷積神經網路。Facebook 於 2017 年 4 月釋出了 Caffe2(11),並且已經排在了深入學習庫的上半部分。Caffe2 是一個更輕巧、模組化和可擴充套件的 Caffe 版本,包括迴圈神經網路。Caffe 和 Caffe2 是相互獨立的倉庫(repo),所以資料科學家可以繼續使用最初的 Caffe。然而,有一些遷移工具,比如如 Caffe Translator,它提供了一種使用 Caffe2 來驅動現有 Caffe 模型的方法。

Keras 是深度學習上最受歡迎的前端庫

Keras(2)是排名最高的非框架庫。Keras 可以用作 TensorFlow(1)、Theano(4)、MXNet(7)、CNTK(9)、deeplearning4j(14)的前端。在所有的三個衡量標準上, Keras 的表現均優於平均水平。Keras 的流行可能是由於其簡單性和易用性。Keras 允許快速的原型化,但代價是犧牲了從框架直接執行而產生的一些靈活性和控制。資料科學家在資料集上做深度學習的相關實驗時,Keras 受到了他們的青睞。隨著 R Studio 最近釋出了 Keras 的介面,Keras 的發展和受歡迎程度還在不斷延續。

即使沒有巨頭支援,Theano 仍保持名列前茅

在新的深度學習框架的海洋中,Theano(4)是我們的排名中最古老的庫。Theano 開創性地使用了計算圖(computational graph),並在研究界普遍做深度學習和機器學習之時仍保持流行。Theano 本質上是一個 Python 的數值計算庫,但可以與像 Lasagne 這樣的高階深度學習庫(15)一起使用。雖然 Google 支援 TensorFlow(1)和 Keras(2),Facebook 支援 PyTorch(5)和 Caffe2(11),MXNet(7)是 Amazon Web Services 的官方深度學習框架,Microsoft 設計並維護了 CNTK(9),Theano 在沒受到行業巨頭的正式支援下依然流行。

Sonnet 是增長最快的庫

2017 年初,Google 的 DeepMind 公開發布了 Sonnet(6)的程式碼,這是一個以 TensorFlow 為基礎的高階物件導向庫。Sonnet 的 Google 搜尋結果返回頁數比上個季度增長了 272%,是我們列表中所有庫中最大的。儘管 Google 在 2014 年收購了英國人工智慧公司DeepMind,但 DeepMind 和 Google Brain 仍然在大體上是獨立團隊。DeepMind 專注於通用人工智慧,Sonnet 可以幫助使用者為他們的具體 AI 想法和研究做頂層設計。

Python 是深度學習的介面語言

PyTorch(5)是我們表中增長速度第二的庫,該框架的唯一介面是 Python。與上季度相比,PyTorch 的 Google 搜尋結果增加了 236%。在我們排的 23 個開源深度學習框架和包裝器中,只有三個沒有 Python 介面:Dlib(10)、MatConvNet(20)和OpenNN(23)。在 23 個庫中,C ++ 和 R 介面分別只有 7 個和 6 個。雖然資料科學界在使用 Python 方面有些接近同一個共識,但對深度學習庫而言,還有很多的選擇。

限制

 

當然,有些庫由於已經存在了更長的時間會有更高的資料,因此排名更高。唯一考慮到這一點的指標,是 Google 搜尋季度增長率。

資料呈現中遇到的一些困難:

  • ·神經設計和 wolfram 數學是專有的,故被刪除
  • ·cntk 也被稱為「微軟認知工具包」,但是我們只使用了 ctnk 名稱
  • ·neon 變成了 nervana neon
  • ·paddle 被改為 paddlepaddle
  • ·一些庫顯然是其他庫的衍生品,如 Caffe 和 Caffe2。如果它們有單獨/獨立的 Github 倉庫,我們分開處理這些庫。

方法

所有原始碼和資料都在我們的 Github 頁面上。

我們首先從五個不同的來源中生成了 23 個開源深度學習庫的列表,然後收集了所有這些庫的指標,以獲得排名。Github 的資料基於 star 數和 fork 數、Stack Overflow 的資料包含包名稱的標籤和問題,Google 搜尋結果則基於過去五年的 Google 搜尋結果總數,並計算結果在過去三個月與前三個月相比的季度增長率。

一些注意事項:

  • ·有幾個庫是常用詞彙(caffe、chainer、lasagne),因此用於確定 Google 搜尋結果數量的搜尋詞,包括庫的名稱和術語即“deep learning”。
  • ·任何不可用的 Stack Overflow 計數都轉換為零計數。
  • ·計數被標準化為均值 0 和偏差 1,然後平均得到 Github 和 Stack Overflow 分數,並結合 Serch 結果,從而得到總分。
  • ·做了一些手動檢查以確認 Github 倉庫位置。

所有資料均於 2017 年 9 月 14 日下載。

相關文章