七大深度學習仿真工具
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模式 。
7.Theano
Theano是BSD許可證下發布的一個開源項目,是由LISA(現MILA)在加拿大魁北克的蒙特婁大學,開發的基於Python的深度學習框架。
–專門用於定義、最佳化、求值數學表達式,其效率比較高,適用於多維數組。
–Python的核心Theano是一個數學表達式的編譯器。Theano獲取用戶數據結構
–使之成為一個使用Numpy、高效本地庫的非常高效的代碼,並能在CPU或GPU上儘可能快地運行 。