當前位置:
首頁 > 科技 > 深度學習框架這麼多,本文帶你全攻略

深度學習框架這麼多,本文帶你全攻略



深度學習框架這麼多,本文帶你全攻略



本文編譯自ai.icymi,該作者全面介紹了目前在GitHub上最流行的幾種深度學習框架,同時進行了詳細的對比。機器人圈希望通過此文,圈友可以加深對開源深度學習框架的理解,並在學習過程中更好地選擇適合自己的框架類型,提高效率。



深度學習框架這麼多,本文帶你全攻略


圖:Pixabay


Caffe是一種流行的視覺識別深度學習網路。


Caffe 2繼續強力支持視覺類型問題,但增加了自然語言處理、手寫識別和時間序列預測的循環神經網路(RNN)和長短期記憶網路(LSTM)。


MXNet支持深度學習架構,如卷積神經網路(CNN)和循環神經網路(RNN),包括長短期記憶網路(LTSM)。


然而,隨著Facebook最新宣布其改變航向,使Caffe 2成為主要的深入學習框架,以便在移動設備上部署深入學習。


DL4J具有豐富的深層網路架構支持:受限玻爾茲曼機(RBM)、深信度神經網路(DBN)、卷積神經網路(CNN)、循環神經網路(RNN),RNTN和長短期記憶網路(LTSM)。


開源深度學習神經網路即將到來,幾種框架均通過專有解決方案提供先進的機器學習和人工智慧的功能。如何確定哪個開源框架最適合你呢?


在「大數據-智能數據的路線圖」一文中,我描述了一套機器學習架構,它提供包括圖像、手寫、視頻、語音識別、自然語言處理和對象識別等高級功能。沒有一種完善的深度學習網路可以解決你「所有」的業務問題。希望下面的內容能夠為你的業務提供最適合目的框架的見解。


以下有關深度學習框架的內容,總結了GitHub中最流行的開源深度網路庫。排名基於開發者在GitHub收到的星星數。(數字來源於2017年5月初)


TensorFlow


深度學習框架這麼多,本文帶你全攻略



Google的TensorFlow來自早期的名為DistBelief V2的Google庫,它是作為Google Brain項目一部分而開發的專有深度網路庫。有些人形容TensorFlow是對Theano的重新設計。


當開源TensorFlow後,谷歌立即獲得了大量的關注。TensorFlow支持廣泛的功能,如圖像、手寫、語音識別、預測,以及自然語言處理。TensorFlow於2015年11月9日以Apache 2.0許可開源。


TensorFlow在2017年2月15日發布了1.0版本。此版本是八個先前版本的累積,它解決了TensorFlow很多不完整的核心功能和性能問題。以下是TensorFlow成功的性能介紹。


TensorFlow提供以下工具:


TensorFlow編程介面包括Python和C ++。隨著版本1.0的公布,將支持Java、GO、R和Haskell API的alpha版本介面。此外,TensorFlow在Google和Amazon Cloud Environment中獲得支持。


隨著 TensorFlow r0.12 版的發布,這一開源軟體庫現已支持 Windows7、10 和 Server 2016。該開源軟體庫可以在ARM架構上編譯和優化,因為它使用C ++ Eigen庫。這意味著你可以在各種伺服器或移動設備上部署經過培訓的模型,而無需實現單獨的模型解碼器或載入Python解釋器。


TensorFlow支持精細的網格層,允許用戶構建新的複雜層類型,而不用低級語言實現。子圖執行允許你在圖的任何邊緣引入和檢索自由數據的結果,這對於調試複雜的計算圖非常有幫助。


分布式TensorFlow引入了版本0.8,允許模型並行,這意味著模型的不同部分在不同的設備上可以並行訓練。

該框架正在斯坦福大學、加州大學伯克利分校、多倫多大學和優達學城(Udacity)上推出相關課程。


Caffe



深度學習框架這麼多,本文帶你全攻略



Caffe是領導Facebook AI平台工程的賈揚清的心血結晶。Caffe可能是第一個主流的行業級深度學習工具包,開創於2013年底。由於其優良的卷積模型,它是計算機視覺界最受歡迎的工具包之一,並在2014年獲得了ImageNet挑戰賽中獲得勝利。Caffe在BSD 2-Clause開源許可後發布。


