一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

一文看懂6個(gè)深度學(xué)習(xí)著名框架,你用過(guò)幾個(gè)?

 hlhq1 2019-08-05

導(dǎo)讀:近幾年,深度學(xué)習(xí)技術(shù)的大爆炸式發(fā)展,除了理論方面的突破外,還有基礎(chǔ)架構(gòu)的突破,這些都奠定了深度學(xué)習(xí)繁榮發(fā)展的基礎(chǔ)。本文將對(duì)其中涌現(xiàn)出的幾個(gè)著名的深度學(xué)習(xí)平臺(tái)進(jìn)行簡(jiǎn)要介紹。

作者:魏溪含 涂銘 張修鵬

如需轉(zhuǎn)載請(qǐng)聯(lián)系華章科技

一文看懂6個(gè)深度學(xué)習(xí)著名框架,你用過(guò)幾個(gè)?

01 Theano

Theano是在BSD許可證下發(fā)布的一個(gè)開源項(xiàng)目,是由LISA集團(tuán)(現(xiàn)MILA)在加拿大魁北克的蒙特利爾大學(xué)開發(fā)的,其是以一位希臘數(shù)學(xué)家的名字命名的。

一文看懂6個(gè)深度學(xué)習(xí)著名框架,你用過(guò)幾個(gè)?

Theano是一個(gè)Python庫(kù),可用于定義、優(yōu)化和計(jì)算數(shù)學(xué)表達(dá)式,特別是多維數(shù)組(numpy.ndarray)。它的誕生是為了執(zhí)行深度學(xué)習(xí)中的大規(guī)模神經(jīng)網(wǎng)絡(luò)算法,從本質(zhì)上而言,Theano可以被理解為一個(gè)數(shù)學(xué)表達(dá)式的編譯器:用符號(hào)式語(yǔ)言定義程序員所需的結(jié)果,并且Theano可以高效地運(yùn)行于GPU或CPU中。

在過(guò)去很長(zhǎng)一段時(shí)間內(nèi),Theano是深度學(xué)習(xí)開發(fā)與研究的行業(yè)標(biāo)準(zhǔn)。而且,由于出身學(xué)界,它最初是為學(xué)術(shù)研究而設(shè)計(jì)的,這也導(dǎo)致深度學(xué)習(xí)領(lǐng)域的許多學(xué)者至今仍在使用Theano。

但隨著Tensorflow在Google的支持下強(qiáng)勢(shì)崛起,Theano日漸式微,使用Theano的人也越來(lái)越少。這個(gè)轉(zhuǎn)變的標(biāo)志性事件是:創(chuàng)始者之一的Ian Goodfellow放棄Theano轉(zhuǎn)而去Google開發(fā)Tensorflow了。

盡管Theano已退出歷史舞臺(tái),但作為Python的第一個(gè)深度學(xué)習(xí)框架,它很好地完成了自己的使命,為深度學(xué)習(xí)研究人員的早期拓荒提供了極大的幫助,同時(shí)也為之后的深度學(xué)習(xí)框架的開發(fā)奠定了基本的設(shè)計(jì)方向:以計(jì)算圖為框架的核心,采用GPU加速計(jì)算。

  • 總結(jié):對(duì)于深度學(xué)習(xí)新手,可以使用Theano來(lái)練手;但對(duì)于職業(yè)開發(fā)者,建議使用Tensorflow。

02 Tensorflow

2015年11月10日,Google宣布推出全新的機(jī)器學(xué)習(xí)開源工具Tensorflow。Tensorflow最初是由Google機(jī)器智能研究部門的Google Brain團(tuán)隊(duì)開發(fā),基于Google 2011年開發(fā)的深度學(xué)習(xí)基礎(chǔ)架構(gòu)DistBelief構(gòu)建起來(lái)的。

一文看懂6個(gè)深度學(xué)習(xí)著名框架,你用過(guò)幾個(gè)?

Tensorflow是廣泛使用的實(shí)現(xiàn)機(jī)器學(xué)習(xí)以及其他涉及大量數(shù)學(xué)運(yùn)算的算法庫(kù)之一。Google幾乎在所有應(yīng)用程序中都使用Tensorflow來(lái)實(shí)現(xiàn)機(jī)器學(xué)習(xí)。例如,如果你使用過(guò)Google照片或Google語(yǔ)音搜索,那么你就間接使用了Tensorflow模型。它們?cè)诖笮虶oogle硬件集群上工作,在感知任務(wù)方面,功能非常強(qiáng)大。

