當前位置:首頁 > 智能硬件 > 人工智能AI
[導(dǎo)讀] 開源的深度學(xué)習神經(jīng)網(wǎng)絡(luò)正步入成熟,而現(xiàn)在有許多框架具備為個性化方案提供先進的機器學(xué)習和人工智能的能力。那么如何決定哪個開源框架最適合你呢?本文試圖通過對比深度學(xué)習各大框架的優(yōu)缺點,從而為各位讀者

開源的深度學(xué)習神經(jīng)網(wǎng)絡(luò)正步入成熟,而現(xiàn)在有許多框架具備為個性化方案提供先進的機器學(xué)習和人工智能的能力。那么如何決定哪個開源框架最適合你呢?本文試圖通過對比深度學(xué)習各大框架的優(yōu)缺點,從而為各位讀者提供一個參考。你最看好哪個深度學(xué)習框架呢?

現(xiàn)在的許多機器學(xué)習框架都可以在圖像識別、手寫識別、視頻識別、語音識別、目標識別和自然語言處理等許多領(lǐng)域大展身手,但卻并沒有一個完美的深度神經(jīng)網(wǎng)絡(luò)能解決你的所有業(yè)務(wù)問題。所以,本文希望下面的圖表和講解能夠提供直觀方法,幫助讀者解決業(yè)務(wù)問題。

下圖總結(jié)了在 GitHub 中最受歡迎的開源深度學(xué)習框架排名,該排名是基于各大框架在 GitHub 里的收藏數(shù),這個數(shù)據(jù)由 Mitch De Felice 在 2017 年 5 月初完成。

TensorFlow

地址: https://www.tensorflow.org/

TensorFlow 最開始是由谷歌一個稱之為 DistBelief V2 的庫發(fā)展而來,它是一個公司內(nèi)部的深度神經(jīng)網(wǎng)絡(luò)庫,隸屬于谷歌大腦項目。有一些人認為 TensorFlow 是由 Theano 徹底重構(gòu)而來。

谷歌開源 TensorFlow 后,立即吸引了一大批開發(fā)愛好者。TensorFlow 可以提供一系列的能力,例如圖像識別、手寫識別、語音識別、預(yù)測以及自然語言處理等。2015 年 11 月 9 號,TensorFlow 在 Apache 2.0 協(xié)議下開源發(fā)布。

TensorFlow 1.0 版本已于 2017 年 2 月 15 日發(fā)布,這個版本是之前 8 個版本的優(yōu)化改進版,其致力于解決 Tensorflow 之前遇到的一系列問題以及完善一些核心能力。TensorFlow 獲得成功的因素有:

TensorFlow 提供了如下工具:

TensorBoard:對于網(wǎng)絡(luò)模型和效果來說是一個設(shè)計優(yōu)良的可視化工具。

TensorFlow Serving:可以保持相同的服務(wù)器架構(gòu)和 API,使得部署新算法和實驗變得簡單。TensorFlow Serving 提供了與 TensorFlow 模型開箱即用的整合,但同時還能很容易擴展到其它類型的模型和數(shù)據(jù)。

TensorFlow 編程接口支持 PythonC++。隨著 1.0 版本的公布,Java、Go、R 和 Haskell API 的 alpha 版本也將被支持。此外,TensorFlow 還可在谷歌云和亞馬孫云中運行。

隨著 0.12 版本的發(fā)行,TensorFlow 將支持 Windows 7、 Windows 10 和 Server 2016。由于 TensorFlow 使用 C++ Eigen 庫,所以庫可在 ARM 架構(gòu)上編譯和優(yōu)化。這也就意味著你可以在各種服務(wù)器和移動設(shè)備上部署你的訓(xùn)練模型,而無需執(zhí)行單獨的模型解碼器或者加載 Python 解釋器。

TensorFlow 支持細粒度的網(wǎng)格層,而且允許用戶在無需用低級語言實現(xiàn)的情況下構(gòu)建新的復(fù)雜的層類型。子圖執(zhí)行操作允許你在圖的任意邊緣引入和檢索任意數(shù)據(jù)的結(jié)果。這對調(diào)試復(fù)雜的計算圖模型很有幫助。

分布式 TensorFlow(Distributed TensorFlow)被加進了 0.8 版本,它允許模型并行,這意味著模型的不同部分可在不同的并行設(shè)備上被訓(xùn)練。

