版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-深度學(xué)習(xí)仿真工具

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶(hù)提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

深度學(xué)習(xí)仿真工具(Simulation tools for deep learning)也就是像TensorFlow、Caffe等深度學(xué)習(xí)框架。他們的出現(xiàn)降低了深度學(xué)習(xí)入門(mén)的門(mén)檻,你可以依據(jù)需要,使用已有的模型,模型的參數(shù)你自己訓(xùn)練得到,你也可以在已有模型的基礎(chǔ)上增加自己的layer,或者是在頂端選擇自己需要的分類(lèi)器。

七大深度學(xué)習(xí)仿真工具1.TensorFlowTensorFlow是Google基于DistBelief進(jìn)行研發(fā)的第二代人工智能學(xué)習(xí)系統(tǒng),其命名來(lái)源于本身的運(yùn)行原理1。

–Tensor(張量)意味著N維數(shù)組,F(xiàn)low(流)意味著基于數(shù)據(jù)流圖的計(jì)算,TensorFlow為張量從圖像的一端流動(dòng)到另一端的計(jì)算過(guò)程。

–TensorFlow是將復(fù)雜的數(shù)據(jù)結(jié)構(gòu),傳輸至人工智能神經(jīng)網(wǎng)中進(jìn)行分析和處理過(guò)程的系統(tǒng)。

TensorFlow表達(dá)了高層次的機(jī)器學(xué)習(xí)計(jì)算,可被用于語(yǔ)音識(shí)別或圖像識(shí)別等多項(xiàng)機(jī)器深度學(xué)習(xí)領(lǐng)域。

–TensorFlows對(duì)2011年開(kāi)發(fā)的深度學(xué)習(xí)基礎(chǔ)架構(gòu)DistBelief進(jìn)行了各方面的改進(jìn),可在小到一部智能手機(jī),大到數(shù)千臺(tái)數(shù)據(jù)中心服務(wù)器的各種設(shè)備上運(yùn)行。

–TensorFlow完全開(kāi)源。

2.CaffeCaffe是一個(gè)清晰而高效的深度學(xué)習(xí)框架,作者是畢業(yè)于UC Berkeley的賈揚(yáng)清1。

–Caffe的全稱(chēng)應(yīng)該是Convolutional Architecture for Fast Feature Embedding,

–它是開(kāi)源的,核心語(yǔ)言是C++,支持命令行、Python和MATLAB接口

–既可以在CPU上運(yùn)行也可以在GPU上運(yùn)行。License是BSD 2-Clause。

–Caffe可以應(yīng)用在視覺(jué)、語(yǔ)音識(shí)別、機(jī)器人、神經(jīng)科學(xué)和天文學(xué)領(lǐng)域。

3.TorchTorch已有十多年,是一個(gè)廣泛支持機(jī)器學(xué)習(xí)算法的科學(xué)計(jì)算框架,具有簡(jiǎn)單和快速的腳本語(yǔ)言L(fǎng)uaJIT和底層C/CUDA實(shí)現(xiàn), Facebook開(kāi)源了Torch深度學(xué)習(xí)庫(kù)包

Torch的特點(diǎn):

–1具有強(qiáng)大的n維數(shù)組;

–2具有豐富的索引、切片和transposing的例程

–3通過(guò)LuaJIT的C接口:

–4線(xiàn)性代數(shù)例程;

–5基于能量的神經(jīng)網(wǎng)絡(luò)模型;

–6數(shù)值優(yōu)化例程;

–7支持快速高效的GPU;

–8 可移植嵌入到iOS、Android和FGPA平臺(tái)。

4.KerasKeras是一個(gè)簡(jiǎn)約的、高度模塊化的神經(jīng)網(wǎng)絡(luò)庫(kù)2,是基于Theano的一個(gè)深度學(xué)習(xí)框架,其設(shè)計(jì)參考了Torch,用Python語(yǔ)言編寫(xiě),支持GPU和CPU,其特點(diǎn)為:

–(1)使用簡(jiǎn)單,能夠快速實(shí)現(xiàn)原理;

–(2)支持卷積網(wǎng)絡(luò)和遞歸網(wǎng)絡(luò),以及兩者的組合;

–(3)無(wú)縫運(yùn)行在CPU和GPU上:

–(4)支持任意連接方式,包括多輸入多輸出訓(xùn)練。

Keras庫(kù)與其他采用Theano庫(kù)的區(qū)別是:

–編碼風(fēng)格非常簡(jiǎn)約、清晰。它把所有的要點(diǎn)使用小類(lèi)封裝起來(lái),能夠很容易地組合在一起,并創(chuàng)造出一種全新的模型。

5.MXNetMXNet是一個(gè)輕量化分布式可移植的深度學(xué)習(xí)計(jì)算平臺(tái),它支持多機(jī)多節(jié)點(diǎn)、多GPU的計(jì)算

–openMP+MPI/SSH+Cuda/Cudnn的框架的計(jì)算速度很快,且能夠與分布式文件系統(tǒng)結(jié)合,實(shí)現(xiàn)大數(shù)據(jù)的深度學(xué)習(xí)。MXNet支持從單機(jī)到多GPU.多集群的計(jì)算能力2。

MXNet特點(diǎn)如下:

–(1)基于賦值表達(dá)式建立計(jì)算圖;

–(2)支持內(nèi)存管理,并對(duì)兩個(gè)不交叉的變量重復(fù)使用同一內(nèi)存空間;

–(3)使用C++實(shí)現(xiàn),并提供C風(fēng)格的頭文件。支持Python、R、Julia、Go和JavaScript;

–(4)支持Torch;

–(5)支持移動(dòng)設(shè)備端發(fā)布。

6.CNTKCNTK ( Computational Network Toolkit)是微軟用于搭建深度神經(jīng)網(wǎng)絡(luò)的計(jì)算網(wǎng)絡(luò)工具包,已在Github開(kāi)源。

–CNTK有一套極度優(yōu)化的運(yùn)行系統(tǒng),來(lái)訓(xùn)練和測(cè)試神經(jīng)網(wǎng)絡(luò),它以抽象的計(jì)算圖形式構(gòu)建的。

–CNTK支持CPU和GPU模型。

–CNTK支持兩種方式來(lái)定義網(wǎng)絡(luò):一種是使用“Simple Network Builder”,通過(guò)設(shè)置少量參數(shù),就能生成一個(gè)的標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò);另一種是使用網(wǎng)絡(luò)定義語(yǔ)言(NDL)。

–CNTK相比Caffe、Theano. TensoFlow等主流工具性能更強(qiáng),靈活性也要好,可擴(kuò)展性高。

–CNTK支持CNN. LSTM. RNN等流行的網(wǎng)絡(luò)結(jié)構(gòu),支持CPU和GPU模式2。

7.TheanoTheano是BSD許可證下發(fā)布的一個(gè)開(kāi)源項(xiàng)目,是由LISA(現(xiàn)MILA)在加拿大魁北克的蒙特利爾大學(xué),開(kāi)發(fā)的基于Python的深度學(xué)習(xí)框架。

–專(zhuān)門(mén)用于定義、優(yōu)化、求值數(shù)學(xué)表達(dá)式,其效率比較高,適用于多維數(shù)組。

–Python的核心Theano是一個(gè)數(shù)學(xué)表達(dá)式的編譯器。Theano獲取用戶(hù)數(shù)據(jù)結(jié)構(gòu)

–使之成為一個(gè)使用Numpy、高效本地庫(kù)的非常高效的代碼,并能在CPU或GPU上盡可能快地運(yùn)行2。

本詞條內(nèi)容貢獻(xiàn)者為:

方正 - 副教授 - 江南大學(xué)