Tensorflow在很大程度上可以看作是Theano的后繼者,不僅因?yàn)樗鼈冇泻艽笠慌餐拈_發(fā)者,而且它們還擁有相近的設(shè)計(jì)理念:它們都是基于計(jì)算圖實(shí)現(xiàn)自動(dòng)微分系統(tǒng)。Tensorflow使用數(shù)據(jù)流圖進(jìn)行數(shù)值計(jì)算,圖中的節(jié)點(diǎn)代表數(shù)學(xué)運(yùn)算,圖中的邊則代表在這些節(jié)點(diǎn)之間傳遞的多維數(shù)組(tensor)。

Tensorflow編程接口支持Python和C++。隨著1.0版本的公布,Java、Go、R和Haskell API的alpha版本也得到支持。此外,Tensorflow還可在Google Cloud和AWS中運(yùn)行。

Tensorflow還支持Windows 7、Windows 10和Windows Server 2016。由于Tensorflow使用C++ Eigen庫(kù),所以庫(kù)可在ARM架構(gòu)上進(jìn)行編譯和優(yōu)化。這也就意味著用戶可以在各種服務(wù)器和移動(dòng)設(shè)備上部署自己的訓(xùn)練模型,而無(wú)須執(zhí)行單獨(dú)的模型解碼器或者加載Python解釋器。

作為當(dāng)前最流行的深度學(xué)習(xí)框架,Tensorflow獲得了極大成功,但在學(xué)習(xí)過(guò)程中讀者需要注意下面這些問(wèn)題。

  • 由于Tensorflow的接口一直處于快速迭代之中,并且版本之間存在不兼容的問(wèn)題,因此開發(fā)和調(diào)試過(guò)程中可能會(huì)出現(xiàn)一些問(wèn)題(許多開源代碼無(wú)法在新版的Tensorflow上運(yùn)行)。
  • 想要學(xué)習(xí)Tensorflow底層運(yùn)行機(jī)制的讀者需要做好準(zhǔn)備,Tensorflow在GitHub代碼倉(cāng)庫(kù)的總代碼量超過(guò)100萬(wàn)行,系統(tǒng)設(shè)計(jì)比較復(fù)雜,因此這將是一個(gè)漫長(zhǎng)的過(guò)程。
  • 代碼層面,對(duì)于同一個(gè)功能,Tensorflow提供了多種實(shí)現(xiàn),這些實(shí)現(xiàn)良莠不齊,使用中還存在細(xì)微的區(qū)別,請(qǐng)讀者注意,避免入坑。另外,Tensorflow還創(chuàng)造了圖、會(huì)話、命名空間、PlaceHolder等諸多抽象概念,對(duì)普通用戶來(lái)說(shuō)可能會(huì)難以理解。
  • 總結(jié):憑借著Google強(qiáng)大的推廣能力,Tensorflow已經(jīng)成為當(dāng)今最為熱門的深度學(xué)習(xí)框架,雖不完美但是最流行,目前,各公司使用的框架也不統(tǒng)一,讀者有必要多學(xué)習(xí)幾個(gè)流行框架以作為知識(shí)儲(chǔ)備,Tensorflow無(wú)疑是一個(gè)不錯(cuò)的選擇。

項(xiàng)目地址:

https://github.com/tensorflow/tensorflow

03 MXNet

MXNet是亞馬遜(Amazon)的李沐帶隊(duì)開發(fā)的深度學(xué)習(xí)框架。它擁有類似于Theano和Tensorflow的數(shù)據(jù)流圖,為多GPU架構(gòu)提供了良好的配置,有著類似于Lasagne和Blocks的更高級(jí)別的模型構(gòu)建塊,并且可以在你想象的任何硬件上運(yùn)行(包括手機(jī))。

一文看懂6個(gè)深度學(xué)習(xí)著名框架,你用過(guò)幾個(gè)?

對(duì)Python的支持只是其功能的冰山一角,MXNet同樣提供了對(duì)R、Julia、C++、Scala、Matlab、Golang和Java的接口。