自 2016 年 3 月,斯坦福大學(xué)、伯克利大學(xué)、多倫多大學(xué)和 Udacity 都將這個框架作為一個免費的大規(guī)模在線開放課程進行教授。

TensorFlow 的缺點如下:

TensorFlow 的每個計算流都必須構(gòu)造為一個靜態(tài)圖,且缺乏符號性循環(huán)(symbolic loops),這會帶來一些計算困難。

沒有對視頻識別很有用的三維卷積(3-D convolution)。

盡管 TensorFlow 現(xiàn)在比起始版本(v0.5)快了 58 倍,,但在執(zhí)行性能方面依然落后于競爭對手。

Caffe

地址: http://caffe.berkeleyvision.org/

Caffe 是賈揚清的杰作,目前他在 Facebook AI 平臺擔任首席工程師。Caffe 可能是自 2013 年底以來第一款主流的工業(yè)級深度學(xué)習工具包。正因為 Caffe 優(yōu)秀的卷積模型,它已經(jīng)成為計算機視覺界最流行的工具包之一,并在 2014 年的 ImageNet 挑戰(zhàn)賽中一舉奪魁。Caffe 遵循 BSD 2-Clause 協(xié)議。

Caffe 的快速使其完美應(yīng)用于實驗研究和商業(yè)部署。Caffe 可在英偉達單個 K40 GPU 上每天處理 6000 萬張圖像。這大概是 1 毫秒預(yù)測一張圖片,4 毫秒學(xué)習一張圖片的速度,而且最新的版本處理速度會更快。