速度使得Caffe成為研究實驗和商業部署的完美選擇。Caffe可以使用單個Nvidia K40 GPU每天處理超過6000萬張圖片。對於推理,速度為1毫秒/圖,對於學習過程,速度為4毫秒/圖,最新版本的庫的速度更快。


Caffe是基於C++的,可以在各種設備上編譯。它是跨平台的,包括一個Windows的埠。Caffe支持C ++、Matlab和Python的編程介面。Caffe擁有一個龐大的用戶社區,為自己的深層網路存儲庫(稱為「Model Zoo」)做出貢獻。AlexNet和GoogleNet是社區可用的兩種流行的用戶網路。


Caffe是視覺識別的流行深度學習網路。但是,Caffe不支持像TensorFlow,CNTK和Theano那樣的細粒度網路層。構建複合層類型必須以低級語言完成。由於其傳統的架構,它對常規網路和語言建模的支持,總體上很差。


Caffe 2



深度學習框架這麼多,本文帶你全攻略


Facebook的賈揚清和他的團隊正在研究Caffe 2。在2017年4月18日,Facebook根據BSD許可協議開源了Caffe 2。Caffe 2與Caffe有何不同?Caffe 2更側重於模塊化和卓越的移動和大規模部署。像TensorFlow一樣,Caffe 2將使用C ++ Eigen庫來支持ARM架構。


Caffe模型可以輕鬆地轉換為具有實用程序腳本的Caffe 2模型。Caffe設計選擇使其成為處理視覺類型問題的理想選擇。Caffe 2繼續強力支持視覺類型問題,但增加了自然語言處理、手寫識別,以及時間序列預測的循環神經網路(RNN)和長短期記憶網路(LSTM)。


希望Caffe 2在不久的將來會超越Caffe,因為深度學習社區中大眾所熱捧。


CNTK



深度學習框架這麼多,本文帶你全攻略



Microsoft Cognitive Toolkit(CNTK)是一種深度神經網路,最初是為了提高語音識別而開發的。CNTK支持RNN和CNN類型的神經模型,使其成為處理圖像、手寫和語音識別問題的最佳候選。CNTK支持使用Python或C++編程介面的64位Linux和Windows操作系統,並根據MIT許可發布。


CNTK與TensorFlow和Theano的組成相似,其網路被指定為向量運算的符號圖,如矩陣的加法/乘法或卷積。此外,像TensorFlow和Theano一樣,CNTK允許構建網路層的細粒度。構建塊(操作)的細粒度允許用戶創造新的複合層類型,而不用低級語言實現(如Caffe)。


像Caffe一樣,CNTK也是基於C++的、具有跨平台的CPU/GPU支持。 CNTK在Azure GPU Lab提供了最高效的分布式計算性能。目前,CNTK對ARM架構的缺乏支持,限制了其在移動設備上的功能。

MXNet



深度學習框架這麼多,本文帶你全攻略



MXNet(發音為「mix-net」)起源於卡內基梅隆大學和華盛頓大學。MXNet是一個功能齊全,可編程和可擴展的深入學習框架,支持最先進的深入學習模式。MXNet提供了混合編程模型(命令式和聲明式)和大量編程語言的代碼(包括Python、C++、R、Scala、Julia、Matlab和JavaScript)的能力。2017年1月30日,MXNet進入Apache基金會,成為Apache的孵化器項目。


MXNet支持深度學習架構,如卷積神經網路(CNN)和循環神經網路(RNN),包括長短期記憶網路(LTSM)。該框架為成像、手寫、語音識別,預測和自然語言處理提供了出色的功能。有些人稱MXNet是世界上最好的圖像分類器。


MXNet具有強大的技術,包括擴展能力,如GPU並行性和內存鏡像、編程器開發速度和可移植性。此外,MXNet與Apache Hadoop YARN(一種通用的,分布式的應用程序管理框架)集成,使MXNet成為TensorFlow的競爭對手。


MXNet的區別就是支持生成對抗網路(GAN)模型的唯一深層網路框架。


另一個區別是,亞馬遜首席技術官 Werner Vogels選擇公開支持MXNet:「今天,我們宣布MXNet將成為我們的深入學習框架。」Vogel接著說:「我們計劃在現有和即將推出的新服務中使用它「。蘋果公司在2016年收購Graphlab / Dato / Turi之後也傳聞使用它。


Torch



深度學習框架這麼多,本文帶你全攻略