MXNet以其超強(qiáng)的分布式支持,明顯的內(nèi)存、顯存優(yōu)化為人所稱道。同樣的模型,MXNet往往占用更小的內(nèi)存和顯存,并且在分布式環(huán)境下,MXNet展現(xiàn)出了明顯優(yōu)于其他框架的擴(kuò)展性能。

MXNet的缺點(diǎn)是推廣不給力及接口文檔不夠完善。MXNet長(zhǎng)期處于快速迭代的過(guò)程中,其文檔卻長(zhǎng)時(shí)間未更新,這就導(dǎo)致新手用戶難以掌握MXNet,老用戶則需要常常查閱源碼才能真正理解MXNet接口的用法。

  • 總結(jié):MXNet文檔比較混亂導(dǎo)致其不太適合新手入門,但其分布性能強(qiáng)大,語(yǔ)言支持比較多,比較適合在云平臺(tái)使用。

項(xiàng)目主頁(yè):

https://mxnet.incubator./

04 Keras

Keras是一個(gè)高層神經(jīng)網(wǎng)絡(luò)API,由純Python語(yǔ)言編寫而成,并使用Tensorflow、Theano及CNTK作為后端。Keras為支持快速實(shí)驗(yàn)而生,能夠?qū)⑾敕ㄑ杆俎D(zhuǎn)換為結(jié)果。

一文看懂6個(gè)深度學(xué)習(xí)著名框架,你用過(guò)幾個(gè)?

Keras應(yīng)該是深度學(xué)習(xí)框架之中最容易上手的一個(gè),它提供了一致而簡(jiǎn)潔的API,能夠極大地減少一般應(yīng)用下用戶的工作量,避免用戶重復(fù)造輪子,而且Keras支持無(wú)縫CPU和GPU的相互轉(zhuǎn)換。

為了屏蔽后端的差異性,Keras做了層層封裝,導(dǎo)致用戶在新增操作或是獲取底層的數(shù)據(jù)信息時(shí)過(guò)于困難。同時(shí),過(guò)度封裝也使得Keras的程序過(guò)于緩慢,許多bug都隱藏于封裝之中。

