11種深度學習框架影響力對比

2021-01-10 電子發燒友

編者按:Jeff Hale根據網上招聘、調研報告、網絡搜索、論文、教程、GitHub等數據,評估了11種深度學習框架的影響力。

現在數據科學領域最熱門的方向仍舊是深度學習。相應地,深度學習框架也處於飛速變革之中。現在最流行的框架,除Theano外,5年前都不存在。

我想搜集一些哪個框架更值得關注的證據,所以我搞了這個影響力評分。我使用了7個不同類別的11個數據源,以評估框架的使用量、興趣、流行度。接著我對這些數據進行加權組合,得到了本文的結果。具體的代碼可以在Kaggle Kernel上看到:discdiver/deep-learning-framework-power-scores-2018 2018年9月20日更新:應眾多讀者要求,我擴大了框架的評估範圍,加入了Caffe、Deeplearning4J、Caffe2、Chainer。現在的評測包括了KDNuggets使用調研中所有報告使用率在1%以上的框架。

2018年9月21日更新:我改進了一些測度的方法。

不多囉嗦了,下面是深度學習框架的影響力評分:

毫無疑問,TensorFlow位居第一。不過我有一些意料之外的發現,詳情見下。

框架

評測的所有框架都是開源的,除了其中一個框架外都提供了Python接口,有些框架提供了R或其他語言的接口。



TensorFlow是毫無爭議的贏家。GitHub上最熱,谷歌搜索最多,Medium文章、亞馬遜書籍、ArXiv論文最多。使用TensorFlow的開發者最多,大多數網上招聘的工作描述中也提到了它。TensorFlow背後站著Google。


 

Keras擁有「為人類而不是機器設計的API」。幾乎各項評估中,它都是第二流行的框架。Keras以TensorFlow、Theano或CNTK為底層引擎。如果你是深度學習的新手,建議從Keras開始。

總體而言,PyTorch是第三流行的框架,也是第二流行的獨立框架。它比TensorFlow要年輕,流行度的增速十分迅猛。它也支持TensorFlow尚不支持的一些定製。PyTorch背後站著的是Facebook。

Caffe是第四流行的框架。它差不多快5歲了。相對而言,某些僱主還要求熟悉Caffe,一些學術論文也還用Caffe,但最近使用Caffe的人不多。

Theano是蒙特婁大學2007年研發的,也是最古老的有顯著影響力的Python深度學習框架。它的流行度降了一大截,主要開發者也宣布不會再發布加入新功能的大版本了。不過,目前仍有一些更新。Theano仍然是排名第五的框架。

亞馬遜使用Apache孵化的MXNET。它是第六流行的深度學習庫。

CNTK是微軟的認知工具集。它讓我想起了微軟其他很多產品,試圖和谷歌、Facebook提供的工具競爭,但沒贏得多少使用。

Deeplearning4J,也稱為DL4J,配套Java語言使用。它是唯一不提供Python接口的準流行框架。不過,你可以導入用Keras寫的模型。這也是唯一一個兩個不同的搜索項(Deeplearning4J和DL4J)偶爾返回不同結果的框架。我在每項測度中使用了較高的數字。由於這個框架的評分相當低,因此這並沒有帶來什麼實質性的改變。

Caffe2是另一個Facebook開源產品。它基於Caffe構建,現在是PyTorch項目的一部分(同一GitHub倉庫)。由於現在Caffe2沒有自己的代碼倉庫,我使用了舊倉庫的GitHub數據。

Chainer是由日本公司Preferred Networks開發的框架。它有一小批使用者。

FastAI基於PyTorch構建。它的API借鑑了Keras,只需很少的代碼(比Keras還要少)就可以得到強力的結果。目前而言,FastAI屬於前沿框架,目前正處於為預計2018年10月發布的1.0版本重寫代碼的階段。FastAI的作者Jeremy Howard是Kaggle的主席。他曾經寫過一篇Introducing Pytorch for fast.ai,討論為何FastAI從使用Keras轉向創建自己的框架。

現在還沒有什麼職位需要用這個框架,本身使用也不廣泛。然而,由於FastAI的免費在線課程很流行,自然而然就有不少使用者。這個框架強大易用,因此可能會很快普及。

