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