另外就是學(xué)習(xí)Keras十分容易,但是很快就會(huì)遇到瓶頸,因?yàn)樗鄙凫`活性。另外,在使用Keras的大多數(shù)時(shí)間里,用戶主要是在調(diào)用接口,很難真正學(xué)習(xí)到深度學(xué)習(xí)的內(nèi)容。

  • 總結(jié):Keras比較適合作為練習(xí)使用的深度學(xué)習(xí)框架,但是因?yàn)槠溥^(guò)度的封裝導(dǎo)致并不適合新手學(xué)習(xí)(無(wú)法理解深度學(xué)習(xí)的真正內(nèi)涵),故不推薦。

項(xiàng)目主頁(yè):

https://

05 PyTorch

PyTorch是一個(gè)Python優(yōu)先的深度學(xué)習(xí)框架,能夠在強(qiáng)大的GPU加速的基礎(chǔ)上實(shí)現(xiàn)張量和動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)。

一文看懂6個(gè)深度學(xué)習(xí)著名框架,你用過(guò)幾個(gè)?

PyTorch是一個(gè)Python軟件包,其提供了兩種高層面的功能,具體如下。

  1. 使用強(qiáng)大的GPU加速的Tensor計(jì)算(類似于Numpy)。
  2. 構(gòu)建基于tape的autograd系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)。
  3. 活躍的社區(qū):PyTorch提供了完整的文檔,循序漸進(jìn)的指南,作者親自維護(hù)論壇以供用戶交流和求教問(wèn)題。Facebook人工智能研究院(FAIR)對(duì)PyTorch提供了強(qiáng)力支持,作為當(dāng)今排名前三的深度學(xué)習(xí)研究機(jī)構(gòu),F(xiàn)AIR的支持足以確保PyTorch獲得持續(xù)的開發(fā)更新,而不至于像許多由個(gè)人開發(fā)的框架那樣曇花一現(xiàn)。

如有需要,你也可以復(fù)用你喜歡的Python軟件包(如Numpy、scipy和Cython)來(lái)擴(kuò)展PyTorch。

相對(duì)于Tensorflow,PyTorch的一大優(yōu)點(diǎn)是,它的圖是動(dòng)態(tài)的,而Tensorflow等都是靜態(tài)圖,不利于擴(kuò)展。同時(shí),PyTorch非常簡(jiǎn)潔,方便使用。

  • 總結(jié):如果說(shuō)TensorFlow的設(shè)計(jì)是“Make It Complicated”,Keras的設(shè)計(jì)是“Make It Complicated And Hide It”,那么PyTorch的設(shè)計(jì)真正做到了“Keep it Simple,Stupid”。

項(xiàng)目地址:

http://pytorch.org/

06 Caffe

Caffe是基于C++語(yǔ)言編寫的深度學(xué)習(xí)框架,作者是中國(guó)人賈揚(yáng)清。它開放源碼(具有Licensed BSD),提供了命令行,以及Matlab和Python接口,清晰、可讀性強(qiáng)、容易上手。

一文看懂6個(gè)深度學(xué)習(xí)著名框架,你用過(guò)幾個(gè)?

Caffe是早期深度學(xué)習(xí)研究者使用的框架,由于很多研究人員在上面進(jìn)行開發(fā)和優(yōu)化,因此其現(xiàn)今也是流行的框架之一。Caffe也存在不支持多機(jī)、跨平臺(tái)、可擴(kuò)展性差等問(wèn)題。初學(xué)者使用Caffe時(shí)還需要注意下面這些問(wèn)題。

  1. Caffe的安裝過(guò)程需要大量的依賴庫(kù),因此會(huì)涉及很多安裝版本問(wèn)題,初學(xué)者不易上手。
  2. 當(dāng)用戶想要實(shí)現(xiàn)一個(gè)新的層時(shí),需要用C++實(shí)現(xiàn)它的前向傳播和反向傳播代碼,而如果想要新層運(yùn)行在GPU之上,則需要同時(shí)使用CUDA實(shí)現(xiàn)這一層的前向傳播和反向傳播。

Caffe2出自Facebook人工智能實(shí)驗(yàn)室與應(yīng)用機(jī)器學(xué)習(xí)團(tuán)隊(duì),但賈揚(yáng)清仍是主要貢獻(xiàn)者之一。Caffe2在工程上做了很多優(yōu)化,比如運(yùn)行速度、跨平臺(tái)、可擴(kuò)展性等,它可以看作是Caffe更細(xì)粒度的重構(gòu),但在設(shè)計(jì)上,其實(shí)Caffe2與TensorFlow更像。目前代碼已開源。

一文看懂6個(gè)深度學(xué)習(xí)著名框架,你用過(guò)幾個(gè)?

  • 總結(jié):至今工業(yè)界和學(xué)界仍有很多人在使用Caffe,而Caffe2的出現(xiàn)為我們提供了更多的選擇。

項(xiàng)目地址:

Caffe:http://caffe./

Caffe2:https:///

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    99久久成人精品国产免费| 国产激情国产精品久久源| 美女被啪的视频在线观看| 国产午夜福利不卡片在线观看| 激情偷拍一区二区三区视频| 成人欧美精品一区二区三区| 日韩精品一区二区三区av在线| 丰满少妇被猛烈插入在线观看| 国产日韩综合一区在线观看| 九九九热视频最新在线| 国产综合一区二区三区av| 中文字幕人妻日本一区二区 | 国产极品粉嫩尤物一区二区 | 国产欧美另类激情久久久| 国产精品日本女优在线观看| 国产日韩欧美专区一区| 久久精品色妇熟妇丰满人妻91| 中文字幕熟女人妻视频| 久久精品国产99精品亚洲| 亚洲综合伊人五月天中文| 精品al亚洲麻豆一区| 亚洲国产丝袜一区二区三区四 | 福利视频一区二区三区| 日韩一区二区三区嘿嘿| 在线中文字幕亚洲欧美一区| 伊人久久青草地婷婷综合| 日韩欧美三级中文字幕| 青青操视频在线观看国产| 国产精品香蕉一级免费| 日本免费熟女一区二区三区| 国产成人精品午夜福利| 欧美极品欧美精品欧美| 无套内射美女视频免费在线观看| 日韩精品一区二区不卡| 精品人妻av区波多野结依| 精品国模一区二区三区欧美| 亚洲性生活一区二区三区| 精品人妻一区二区三区四区久久| 国产精品美女午夜视频| 这里只有九九热精品视频| 一区二区三区国产日韩|