通過對(duì)比深度學(xué)習(xí)各大框架的優(yōu)缺點(diǎn)尋找最優(yōu)
開源的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)正步入成熟,而現(xiàn)在有許多框架具備為個(gè)性化方案提供先進(jìn)的機(jī)器學(xué)習(xí)和人工智能的能力。那么如何決定哪個(gè)開源框架最適合你呢?本文試圖通過對(duì)比深度學(xué)習(xí)各大框架的優(yōu)缺點(diǎn),從而為各位讀者提供一個(gè)參考。你最看好哪個(gè)深度學(xué)習(xí)框架呢?
現(xiàn)在的許多機(jī)器學(xué)習(xí)框架都可以在圖像識(shí)別、手寫識(shí)別、視頻識(shí)別、語音識(shí)別、目標(biāo)識(shí)別和自然語言處理等許多領(lǐng)域大展身手,但卻并沒有一個(gè)完美的深度神經(jīng)網(wǎng)絡(luò)能解決你的所有業(yè)務(wù)問題。所以,本文希望下面的圖表和講解能夠提供直觀方法,幫助讀者解決業(yè)務(wù)問題。
下圖總結(jié)了在 GitHub 中最受歡迎的開源深度學(xué)習(xí)框架排名,該排名是基于各大框架在 GitHub 里的收藏?cái)?shù),這個(gè)數(shù)據(jù)由 Mitch De Felice 在 2017 年 5 月初完成。
TensorFlow
TensorFlow 最開始是由谷歌一個(gè)稱之為 DistBelief V2 的庫發(fā)展而來,它是一個(gè)公司內(nèi)部的深度神經(jīng)網(wǎng)絡(luò)庫,隸屬于谷歌大腦項(xiàng)目。有一些人認(rèn)為 TensorFlow 是由 Theano 徹底重構(gòu)而來。
谷歌開源 TensorFlow 后,立即吸引了一大批開發(fā)愛好者。TensorFlow 可以提供一系列的能力,例如圖像識(shí)別、手寫識(shí)別、語音識(shí)別、預(yù)測以及自然語言處理等。2015 年 11 月 9 號(hào),TensorFlow 在 Apache 2.0 協(xié)議下開源發(fā)布。
TensorFlow 1.0 版本已于 2017 年 2 月 15 日發(fā)布,這個(gè)版本是之前 8 個(gè)版本的優(yōu)化改進(jìn)版,其致力于解決 Tensorflow 之前遇到的一系列問題以及完善一些核心能力。TensorFlow 獲得成功的因素有:
TensorFlow 提供了如下工具:
TensorBoard:對(duì)于網(wǎng)絡(luò)模型和效果來說是一個(gè)設(shè)計(jì)優(yōu)良的可視化工具。
TensorFlow Serving:可以保持相同的服務(wù)器架構(gòu)和 API,使得部署新算法和實(shí)驗(yàn)變得簡單。TensorFlow Serving 提供了與 TensorFlow 模型開箱即用的整合,但同時(shí)還能很容易擴(kuò)展到其它類型的模型和數(shù)據(jù)。
TensorFlow 編程接口支持 Python 和 C++。隨著 1.0 版本的公布,Java、Go、R 和 Haskell API 的 alpha 版本也將被支持。此外,TensorFlow 還可在谷歌云和亞馬孫云中運(yùn)行。
隨著 0.12 版本的發(fā)行,TensorFlow 將支持 Windows 7、 Windows 10 和 Server 2016。由于 TensorFlow 使用 C++ Eigen 庫,所以庫可在 ARM 架構(gòu)上編譯和優(yōu)化。這也就意味著你可以在各種服務(wù)器和移動(dòng)設(shè)備上部署你的訓(xùn)練模型,而無需執(zhí)行單獨(dú)的模型解碼器或者加載 Python 解釋器。
TensorFlow 支持細(xì)粒度的網(wǎng)格層,而且允許用戶在無需用低級(jí)語言實(shí)現(xiàn)的情況下構(gòu)建新的復(fù)雜的層類型。子圖執(zhí)行操作允許你在圖的任意邊緣引入和檢索任意數(shù)據(jù)的結(jié)果。這對(duì)調(diào)試復(fù)雜的計(jì)算圖模型很有幫助。
分布式 TensorFlow(Distributed TensorFlow)被加進(jìn)了 0.8 版本,它允許模型并行,這意味著模型的不同部分可在不同的并行設(shè)備上被訓(xùn)練。
自 2016 年 3 月,斯坦福大學(xué)、伯克利大學(xué)、多倫多大學(xué)和 Udacity 都將這個(gè)框架作為一個(gè)免費(fèi)的大規(guī)模在線開放課程進(jìn)行教授。
TensorFlow 的缺點(diǎn)如下:
TensorFlow 的每個(gè)計(jì)算流都必須構(gòu)造為一個(gè)靜態(tài)圖,且缺乏符號(hào)性循環(huán)(symbolic loops),這會(huì)帶來一些計(jì)算困難。
沒有對(duì)視頻識(shí)別很有用的三維卷積(3-D convoluTIon)。
盡管 TensorFlow 現(xiàn)在比起始版本(v0.5)快了 58 倍,,但在執(zhí)行性能方面依然落后于競爭對(duì)手。
CaffeCaffe 是賈揚(yáng)清的杰作,目前他在 Facebook AI 平臺(tái)擔(dān)任首席工程師。Caffe 可能是自 2013 年底以來第一款主流的工業(yè)級(jí)深度學(xué)習(xí)工具包。正因?yàn)?Caffe 優(yōu)秀的卷積模型,它已經(jīng)成為計(jì)算機(jī)視覺界最流行的工具包之一,并在 2014 年的 ImageNet 挑戰(zhàn)賽中一舉奪魁。Caffe 遵循 BSD 2-Clause 協(xié)議。
Caffe 的快速使其完美應(yīng)用于實(shí)驗(yàn)研究和商業(yè)部署。Caffe 可在英偉達(dá)單個(gè) K40 GPU 上每天處理 6000 萬張圖像。這大概是 1 毫秒預(yù)測一張圖片,4 毫秒學(xué)習(xí)一張圖片的速度,而且最新的版本處理速度會(huì)更快。
Caffe 基于 C++,因此可在多種設(shè)備上編譯。它跨平臺(tái)運(yùn)行,并包含 Windows 端口。Caffe 支持 C++、Matlab 和 Python 編程接口。Caffe 擁有一個(gè)龐大的用戶社區(qū),人們?cè)谄渲袨楸环Q為「Model Zoo(https://github.com/BVLC/caffe/wiki/Model-Zoo)」的深度網(wǎng)絡(luò)庫做貢獻(xiàn)。AlexNet 和 GoogleNet 就是社群用戶構(gòu)建的兩個(gè)流行網(wǎng)絡(luò)。





