23個深度學習庫大排名:TensorFlow、Keras名列一二,Sonnet增長最快

黃小天發表於2017-10-24

本文對 23 個深度學習庫進行了排名,衡量的標準有三個:GitHub、Stack Overflow 以及谷歌搜尋結果。TensorFlow 憑藉最大、最活躍的社群主導了該領域,排名第一;Keras 是最為流行的深度學習前端,排名第二;Theano 依然實力強大,即使沒有大公司的支援,排名第四;Sonnet 是成長最快的庫,排名第六。


排名


我們排名 23 個用於資料科學的深度學習開源庫,排名的衡量標準有 3 個:GitHub、Stack Overflow 活動以及谷歌搜尋結果。


23個深度學習庫大排名:TensorFlow、Keras名列一二,Sonnet增長最快


上表中給出了每個開源庫的總分值,以及各自在 GitHub、Stack Overflow 以及谷歌搜尋上的得分(其中 0 為平均值)。比如,Caffe 在 Github 上的標準評分為 1,deeplearning4j 則接近 0。


結果與討論


排名綜合考慮上述 3 個方面而得出:Github(收藏量與 forks)、Stack Overflow(標籤與問題)、谷歌搜尋(全年與每季的增長率)。上述指標透過可用的 API 獲取,所以得出深度學習工具包的完整列表需要一定技巧。計算每個指標的分值有利於我們知道在該方面深度學習庫的排名情況。


TensorFlow 憑藉最大、最活躍的社群主導了該領域


TensorFlow 在三個指標上的分值均為 2+;相比於排名第三的 Caffe,TensorFlow 的 Github forks 幾乎是其 3 倍,Stack Overflow 問題是其 6 倍多。TensorFlow 由谷歌大腦團隊於 2015 年首次開源,之後便一路攀升超越 Theano (4) 和 Torch (8) 而排名第一。儘管 TensorFlow 與執行在 C++引擎上的 Python API 一起分發,本次排名中的若干個庫可把 TensorFlow 用作後端並提供其介面。這其中包括很快將成為核心 TensorFlow 和 Sonnet (6) 一部分的 Keras (2)。TensorFlow 的流行很可能來自於通用深度學習框架、靈活的介面、漂亮的計算圖視覺化以及谷歌大量的開發者與社群資源之間的整合。


Caffe 已經被 Caffe2 取代


由於比其他深度學習庫(包括 TensorFlow 在內)更高的 Github 分值,Caffe 獲得了排名第三的位置。Caffe 一般認為比 Tensorflow 更專業化,其開發聚焦在影像處理、目標識別和預訓練卷積神經網路上。2017 年 4 月 Facebook 釋出了 Caffe2,並已在所有的庫中排名前半。Caffe2 相較於包含迴圈神經網路的 Caffe 更輕量化、模組化和可擴充套件。Caffe 與 Caffe2 彼此分離,因此資料科學家可繼續使用 Caffe。但是,一些遷移工具比如 Caffe Translator 能提供使用 Caffe2 的方法以驅動現有 Caffe 模型。



Keras 是最為流行的深度學習前端


Keras (2) 是排名最高的非框架深度學習庫,可被用作 TensorFlow (1)、Theano (4)、MXNet (7)、CNTK (9) 或 deeplearning4j (14) 的前端。Keras 的表現在三個指標上均高於平均值,其流行得益於簡單性和易於上手。在資料集上進行深度學習實驗的資料科學家尤其喜歡 Keras。隨著 Keras 有了 R 語言介面,Keras 的開發與流行都將會繼續下去。


Theano 依然實力強大,即使沒有大公司的支援


新的深度學習框架層出不窮,Theano (4) 是排名中出現最早的庫。Theano 率先使用計算圖,在深度學習與機器學習社群中流行度不減當年。Theano 本質上是一個用於 Python 的數值計算庫,也可被用於高階的深度學習包裝器,比如 Lasagne (15)。儘管谷歌支援 TensorFlow (1) 和 Keras (2),Facebook 支援 PyTorch (5) 和 Caffe2 (11),MXNet (7) 是亞馬遜雲服務官方指定的深度學習框架,CNTK (9) 由微軟設計開發併為其所用,Theano 依然很流行,儘管沒有得到任何一家大公司的青睞。


Sonnet 是成長最快的庫


2017 年早期,谷歌 DeepMind 公開發布了 Sonnet(6) 的程式碼,這是一個建立在 TensorFlow 上的高階目標導向的庫。其在谷歌搜尋結果的頁數對比上一季度增長了 272%,是我們選取的庫中增長最快的。儘管谷歌在 2014 年收購了這個英國的人工智慧公司,DeepMind 和谷歌大腦仍然保持最大程度的獨立性。DeepMind 關注人工生成的智慧,而 Sonnet 能幫助使用者在他們具體的 AI 想法和研究上構建高階結構。


Python 是深度學習介面的主要語言


PyTorch(5) 是一個底部介面為 Python 的框架,在我們的列表中是成長第二快的庫。對比上一個季度,PyTorch 的谷歌搜尋結果增長了 236%。在所有 23 個開源深度學習框架和封裝中,只有三個沒有使用 Python 介面:Dlib、MatConvNet 和 OpenNN,有 6 到 7 個庫分別使用了 C++和 R 的介面。儘管資料科學社群某種程度上都一致同意使用 Python,實際上在深度學習中還是有很多的選擇。


侷限性


使用更長久的庫通常會有更高的指標,因此排名會更加靠前。我們這裡只使用了唯一的指標,即谷歌搜尋季度增長率(Google search quarterly growth rate)。


資料中展示了幾種困難:

  • 神經網路設計和數學軟體都是特有的,因此被刪去
  • CNTK 也稱作微軟認知工具箱,但我們只使用了原始的 cntk 命名
  • Neon 改為 Nervana Neon
  • Paddle 改為 PaddlePaddle
  • 有些庫明顯是由其它庫衍生出來的,比如 Caffe 和 Caffe2。我們決定將擁有唯一的 GitHub 資料庫的庫作為單個處理。

方法


首先,我們從 5 個不同的來源中生成了一個 23 個開源深度學習庫的列表,然後收集它們的所有指標,並給出排名。GitHub 資料基於 star 指標和 fork 指標,Stack Overflow 資料基於標籤和包含軟體包名稱的問題,谷歌搜尋結果基於過去 5 年內谷歌搜尋的結果總數目和過去 3 個月對比之前 3 個月計算得出的季度增長率。


GitHub頁面:https://github.com/thedataincubator/data-science-blogs/



相關文章