標準

我選擇了以下7個類別來評估深度學習框架的流行度和關注度。

在線招聘描述

KDnuggets使用調研

谷歌搜索量

Medium文章

亞馬遜數據

ArXiv論文

GitHub熱度

數據採集自2018年9月16日至2018年9月21日,源數據可以通過谷歌試算表訪問:https://docs.google.com/spreadsheets/d/1mYfHMZfuXGpZ0ggBVDot3SJMU-VsCsEGceEL8xd1QBo/edit?usp=sharing

我使用了Python的pandas庫探索流行度,並使用plotly庫進行可視化。如果你想要查看可交互的plotly圖表,請訪問我在文章開頭提到過的Kaggle Kernel。

在線招聘描述

現在的工作市場上哪種深度學習庫需求更高?我搜集了LinkedIn、Indeed、Simply Hired、Monster、Angel List的上的數據。

毫無疑問,TensorFlow是這方面的贏家。如果你想找一份深度學習的工作,可以學一下TensorFlow。

我通過「machine learning」(機器學習)加庫名的方式搜索。比如,「machine learning TensorFlow」。我測試了若干搜索方法,這個方法可以得到相關性最高的結果。

之所以額外加上一個搜索詞,是因為有些框架的名字可能有歧義,比如Caffe可能有多種含義。

使用量

KDnuggets是一個流行的數據科學網站。它在調研軟體使用情況的時候提問:

你在過去12個月的真實項目上用了什麼分析、大數據、數據科學、機器學習軟體?

讓人有點意外的是,Keras的使用量很高——差不多快趕上TensorFlow了。有意思,美國的僱主們熱衷找具備TensorFlow技術的人,而Keras的使用率差不多一樣高。

KDnuggets有好幾年的數據。儘管我在分析中只使用了2018年的數據,我需要指出,2017年後,Caffe、Theano、MXNET、CNTK的使用量下降了。

谷歌搜索熱度

最大搜尋引擎上的網絡搜索量是一項很好的評估流行度的指標。我查看了過去一年穀歌趨勢的搜索歷史。谷歌沒有提供搜索量的絕對值,不過它提供了不同搜索項的對比圖形。

Keras和TensorFlow的差距不大,PyTorch位居第三,其他框架的搜索量相對較低。

現在,讓我們簡單看下搜索量隨時間的改變趨勢,這能提供歷史上下文。Google自帶兩年搜索趨勢變化的圖表。

紅:TensorFlow;黃:Keras;藍:PyTorch;綠:Caffe

過去一年裡,TensorFlow的搜索量沒什麼顯著增長,但Keras和PyTorch的搜索量增加了。谷歌趨勢只允許同時比較五個搜索項,所以其他框架在另外的圖表上比較——都沒顯示出什麼明顯的趨勢,除了相對TensorFlow而言極低的搜索量。

發表

我納入了多種發表類型。讓我們先看下Medium文章。

Medium文章

Medium上有很多流行的數據科學文章和指南。


 

終於出現新贏家了,Keras超過了TensorFlow,而相比其他評估項,FastAI的表現很突出。

我猜想這可能是因為Keras和FastAI對初學者更友好。新的深度學習從業者對這兩個框架的興趣較大,而Medium上有大量教程。

我使用了谷歌的站內搜索,限定時間為12個月內,使用框架名加「learning」(學習)作為關鍵詞——同樣是為了避免「caffe」帶來的歧義。相比其他關鍵詞組合,這導致的搜索結果下降最少。

現在讓我們看下亞馬遜上有關這些框架的書籍數量。

亞馬遜書籍

我在Amazon.com的圖書 > 計算機技術分類下搜索每個深度學習框架的名稱。

TensorFlow又獲勝了。MXNET的書比期望的多,而Theano的書比期望的少。相對其流行度而言,PyTorch的書不多,這可能是因為這個框架比較年輕。注意這一測量偏向老框架,因為書的出版周期比較長。

ArXiv論文

機器學習方面的學術論文,最常發表在ArXiv上。我同樣使用谷歌站內搜索,限定時間為12個月內。

