【智能之心】七大深度學習工具

目前流行的幾種工具包括:Theano、TensorFlow、Torch、Caffe、MXNet、Neon 和 CNTK。

開始一個深度學習項目時,最好使用一個支持所會語言的工具。比如 Caffe(C++)和 Torch(Lua)只能支持有限的語言(最近,隨著PyTorch 的出現,情況有所改觀)。所以如果你希望選用上述兩個工具,建議事先熟悉 C++或 Lua 語言。相比之下,TensorFlow 與 MXNet 具有豐富的多語言支持,即使你對 C++感到陌生也可以使用它們。GitHub 社區的參與度不僅可以用于準確地評價不同工具的開發水平,而且還是在搜索 StackOverflow 或 repo 的 Git Issues 時能否快速解決問題的參考性指標。作為谷歌提供的框架,TensorFlow 理所當然地在教程,資源,開發者和社區貢獻者的數量上遙遙領先。

卷積神經網絡(CNN)經常被用于圖像識別、推薦引擎和自然語言識別等方向的應用。CNN 由一組多層的神經網絡組成,在運行時會將輸入的數據進行預定義分類的評分。CNN 也可用于回歸分析,例如構成自動駕駛汽車中有關轉向角的模型。在橫評中,我們評價一種工具的 CNN 建模能力考慮到以下幾個特性:定義模型的機會空間、預構建層的可用性、以及可用于連接這些層的工具和功能。我們發現,Theano,Caffe 和 MXNet 都有很好的 CNN 建模能力。其中,TensorFlow 因為易于建立的 Inception V3 模型,Torch 因為其豐富的 CNN 資源——包括易于使用的時間卷積集使得這兩種框架在 CNN 建模能力上脫穎而出。

RNN 建模能力。循環神經網絡(RNN)常用于語音識別,時間序列預測,圖像字幕和其他需要處理順序信息的任務。由于預建的 RNN 模型不如 CNN 數量多,因此,如果你已經有一個 RNN 深度學習項目,優先考慮舊 RNN 模型是在哪種框架里實現的最重要。目前,Caffe 上的 RNN 資源最少,而 Microsoft 的 CNTK 和 Torch 有豐富的 RNN 教程和預構建模型。當然,最流行的 TensorFlow 中也有一些 RNN 資源,TFLearn 和 Keras 中更有很多使用 TensorFlow 的 RNN 示例。

架構。為在特定框架中構建和訓練新模型,易于使用和模塊化的前端是至關重要的。TensorFlow,Torch 和 MXNet 都有直觀而模塊化的架構,讓開發相對變得簡單。相比之下,我們在 Caffe 這樣的框架上需要進行大量的工作才能創建一個新層。另外我們發現在開發過程中,因為有 TensorBoard web GUI 等應用的存在,TensorFlow 極易在訓練中和訓練后進行 debug 和監控。

速度。Torch 和 Nervana 具有開源卷積神經網絡基準測試的最佳性能。TensorFlow 的性能在大多數測試中是具有競爭力的,而 Caffe 和 Theano 稍稍落后。微軟聲稱他們的 CNTK 在一些 RNN 訓練任務中有最快的速度。在另一項對比 Theano、Torch 和 TensorFlow 的 RNN 性能的研究中,Theano 是其中最快的。

多 GPU 支持。大多數深度學習應用都需要用到巨量的浮點運算(FLOP)。例如,百度的 DeepSpeech 識別模型需要 10s ExaFLOPs 用于訓練,這是大于 10e18 的計算量。考慮到目前英偉達 Pascal 架構的 TitanX 等頂級顯卡可以每秒執行 10e9 FLOP。因此,假如需要在大型數據集上訓練一個新模型——用單 GPU 機器的話——可能會需要一個星期之久。為了減少構建模型所需的時間,我們需要使用多 GPU 并聯的方式組建自己的機器。幸運的是,上述大部分架構都可以很好地支持多 GPU 運算。其中,據報道 MXNet 有著最好的多 GPU 優化引擎。(英偉達3月15日發布了基于其最新的 Pascal 架構的新一代 Quadro 系列顯卡。新的芯片組可將桌面工作站轉變成為具有突破性能力的超級計算機,為不同行業的專業任務提供保障。新 Quadro 芯片組可以為設計、工程和有關虛擬現實以及深度學習的各種領域提供硬件支持。這些顯卡可以構建企業級視覺計算平臺,為用戶簡化設計和模擬工作流難度,與上一代產品相比,新顯卡速度最多可以提升兩倍。)

Keras 兼容性。Keras 是一個用于快速構建深度學習原型的高級庫。我們在實踐中發現,它是數據科學家應用深度學習的好幫手。Keras 目前支持兩種后端框架:TensorFlow 與 Theano,而且 Keras 再過不久就會成為 TensorFlow 的默認 API。盡管如此,Keras 的作者表示,這一高級庫在未來仍會作為支持多種框架的前端存在。

如果你想要開始深度學習,你應該從評估自己的團隊技能和業務需求開始。例如,如果一個以 Python 為中心的團隊想開發圖像識別的應用程序,你應該使用 TensorFlow,因為它有豐富的資源,較好性能和完整的原型工具。如果一個有 Lua 能力的團隊希望將 RNN 大規模應用到生產環境中去,他們則會受益于 Torch 的高速和強大的 RNN 建模能力。未來將繼續討論在更大規模的應用中這些工具的表現。這些挑戰包括多機并聯時的多 GPU 優化,多種開源庫的兼容性,如 CMU Sphinx 和 Kaldi 等。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容