Caffe 基于 C++,因此可在多種設(shè)備上編譯。它跨平臺運行,并包含 Windows 端口。Caffe 支持 C++、Matlab 和 Python 編程接口。Caffe 擁有一個龐大的用戶社區(qū),人們在其中為被稱為「Model Zoo(https://github.com/BVLC/caffe/wiki/Model-Zoo)」的深度網(wǎng)絡(luò)庫做貢獻。AlexNet 和 GoogleNet 就是社群用戶構(gòu)建的兩個流行網(wǎng)絡(luò)。

雖然 Caffe 在視頻識別領(lǐng)域是一個流行的深度學(xué)習網(wǎng)絡(luò),但是 Caffe 卻不能像 TensorFlow、CNTK 和 Theano 那樣支持細粒度網(wǎng)絡(luò)層。構(gòu)建復(fù)雜的層類型必須以低級語言完成。由于其遺留架構(gòu),Caffe 對循環(huán)網(wǎng)絡(luò)和語言建模的支持總體上很薄弱。

Caffe2

地址: https://caffe2.ai/

目前,賈揚清和他在 Facebook 的團隊正在開發(fā)新一代框架 Caffe2。今年 4 月 18 日,F(xiàn)acebook 開源了 Caffe2。Caffe 2 與 Caffe 的區(qū)別是什么?Caffe2 更注重模塊化,在移動端、大規(guī)模部署上表現(xiàn)卓越。如同 TensorFlow,Caffe2 使用 C++ Eigen 庫,支持 ARM 架構(gòu)。

用一個實用腳本,Caffe 上的模型可輕易地被轉(zhuǎn)變到 Caffe2 上。Caffe 設(shè)計的選擇使得它處理視覺類型的難題時很完美。Caffe2 延續(xù)了它對視覺類問題的支持,且增加了對自然語言處理、手寫識別、時序預(yù)測有幫助的 RNN 和 LSTM 支持。

期待不久之后能看到 Caffe 2 超越 Caffe,就像它宣稱的那樣在深度學(xué)習社區(qū)流行。

在本周三英偉達推出 Volta 架構(gòu)的第一塊加速卡 Tesla V100 后,Caffe 的開發(fā)者第一時間展示了 Tesla V100 在 Caffe2 上運行 ResNet-50 的評測。數(shù)據(jù)顯示在新框架和新硬件的配合下,模型每秒鐘可以處理 4100 張圖片。

鏈接: https://caffe2.ai/blog/2017/05/10/caffe2-adds-FP16-training-support.html

CNTK

鏈接: https://github.com/Microsoft/CNTK/wiki

微軟的 CNTK(Microsoft CogniTIve Toolkit)最初是面向語音識別的框架。CNTK 支持 RNN 和 CNN 類型的網(wǎng)絡(luò)模型,從而在處理圖像、手寫字體和語音識別問題上,它是很好的選擇。使用 Python 或 C++ 編程接口,CNTK 支持 64 位的 Linux 和 Windows 系統(tǒng),在 MIT 許可證下發(fā)布。

與 TensorFlow 和 Theano 同樣,CNTK 使用向量運算符的符號圖(symbolic graph)網(wǎng)絡(luò),支持如矩陣加/乘或卷積等向量操作。此外,像 TensorFlow 和 Theano 一樣,CNTK 有豐富的細粒度的網(wǎng)絡(luò)層構(gòu)建。構(gòu)建塊(操作)的細粒度使用戶不需要使用低層次的語言(如 Caffe)就能創(chuàng)建新的復(fù)雜的層類型。

CNTK 也像 Caffe 一樣基于 C++ 架構(gòu),支持跨平臺的 CPU/GPU 部署。CNTK 在 Azure GPU Lab 上顯示出最高效的分布式計算性能。目前,CNTK 不支持 ARM 架構(gòu),這限制了其在移動設(shè)備上的功能。

MXNet

鏈接: http://mxnet.io/

MXNet(發(fā)音為 mix-net)起源于卡內(nèi)基梅隆大學(xué)和華盛頓大學(xué)的實驗室。MXNet 是一個全功能、可編程和可擴展的深度學(xué)習框架,支持最先進的深度學(xué)習模型。MXNet 支持混合編程模型(命令式和聲明式編程)和多種編程語言的代碼(包括 Python、C++、R、Scala、Julia、Matlab 和 JavaScript)。2017 年 1 月 30 日,MXNet 被列入 Apache Incubator 開源項目。

MXNet 支持深度學(xué)習架構(gòu),如卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和其包含的長短時間記憶網(wǎng)絡(luò)(LTSM)。該框架為圖像、手寫文字和語音的識別和預(yù)測以及自然語言處理提供了出色的工具。有些人稱 MXNet 是世界上最好的圖像分類器。

MXNet 具有可擴展的強大技術(shù)能力,如 GPU 并行和內(nèi)存鏡像、快速編程器開發(fā)和可移植性。此外,MXNet 與 Apache Hadoop YARN(一種通用分布式應(yīng)用程序管理框架)集成,使 MXNet 成為 TensorFlow 有力的競爭對手。

MXNet 不僅僅只是深度網(wǎng)絡(luò)框架,它的區(qū)別在于支持生成對抗網(wǎng)絡(luò)(GAN)模型。該模型啟發(fā)自實驗經(jīng)濟學(xué)方法的納什均衡。

Torch

鏈接: http://torch.ch/

Torch 由 Facebook 的 Ronan Collobert 和 Soumith Chintala,Twitter 的 Clement Farabet(現(xiàn)任職于英偉達),以及 Google DeepMind 的 Koray Kavukcuoglu 共同開發(fā)。很多科技巨頭(如 Facebook、Twitter 和英偉達)都使用定制版的 Torch 用于人工智能研究,這大大促進了 Torch 的開發(fā)。Torch 是 BSD 3 協(xié)議下的開源項目。然而,隨著 Facebook 對 Caffe 2 的研究,以及其對移動設(shè)備的支持,Caffe 2 正成為主要的深度學(xué)習框架。

Torch 的編程語言為 Lua。Lua 不是主流語言,在開發(fā)人員沒有熟練掌握 Lua 之前,使用 Torch 很難提高開發(fā)的整體生產(chǎn)力。

Torch 缺乏 TensorFlow 的分布式應(yīng)用程序管理框架,也缺乏 MXNet 和 Deeplearning4J 對 YARN 的支持。缺乏多種編程語言的 API 也限制了開發(fā)人員。

PyTorch

地址: http://pytorch.org/

PyTorch 由 Adam Paszke、Sam Gross 與 Soumith Chintala 等人牽頭開發(fā),其成員來自 Facebook FAIR 和其他多家實驗室。它是一種 Python 優(yōu)先的深度學(xué)習框架,在今年 1 月被開源,提供了兩種高層面的功能:

使用強大的 GPU 加速的 Tensor 計算(類似 numpy)

構(gòu)建于基于 tape 的 autograd 系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)

