7種深度學習工具介紹

shenmanli發表於2017-08-08
1)TensorFlow


TensorFlow是Google基於DistBelief進行研發的第二代人工智慧學習系統,其命名來源於本身的執行原理。
–Tensor(張量)意味著N維陣列,Flow(流)意味著基於資料流圖的計算,TensorFlow為張量從影像的一端流動到另一端的計算過程。
–TensorFlow是將複雜的資料結構,傳輸至人工智慧神經網中進行分析和處理過程的系統。
TensorFlow表達了高層次的機器學習計算,可被用於語音識別或影像識別等多項機器深度學習領域。
–TensorFlows對2011年開發的深度學習基礎架構DistBelief進行了各方面的改進,可在小到一部智慧手機,大到數千臺資料中心伺服器的各種裝置上執行。
–TensorFlow完全開源。

2)Caffe


Caffe是一個清晰而高效的深度學習框架,作者是畢業於UC Berkeley的賈揚清。
–Caffe的全稱應該是Convolutional Architecture for Fast Feature Embedding,
–它是開源的,核心語言是C++,支援命令列、Python和MATLAB介面
–既可以在CPU上執行也可以在GPU上執行。License是BSD 2-Clause。
–Caffe可以應用在視覺、語音識別、機器人、神經科學和天文學領域。


3)Torch


Torch已有十多年,是一個廣泛支援機器學習演算法的科學計算框架,具有簡單和快速的指令碼語言LuaJIT和底層C/CUDA實現, Facebook開源了Torch深度學習庫包
Torch的特點:
–1具有強大的n維陣列;
–2具有豐富的索引、切片和transposing的例程
–3通過LuaJIT的C介面:
–4線性代數例程;
–5基於能量的神經網路模型;
–6數值優化例程;
–7支援快速高效的GPU;
–8 可移植嵌入到iOS、Android和FGPA平臺。


4)Keras


Keras是一個簡約的、高度模組化的神經網路庫,是基於Theano的一個深度學習框架,其設計參考了Torch,用Python語言編寫,支援GPU和CPU,其特點為:
–(1)使用簡單,能夠快速實現原理;
–(2)支援卷積網路和遞迴網路,以及兩者的組合;
–(3)無縫執行在CPU和GPU上:
–(4)支援任意連線方式,包括多輸入多輸出訓練。
Keras庫與其他採用Theano庫的區別是:
–編碼風格非常簡約、清晰。它把所有的要點使用小類封裝起來,能夠很容易地組合在一起,並創造出一種全新的模型。


5)MXNet


MXNet是一個輕量化分散式可移植的深度學習計算平臺,它支援多機多節點、多GPU的計算
–openMP+MPI/SSH+Cuda/Cudnn的框架的計算速度很快,且能夠與分散式檔案系統結合,實現大資料的深度學習。MXNet支援從單機到多GPU.多叢集的計算能力
MXNet特點如下:
–(1)基於賦值表示式建立計算圖;
–(2)支援記憶體管理,並對兩個不交叉的變數重複使用同一記憶體空間;
–(3)使用C++實現,並提供C風格的標頭檔案。支援Python、R、Julia、Go和JavaScript;
–(4)支援Torch;
–(5)支援移動裝置端釋出。


6)CNTK


CNTK ( Computational Network Toolkit)是微軟用於搭建深度神經網路的計算網路工具包,已在Github開源
–CNTK有一套極度優化的執行系統,來訓練和測試神經網路,它以抽象的計算圖形式構建的。
–CNTK支援CPU和GPU模型。
–CNTK支援兩種方式來定義網路:一種是使用“Simple Network Builder”,通過設定少量引數,就能生成一個的標準神經網路;另一種是使用網路定義語言(NDL)。
–CNTK相比Caffe、Theano. TensoFlow等主流工具效能更強,靈活性也要好,可擴充套件性高。
–CNTK支援CNN. LSTM. RNN等流行的網路結構,支援CPU和GPU模式,但CNTK目前Bug比較多。


7)Theano
Theano是BSD許可證下發布的一個開源專案,是由LISA(現MILA)在加拿大魁北克的蒙特利爾大學,開發的基於Python的深度學習框架
–專門用於定義、優化、求值數學表示式,其效率比較高,適用於多維陣列。
–Python的核心Theano是一個數學表示式的編譯器。Theano獲取使用者資料結構
–使之成為一個使用Numpy、高效本地庫的非常高效的程式碼,並能在CPU或GPU上儘可能快地執行。

相關文章