TensorFlow還是第一。注意,相比學術論文而言,Keras在Meidum和亞馬遜上要流行得多。PyTorch在這一類別排名第二,顯示它在實現新想法方面的靈活性。Caffe的評分也相對較好。

GitHub熱度

GitHub熱度是另一項框架流行度的指標。我為收藏、分叉、關注、貢獻者分別製作了圖表,因為這些數據更適合分別呈現,而不是混在一起。

TensorFlow也是最流行的,有大量活躍用戶。考慮到FastAI甚至還不滿一歲,它在GitHub上的熱度相當不錯。有意思的是,相比另外三個測度,不同框架的貢獻者數量總體而言比較接近。

收集、分析了所有數據後,是時候將它們整合成一個測度了。

影響力評分過程

我是這樣得出影響力評分的:

將所有特徵的尺度縮放至0到1

聚合在線招聘描述和GitHub熱度的子類別

根據下圖的權重對類別進行加權

如上圖所示,在線招聘描述、KDnuggets一組,網絡搜索、發表、GitHub熱度一組,平分權重。這樣劃分看起來是最合適的,平衡了多種類別。

為了便於查看,各項加權評分乘以100

累加每個框架的各項評分以得到單一的影響力評分

下為各個類別的統計數據:

下為加權和聚合子類別後的各項評分:

這就得到了文章開頭的圖表:

100是最高可能得分,意味著在所有類別都是第一。TensorFlow幾乎達到了100分,這並不令人意外,畢竟它在每個類別中都是第一(或者幾乎是第一)。Keras毫無爭議地位居第二。

我再重複一遍,如果你想要以可交互的方式查看圖表,或者分叉Jupyter Notebook,請訪問我開頭提到的Kaggle Kernel。

未來

目前為止,TensorFlow的領先地位難以動搖。短期內,它應該會繼續統治深度學習領域。不過,考慮到深度學習世界的飛速變革,長期來看,TensorFlow的領先可能發生變化。

時間會告訴我們,PyTorch是否能超越TensorFlow,就像React超越Angular一樣。這兩對框架還挺適合類比的。PyTorch和React都是由Facebook支撐的靈活度很高的框架,通常認為要比谷歌支撐的競爭者更容易使用。

FastAI能獲取課程之外的用戶嗎?它有一大堆自帶的學生用戶,比Keras對初學者更友好的API。

你覺得未來會怎麼樣?請留言分享你的想法。

給學習者的建議

如果你掌握了Python、numpy、pandas、sklearn、matplotlib技能,考慮學習一個深度學習框架,我建議你從Keras開始。它的用戶數量很大,也受到僱主的認可,Medium上也有很多文章可以參考,API也很容易使用。

如果你已經掌握了Keras,決定下一個要學習的框架不太容易。我建議你選擇TensorFlow或者PyTorch,深入學習,以做出很棒的深度學習模型。

如果你想要熟練掌握需求量最大的框架,你應該選擇TensorFlow。但研究人員很喜歡用PyTorch,因為它既易用又靈活。Quora上有一個關於選TensorFlow還是PyTorch的問題:https://www.quora.com/Should-I-go-for-TensorFlow-or-PyTorch

如果你具備了這些框架的經驗,我建議你留意下FastAI。如果你想學習基礎和高級的深度學習技能,可以看下FastAI的免費在線課程。FastAI 1.0許諾讓你可以很容易地實現最新的深度學習策略,並快速迭代。

不管你選什麼框架,我希望你現在對哪個深度學習框架需求最高,使用最多,文章最多有所了解。