該框架結(jié)合了 Torch7 高效靈活的 GPU 加速后端庫與直觀的 Python 前端,它的特點是快速成形、代碼可讀和支持最廣泛的深度學(xué)習模型。如有需要,你可以復(fù)用你最喜歡的 Python 軟件包(如 numpy、scipy 和 Cython)來擴展 PyTorch。該框架因為其靈活性和速度,在推出以后迅速得到了開發(fā)者和研究人員的青睞。隨著 GitHub 上越來越多代碼的出現(xiàn),PyTorch 作為新框架缺乏資源的問題已經(jīng)得以緩解。

Deeplearning4J

地址: https://deeplearning4j.org/

Deeplearning4J(DL4J)是用 Java 和 Scala 編寫的 Apache 2.0 協(xié)議下的開源、分布式神經(jīng)網(wǎng)絡(luò)庫。DL4J 最初由 SkyMind 公司的 Adam Gibson 開發(fā),是唯一集成了 Hadoop 和 Spark 的商業(yè)級深度學(xué)習網(wǎng)絡(luò),并通過 Hadoop 和 Spark 協(xié)調(diào)多個主機線程。DL4J 使用 Map-Reduce 來訓(xùn)練網(wǎng)絡(luò),同時依賴其它庫來執(zhí)行大型矩陣操作。

DL4J 框架支持任意芯片數(shù)的 GPU 并行運行(對訓(xùn)練過程至關(guān)重要),并支持 YARN(Hadoop 的分布式應(yīng)用程序管理框架)。DL4J 支持多種深度網(wǎng)絡(luò)架構(gòu):RBM、DBN、卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、RNTN 和長短時間記憶網(wǎng)絡(luò)(LTSM)。DL4J 還對矢量化庫 Canova 提供支持。

DL4J 使用 Java 語言實現(xiàn),本質(zhì)上比 Python 快。在用多個 GPU 解決非平凡圖像(non-trivial image)識別任務(wù)時,它的速度與 Caffe 一樣快。該框架在圖像識別、欺詐檢測和自然語言處理方面的表現(xiàn)出眾。

Theano

地址: http://deeplearning.net/software/theano/

Theano 由蒙特利爾大學(xué)算法學(xué)習人工智能實驗室(MILA)維護。以 Theano 的創(chuàng)始人 Yoshua Bengio 為首,該實驗室是深度學(xué)習研究領(lǐng)域的重要貢獻者,擁有約 30 至 40 名學(xué)生和教師。Theano 支持快速開發(fā)高效的機器學(xué)習算法,在 BSD 協(xié)議下發(fā)布。

Theano 的架構(gòu)如同一個黑箱;整個代碼庫和接口使用 Python,其中 C/CUDA 代碼被打包成 Python 字符串。這使得開發(fā)人員很難導(dǎo)航(navigate)、調(diào)試和重構(gòu)。

Theano 開創(chuàng)了將符號圖用于神經(jīng)網(wǎng)絡(luò)編程的趨勢。Theano 的符號式 API 支持循環(huán)控制(即 scan),這使得實現(xiàn) RNN 容易且高效。

Theano 缺乏分布式應(yīng)用程序管理框架,只支持一種編程開發(fā)語言。Theano 是很好的學(xué)術(shù)研究工具,在單個 CPU 上運行的效率比 TensorFlow 更有效。然而,在開發(fā)和支持大型分布式應(yīng)用程序時,使用 Theano 可能會遇到挑戰(zhàn)。

開源 vs. 非開源

隨著深度學(xué)習的不斷發(fā)展,我們必將看到 TensorFlow、Caffe 2 和 MXNet 之間的不斷競爭。另一方面,軟件供應(yīng)商也會開發(fā)具有先進人工智能功能的產(chǎn)品,從數(shù)據(jù)中獲取最大收益。風險:你將購買非開源的人工智能產(chǎn)品還是使用開源框架?有了開源工具,確定最適合的深度學(xué)習框架也是兩難問題。在非開源產(chǎn)品中,你是否準備了退出策略?人工智能的收益會隨著工具的學(xué)習能力的進步而上升,所以看待這些問題都需要用長遠的觀點。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