小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

深度學(xué)習(xí)——你需要了解的八大開源框架

 LZS2851 2016-08-06
深度學(xué)習(xí)八大開源框架

導(dǎo)讀:深度學(xué)習(xí)(Deep Learning)是機(jī)器學(xué)習(xí)中一種基于對數(shù)據(jù)進(jìn)行表征學(xué)習(xí)的方法,深度學(xué)習(xí)的好處是用監(jiān)督式或半監(jiān)督式的特征學(xué)習(xí)、分層特征提取高效算法來替代手工獲取特征(feature)。作為當(dāng)下最熱門的話題,Google、Facebook、Microsoft等巨頭都圍繞深度學(xué)習(xí)重點投資了一系列新興項目,他們也一直在支持一些開源深度學(xué)習(xí)框架。

目前研究人員正在使用的深度學(xué)習(xí)框架不盡相同,有 TensorFlow、Torch 、Caffe、Theano、Deeplearning4j等,這些深度學(xué)習(xí)框架被應(yīng)用于計算機(jī)視覺、語音識別、自然語言處理與生物信息學(xué)等領(lǐng)域,并獲取了極好的效果。

下面讓我們一起來認(rèn)識目前深度學(xué)習(xí)中最常使用的八大開源框架:

一.TensorFlow

TensorFlow是一款開源的數(shù)學(xué)計算軟件,使用數(shù)據(jù)流圖(Data Flow Graph)的形式進(jìn)行計算。圖中的節(jié)點代表數(shù)學(xué)運算,而圖中的線條表示多維數(shù)據(jù)數(shù)組(tensor)之間的交互。TensorFlow靈活的架構(gòu)可以部署在一個或多個CPU、GPU的臺式以及服務(wù)器中,或者使用單一的API應(yīng)用在移動設(shè)備中。TensorFlow最初是由研究人員和Google Brain團(tuán)隊針對機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)進(jìn)行研究所開發(fā)的,目前開源之后可以在幾乎各種領(lǐng)域適用。

Data Flow Graph: 使用有向圖的節(jié)點和邊共同描述數(shù)學(xué)計算。graph中的nodes代表數(shù)學(xué)操作,也可以表示數(shù)據(jù)輸入輸出的端點。邊表示節(jié)點之間的關(guān)系,傳遞操作之間互相使用的多位數(shù)組(tensors),tensor在graph中流動——這也就是TensorFlow名字的由來。一旦節(jié)點相連的邊傳來了數(shù)據(jù)流,節(jié)點就被分配到計算設(shè)備上異步的(節(jié)點間)、并行的(節(jié)點內(nèi))執(zhí)行。

深度學(xué)習(xí)——你需要了解的八大開源框架

TensorFlow的特點:

機(jī)動性: TensorFlow并不只是一個規(guī)則的neural network庫,事實上如果你可以將你的計算表示成data flow graph的形式,就可以使用TensorFlow。用戶構(gòu)建graph,寫內(nèi)層循環(huán)代碼驅(qū)動計算,TensorFlow可以幫助裝配子圖。定義新的操作只需要寫一個Python函數(shù),如果缺少底層的數(shù)據(jù)操作,需要寫一些C++代碼定義操作。

可適性強(qiáng): 可以應(yīng)用在不同設(shè)備上,cpus,gpu,移動設(shè)備,云平臺等

自動差分: TensorFlow的自動差分能力對很多基于Graph的機(jī)器學(xué)習(xí)算法有益

多種編程語言可選: TensorFlow很容易使用,有python接口和C++接口。其他語言可以使用SWIG工具使用接口。(SWIG—Simplified Wrapper and Interface Generator, 是一個非常優(yōu)秀的開源工具,支持將 C/C++ 代碼與任何主流腳本語言相集成。)

最優(yōu)化表現(xiàn): 充分利用硬件資源,TensorFlow可以將graph的不同計算單元分配到不同設(shè)備執(zhí)行,使用TensorFlow處理副本。

二.Torch

深度學(xué)習(xí)——你需要了解的八大開源框架

Torch是一個有大量機(jī)器學(xué)習(xí)算法支持的科學(xué)計算框架,其誕生已經(jīng)有十年之久,但是真正起勢得益于Facebook開源了大量Torch的深度學(xué)習(xí)模塊和擴(kuò)展。Torch另外一個特殊之處是采用了編程語言Lua(該語言曾被用來開發(fā)視頻游戲)。

Torch的優(yōu)勢:

構(gòu)建模型簡單

高度模塊化

快速高效的GPU支持

通過LuaJIT接入C

數(shù)值優(yōu)化程序等

可嵌入到iOS、Android和FPGA后端的接口

三.Caffe

深度學(xué)習(xí)——你需要了解的八大開源框架

Caffe由加州大學(xué)伯克利的PHD賈揚(yáng)清開發(fā),全稱Convolutional Architecture for Fast Feature Embedding,是一個清晰而高效的開源深度學(xué)習(xí)框架,目前由伯克利視覺學(xué)中心(Berkeley Vision and Learning Center,BVLC)進(jìn)行維護(hù)。(賈揚(yáng)清曾就職于MSRA、NEC、Google Brain,他也是TensorFlow的作者之一,目前任職于Facebook FAIR實驗室。)