Torch由Facebook的Ronan Collobert和SoumithChintala、Twitter的Clement Farabet(現在在Nvidia),以及Google Deep Mind的KorayKavukcuoglu共同開發。Torch的主要貢獻者是Facebook,Twitter和Nvidia。Torch獲得BSD 3開源許可。然而,隨著Facebook最新宣布其改變航向,使Caffe 2成為主要的深入學習框架,以便在移動設備上部署深入的學習。


Torch以Lua編程語言實現。 Lua不是主流語言,只有在你的員工熟練掌握之前,才會影響開發人員的整體效率。


Torch缺乏TensorFlow的分布式應用程序管理框架或者在MXNet或Deeplearning4J中支持YARN。缺乏大量的API編程語言也限制了開發人員。


DL4J



深度學習框架這麼多,本文帶你全攻略



Deeplearning4J(DL4J)是由Java和Scala編寫的Apache 2.0授權的開放源碼,分布式神經網路庫。DL4J是SkyMind的Adam Gibson的創意,是唯一與Hadoop和Spark集成的商業級深度學習網路,它協調多個主機線程。DL4J是獨特的深度學習框架,因為它使用Map-Reduce來訓練網路,同時依靠其他庫來執行大型矩陣操作。


DL4J框架內置GPU支持,這是訓練過程的重要功能,並支持YARN、Hadoop分布式應用程序管理框架。DL4J支持豐富的深層網路架構:RBM、DBN、卷積神經網路(CNN)、循環神經網路(RNN)、RNTN,和長短期記憶網路(LTSM)。DL4J還包括名為Canova的矢量庫的支持。


DL4J在Java中開源,本質上就比Python快。它與Caffe一樣快,用於使用多個GPU的非平凡的圖像識別任務。該框架為圖像識別,欺詐檢測和自然語言處理提供了出色的功能。

Theano



深度學習框架這麼多,本文帶你全攻略



Theano由蒙特利爾大學學習演算法學院(MILA)積極維護。以Theano的創始人YoshuaBengio為首,該實驗室擁有約30-40名教師和學生,是深入學習研究的重要貢獻者。Theano支持快速開發高效的機器學習演算法,並通過BSD許可發布。


Theano架構相當簡單,整個代碼庫和介面是Python,其中C/CUDA代碼被打包成Python字元串。對一個開發者來說這很難駕馭、調試和重構。


Theano開創了使用符號圖來編程網路的趨勢。Theano的符號API支持循環控制,即所謂的掃描,這使得實現RNN更容易、更高效。


Theano缺乏分布式應用程序管理框架,只支持一種編程開發語言。Theano是學術研究的一個很好的工具,在一個CPU上比TensorFlow更有效地運行。然而,在開發和支持大型分布式應用程序時,可能會遇到挑戰。


開源或專有


隨著深入學習的不斷成熟,你將會發現TensorFlow,Caffe 2和MXNet之間的競爭是預料之中的。隨著軟體供應商開發具有最先進的智能產品,從而在你提供的數據中獲得最大收益。風險是,你會購買一種產品,是建立在專有基礎上的,還是建立在開源基礎上的?有了開放源碼,你會很難選擇哪個深入學習框架是最適合的。在專有的方法中,你的退出策略是什麼?我們不應以短期來看,因為,人工智慧的回報在於其學習能力的成熟度。


來源:機器人圈

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器人圈 的精彩文章:

原來矽谷大神們是這樣看待「人工智慧」的,你呢?

TAG:機器人圈 |

您可能感興趣

做深度學習這麼多年還不會挑GPU?這兒有份選購全攻略
這裡有一篇深度強化學習勸退文
深度學習簡單框架
半導體產業這樣看深度學習
帶好這份深度游攻略,清宮旅行不迷路
深度學習很難?一文讀懂深度學習!
什麼是深度學習?
不懂高數,所以我用這本書入門深度學習
深度學習之對抗樣本
深度學習技術其實沒那麼美好
這是我見過最全最贊的日本深度游攻略了!
什麼是深度強化學習:人工智慧和深度學習的下一步
告別選擇困難症,我來帶你剖析這些深度學習框架基本原理
帶你用深度學習虛擬機進行文本遷移學習
家長多帶孩子去這三個地方,孩子想變壞都難!深度好文
深度學習的一些概念分享
深度學習第8期:深度學習的常見框架
呵,我復現一篇深度強化學習論文容易嗎
這是一份「不正經」的深度學習簡述
一文簡述深度學習優化方法——梯度下降