本文來源:Medium

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 深度學習編程框架對比
    1|前言深度學習編程框架提供了用於深度學習設計、訓練,驗證等功能的基本模塊使用架提供的高級API,用戶可以簡單方便地實現各種深度學習以及機器算法目前,市面上有很多流行的開源框架,每個框架都有自己的用戶群和優缺點。幾乎所有的框架都支持CPU和GPU設備,使用了常見的基於設備的加速庫,如BLAS, cuBLAS、NCCL等。
  • 技術分享|輕鬆進行深度學習的11種Python庫和框架
    數據觀世界深度學習是目前人工智慧領域的核心技術之一,為了更方便地開發基於深度學習的方法以及推進深度學習技術的進步,多個世界頂級的技術團隊為深度學習開發了框架,其中大部分都是開源的並且提供了針對Python語言的開發包,無論是對於
  • 2020年深度學習框架對比速讀
    得益於Google在深度學習領域的影響力和強大的推廣能力,TensorFlow一經推出關注度就居高不下;二是由於其本身設計宏大,不僅可以為深度學習提供強力支持,靈活的數值計算核心也能廣泛應用於其他涉及大量數學運算的科學領域。
  • 通過對比深度學習各大框架的優缺點尋找最優
    開源的深度學習神經網絡正步入成熟,而現在有許多框架具備為個性化方案提供先進的機器學習和人工智慧的能力。那麼如何決定哪個開源框架最適合你呢?本文試圖通過對比深度學習各大框架的優缺點,從而為各位讀者提供一個參考。你最看好哪個深度學習框架呢?
  • TensorFlow和Caffe、MXNet、Keras等其他深度學習框架的對比
    主流深度學習框架對比深度學習研究的熱潮持續高漲,各種開源深度學習框架也層出不窮,其中包括 TensorFlow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、Theano、DeepLearning4、Lasagne、Neon 等等。
  • 深度學習:盤點全球的深度學習框架「Tensorflow、Pytorch」勝出
    深度學習在人工智慧技中的表現尤為的突出,想要學習深度學習,首先需要掌握一個有效的深度學習框架,這篇文章將盤點目前全球流行的深度學習框架,從框架的流行程度、應用場景出發,來提高大家對深度學習框架的認識。年11月發布,是一個相對比較成熟完善的深度學習框架,Tensorflow採用符號式編程。
  • 機器學習者必知的5種深度學習框架
    隨著深度學習和人工智慧在過去幾年的迅速發展,我們也看到了許多深度學習框架的引入。深度學習框架的創建目標是在GPU上高效運行深度學習系統。這些深度學習框架都依賴於計算圖的概念,計算圖定義了需要執行的計算順序。在這些框架中你使用的是一種可以建立計算圖的語言,並且語言的執行機制與其宿主語言本身的機制有所不同。
  • 深度學習框架TensorFlow和PyTorch哪款是你的菜
    前言人工智慧的飛躍式發展與機器學習算法的進步緊密相連,而深度學習則是實現機器學習的核心技術。開展深度學習相關項目,選擇合適的深度學習框架是相當重要的,合適的深度學習框架可以節省很多重複的工作。值得注意的是,當前並沒有完美的深度學習框架,因此從眾多主流的深度學習框架中選擇適合自身項目的框架並非易事。
  • 現代「羅塞塔石碑」:微軟提出深度學習框架的通用語言
    深度學習框架就像語言一樣:很多人會說英語,但每種語言都有自己的特殊性。作者為幾種不同的網絡結構創建了通用代碼,並可在多個不同的框架中使用。repo 1.0 完整版 GitHub 地址:https://github.com/ilkarman/DeepLearningFrameworks我們的想法是創建一個深度學習框架的羅塞塔石碑(Rosetta Stone):假設你很了解某個深度學習框架,你就可以幫助別人使用任何框架。你可能會遇到論文中代碼是另一個框架或整個流程都使用另一種語言的情況。
  • ...熱點】清華大學發布基於元算子和動態編譯的深度學習框架- Jittor
    深度學習技術正廣泛應用於人工智慧的各個領域,如計算機視覺、機器翻譯、自然語言處理、智慧機器人等,取得了前所未有的突破。當前,一方面,隨著深度學習新技術的出現、任務複雜度的提高,易於擴展同時保持高效的架構成為發展趨勢;另一方面,我國人工智慧產業發展迅速,急需構建自己的開源深度學習生態。
  • 深度學習框架哪家強?國產框架OneFlow做了一份測評報告
    機器之心報導 機器之心編輯部 近日,國產深度學習框架 OneFlow 發布了人工智慧方向深度學習領域的 DLPerf 測評報告。
  • 一代深度學習框架研究
    ,簡述深度學習發展歷程以及目前的挑戰,通過介紹新一代深度學習框架的特點,分析總體框架,闡述自動並行、自動微分、自動調優等技術優勢以及協同昇騰處理器的性能優勢,希望可以為深度學習技術研究人員提供參考。在本輪人工智慧浪潮中,最具價值也最具影響力的一項研究當屬深度學習理論。得益於大數據的不斷積累和計算機的飛速發展,海量數據解決了神經網絡訓練的過擬合問題,而高性能的硬體設備使模型訓練成為可能。近年來,隨著深度學習研究的不斷深入,人們目睹了谷歌AlphaGo成功擊敗人類世界圍棋冠軍以及包括無人車在內的各項智能技術的蓬勃發展,人們仿佛再一次看到了人工智慧趕超人類的希望。
  • 對比深度學習十大框架:TensorFlow 並非最好?
    2016 年已經過去,BEEVA Labs 數據分析師 Ricardo Guerrero Gomez-Ol 近日在 Medium 上發表了一篇文章,盤點了目前最流行的深度學習框架。為什麼要做這一個盤點呢?他寫道:「我常聽到人們談論深度學習——我該從哪裡開始呢?TensorFlow 是現在最流行的吧?我聽說 Caffe 很常用,但會不會太難了?
  • 深度| 對比深度學習十大框架:TensorFlow最流行但並不是最好
    選自Medium機器之心編譯參與:吳攀、朱思穎、李亞洲2016 年已經過去,BEEVA Labs 數據分析師 Ricardo Guerrero Gomez-Ol 近日在 Medium 上發表了一篇文章,盤點了目前最流行的深度學習框架。為什麼要做這一個盤點呢?他寫道:「我常聽到人們談論深度學習——我該從哪裡開始呢?TensorFlow 是現在最流行的吧?
  • 阿里雲與FaceBook宣布在深度學習框架上達成合作
    阿里雲與FaceBook宣布達成關於深度學習框架PyTorch的合作 微博@環球TECH 圖「通過PyTorch開源團隊與阿里雲智能平臺的深度合作,我們有信心顯著降低AI開發和應用的門檻,實現在各種行業裡AI的更廣泛落地。」阿里巴巴計算平臺事業部總裁賈揚清表示。
  • Keras vs PyTorch:誰是第一深度學習框架?
    【IT168 資訊】「第一個深度學習框架該怎麼選」對於初學者而言一直是個頭疼的問題。本文中,來自 deepsense.ai 的研究員給出了他們在高級框架上的答案。在 Keras 與 PyTorch 的對比中,作者還給出了相同神經網絡在不同框架中性能的基準測試結果。
  • 16個GitHub值得收藏的深度學習框架
    16個GitHub值得收藏的深度學習框架 工程師3 發表於 2018-05-10 12:13:00 深度學習是一種基於對數據進行表證學習的機器學習方法,近些年不斷發展並廣受歡迎。
  • 詳解國產原創深度學習框架,曠視 MegEgie
    總體來說曠視Brain++由深度學習框架MegEngine、深度學習雲計算平臺MegCompute、數據管理平臺MegData三部分組成。其中,Brain++ 在算法開發方面的強大能力很大程度上源於其使用的深度學習框架 MegEngine,目前曠視Brain++已在內部全員推廣使用,曠視也無需依賴TensorFlow、PyTorch等第三方深度學習框架。
  • Nature Neurosci: 神經科學的深度學習框架是什麼?
    那如果我們反過來思考,也許深度學習並沒有與神經科學背道而馳,而恰恰是觸及了當前神經科學還未開拓的領域呢?那麼我們是否可以,借鑑當前深度學習已有的規則和框架,來研究神經科學本身呢?今天分享一篇經典的文章。
  • TensorFlow VS PyTorch的深度學習框架之爭
    前言對於廣大深度學習行業從業者而言,熟練掌握一種或多種深度學習框架,是日常煉丹的必備技能之一。深度學習框架市場經歷了早期的混亂之後,逐漸形成了以 TensorFlow 和 PyTorch 兩家獨大的市場格局。