Caffe基本流程:Caffe遵循了神經(jīng)網(wǎng)絡(luò)的一個簡單假設(shè)——所有的計算都是以layer的形式表示的,layer做的事情就是獲得一些數(shù)據(jù),然后輸出一些計算以后的結(jié)果。比如說卷積——就是輸入一個圖像,然后和這一層的參數(shù)(filter)做卷積,然后輸出卷積的結(jié)果。每一個層級(layer)需要做兩個計算:前向forward是從輸入計算輸出,然后反向backward是從上面給的gradient來計算相對于輸入的gradient,只要這兩個函數(shù)實現(xiàn)了以后,我們就可以把很多層連接成一個網(wǎng)絡(luò),這個網(wǎng)絡(luò)做的事情就是輸入我們的數(shù)據(jù)(圖像或者語音等),然后來計算我們需要的輸出(比如說識別的標(biāo)簽),在訓(xùn)練的時候,我們可以根據(jù)已有的標(biāo)簽來計算損失和gradient,然后用gradient來更新網(wǎng)絡(luò)的參數(shù)。

Caffe的優(yōu)勢:

上手快:模型與相應(yīng)優(yōu)化都是以文本形式而非代碼形式給出

速度快:能夠運行最棒的模型與海量的數(shù)據(jù)

模塊化:方便擴(kuò)展到新的任務(wù)和設(shè)置上

開放性:公開的代碼和參考模型用于再現(xiàn)

社區(qū)好:可以通過BSD-2參與開發(fā)與討論

四.Theano

深度學(xué)習(xí)——你需要了解的八大開源框架

2008年誕生于蒙特利爾理工學(xué)院,Theano派生出了大量深度學(xué)習(xí)Python軟件包,最著名的包括Blocks和Keras。Theano的核心是一個數(shù)學(xué)表達(dá)式的編譯器,它知道如何獲取你的結(jié)構(gòu)。并使之成為一個使用numpy、高效本地庫的高效代碼,如BLAS和本地代碼(C++)在CPU或GPU上盡可能快地運行。它是為深度學(xué)習(xí)中處理大型神經(jīng)網(wǎng)絡(luò)算法所需的計算而專門設(shè)計的,是這類庫的首創(chuàng)之一(發(fā)展始于2007年),被認(rèn)為是深度學(xué)習(xí)研究和開發(fā)的行業(yè)標(biāo)準(zhǔn)。

Theano的優(yōu)勢:

集成NumPy-使用numpy.ndarray

使用GPU加速計算-比CPU快140倍(只針對32位float類型)

有效的符號微分-計算一元或多元函數(shù)的導(dǎo)數(shù)

速度和穩(wěn)定性優(yōu)化-比如能計算很小的x的函數(shù)log(1+x)的值

動態(tài)地生成C代碼-更快地進(jìn)行計算

廣泛地單元測試和自我驗證-檢測和診斷多種錯誤

靈活性好

五.Deeplearning4j

顧名思義,Deeplearning4j是“for Java”的深度學(xué)習(xí)框架,也是首個商用級別的深度學(xué)習(xí)開源庫。Deeplearning4j由創(chuàng)業(yè)公司Skymind于2014年6月發(fā)布,使用 Deeplearning4j的不乏埃森哲、雪弗蘭、博斯咨詢和IBM等明星企業(yè)。DeepLearning4j是一個面向生產(chǎn)環(huán)境和商業(yè)應(yīng)用的高成熟度深度學(xué)習(xí)開源庫,可與Hadoop和Spark集成,即插即用,方便開發(fā)者在APP中快速集成深度學(xué)習(xí)功能,可應(yīng)用于以下深度學(xué)習(xí)領(lǐng)域:

人臉/圖像識別

語音搜索

語音轉(zhuǎn)文字(Speech to text)

垃圾信息過濾(異常偵測)

電商欺詐偵測

除了以上幾個比較成熟知名的項目,還有很多有特色的深度學(xué)習(xí)開源框架也值得關(guān)注:

六.ConvNetJS

這是斯坦福大學(xué)博士生Andrej Karpathy開發(fā)的瀏覽器插件,基于萬能的JavaScript可以在你的游覽器中訓(xùn)練深度神經(jīng)模型。不需要安裝軟件,也不需要GPU。

七.MXNet

深度學(xué)習(xí)——你需要了解的八大開源框架

出自CXXNet、Minerva、Purine 等項目的開發(fā)者之手,主要用C++ 編寫。MXNet 強(qiáng)調(diào)提高內(nèi)存使用的效率,甚至能在智能手機(jī)上運行諸如圖像識別等任務(wù)。

MXNet的系統(tǒng)架構(gòu)如下圖所示:

深度學(xué)習(xí)——你需要了解的八大開源框架

從上到下分別為各種主語言的嵌入,編程接口(矩陣運算,符號表達(dá)式,分布式通訊),兩種編程模式的統(tǒng)一系統(tǒng)實現(xiàn),以及各硬件的支持。

八.Chainer

深度學(xué)習(xí)——你需要了解的八大開源框架

來自一個日本的深度學(xué)習(xí)創(chuàng)業(yè)公司Preferred Networks,今年6月發(fā)布的一個Python框架。Chainer 的設(shè)計基于 define by run原則,也就是說該網(wǎng)絡(luò)在運行中動態(tài)定義,而不是在啟動時定義。

PS : 本文由雷鋒網(wǎng)獨家編譯,未經(jīng)許可拒絕轉(zhuǎn)載!

via KDnuggets等

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多