久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

詳解 6 大主流深度學(xué)習(xí)框架

 北書房2014 2022-03-21

導(dǎo)讀:近幾年,隨著深度學(xué)習(xí)的爆炸式發(fā)展,,相關(guān)理論和基礎(chǔ)架構(gòu)得到了很大突破,,它們奠定了深度學(xué)習(xí)繁榮發(fā)展的基礎(chǔ)。這其中涌現(xiàn)了幾個著名的深度學(xué)習(xí)平臺,,本文將對這些平臺進(jìn)行簡要介紹,。

作者:涂銘 金智勇

來源:華章科技

文章圖片1

01 Theano

文章圖片2

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

Theano是一個Python庫,可用于定義,、優(yōu)化和計算數(shù)學(xué)表達(dá)式,,特別是多維數(shù)組(numpy.ndarray)。在解決包含大量數(shù)據(jù)問題的時候,,使用Theano編程可實現(xiàn)比C語言編程更快的運行速度,。通過GPU加速,Theano甚至可以比基于CPU計算的C語言快好幾個數(shù)量級,。

Theano結(jié)合 CAS(Computer Algebra System,,計算機(jī)代數(shù)系統(tǒng))和優(yōu)化編譯器,還可以為多種數(shù)學(xué)運算生成定制的C語言代碼,。對于處理包含重復(fù)計算的復(fù)雜數(shù)學(xué)表達(dá)式任務(wù),,計算速度很重要,因此這種CAS和優(yōu)化編譯器的組合非常有用,。對于需要將每種不同的數(shù)學(xué)表達(dá)式都計算一遍的情況,,Theano可以最小化編譯/解析計算量,但仍會給出如自動微分那樣的符號特征,。

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

但隨著TensorFlow在谷歌的支持下強(qiáng)勢崛起,Theano日漸式微,,使用的人越來越少,。其中標(biāo)志性事件是Theano的創(chuàng)始者之一Ian GoodFellow放棄Theano轉(zhuǎn)去谷歌開發(fā)TensorFlow了。

2017年9月28日,,在Theano 1.0正式版發(fā)布前夕,,LISA實驗室負(fù)責(zé)人、深度學(xué)習(xí)三巨頭之一的Yoshua Bengio宣布Theano將停止開發(fā):“Theano is Dead.”

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

對于深度學(xué)習(xí)新手,,可以使用Theano做入門練習(xí),但對于職業(yè)開發(fā)者,,建議使用 TensorFlow,。

02 TensorFlow

文章圖片3

TensorFlow是Google Brain團(tuán)隊基于Google在2011年開發(fā)的深度學(xué)習(xí)基礎(chǔ)架構(gòu)DistBelief構(gòu)建的。Google在其所有的應(yīng)用程序中都使用TensorFlow實現(xiàn)機(jī)器學(xué)習(xí),,例如使用Google照相機(jī)和Google語音搜索功能,,就間接使用了TensorFlow模型,。

TensorFlow在很大程度上可以看作Theano的后繼者,,這不僅因為它們有很大一批共同的開發(fā)者,還因為它們擁有相近的設(shè)計理念,,都基于計算圖實現(xiàn)自動微分系統(tǒng),。TensorFlow 使用數(shù)據(jù)流圖進(jìn)行數(shù)值計算,圖中的節(jié)點代表數(shù)學(xué)運算,,圖中的邊代表在這些節(jié)點之間傳遞的多維數(shù)組,。

TensorFlow編程接口支持Python和C++,TensorFlow 1.0版本開始支持Java,、Go,、R和Haskell API的Alpha版本。此外,,TensorFlow還可以在Google Cloud和AWS中運行,。TensorFlow支持Windows 7、Windows 10和Windows Server 2016系統(tǒng),。

因為TensorFlow使用C++ Eigen庫,,所以可以在ARM架構(gòu)上編譯和優(yōu)化。這也就意味著用戶可以在各種服務(wù)器和移動設(shè)備上部署自己的訓(xùn)練模型,,無須執(zhí)行單獨的模型解碼器或者加載Python解釋器,。

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

  • 因為TensorFlow的接口在不斷地快速迭代,并且版本之間不兼容,,所以在開發(fā)和調(diào)試過程中可能會出現(xiàn)問題,,例如開源代碼無法在新版的TensorFlow上運行。
  • 想學(xué)習(xí)TensorFlow底層運行機(jī)制的讀者需要做好心理準(zhǔn)備,,TensorFlow在GitHub代碼倉庫的總代碼量超過100萬行,,系統(tǒng)設(shè)計比較復(fù)雜,,這將是一個漫長的學(xué)習(xí)過程。
  • 在代碼層面,,對于同一個功能,,TensorFlow提供了多種實現(xiàn),這些實現(xiàn)良莠不齊,,使用中還有細(xì)微的區(qū)別,,請讀者注意選擇。另外,,TensorFlow創(chuàng)造了圖,、會話、命名空間,、PlaceHolder等諸多抽象概念,,對普通用戶來說較難理解。

憑借Google強(qiáng)大的推廣能力,,TensorFlow已經(jīng)成為當(dāng)今最火的深度學(xué)習(xí)框架,,不完美但是最流行。因為各公司使用的框架不統(tǒng)一,,所以我們有必要多學(xué)習(xí)幾個流行框架作為知識儲備,,TensorFlow無疑是一個不錯的選擇。

03 MXNet

文章圖片4

MXNet是亞馬遜首席科學(xué)家李沐帶領(lǐng)團(tuán)隊開發(fā)的深度學(xué)習(xí)框架,,擁有類似Theano和TensorFlow的數(shù)據(jù)流圖,,為多GPU架構(gòu)提供了良好的配置,擁有類似Lasagne和Blocks的高級別模型構(gòu)建塊,,可以在我們需要的任何硬件上運行(包括手機(jī)),。除了支持Python,MXNet同樣提供了對 R,、Julia,、C++、Scala,、Matlab,、Go和Java的接口。

MXNet因其超強(qiáng)的分布式,、內(nèi)存/顯存優(yōu)化能力受到開發(fā)者的歡迎,。同樣的模型,MXNet往往占用的內(nèi)存和顯存更小,,在分布式環(huán)境下,,MXNet展現(xiàn)出了明顯優(yōu)于其他框架的擴(kuò)展性能。

MXNet的缺點是推廣力度不夠、接口文檔不完善,。雖然MXNet版本快速迭代,,但官方API文檔卻長時間未更新,導(dǎo)致新用戶難以掌握新版本的MXNet,,而老用戶又需要查閱源碼才能真正理解MXNet接口的用法,。MXNet文檔比較混亂,不太適合新手入門,,但其分布性能強(qiáng)大,,語言支持比較多,比較適合在云平臺使用,。

04 Keras

文章圖片5

Keras是一個高層神經(jīng)網(wǎng)絡(luò)API,,使用Python編寫,并將TensorFlow,、Theano及CNTK作為后端,。Keras為支持快速實驗而生,能夠快速實現(xiàn)開發(fā)者的想法,。Keras目前是最容易上手的深度學(xué)習(xí)框架,,它提供了一致且簡潔的API,能夠極大減少一般應(yīng)用下用戶的工作量,。

相比于深度學(xué)習(xí)框架,Keras更像是一個深度學(xué)習(xí)接口,,它構(gòu)建于第三方框架之上,。Keras的缺點很明顯:過度封裝導(dǎo)致喪失了靈活性。Keras最初作為Theano的高級API,,后來增加了TensorFlow和CNTK作為后端,。

為了屏蔽后端的差異性,Keras提供了一致的用戶接口并做了層層封裝,,導(dǎo)致用戶在新增操作或是獲取底層的數(shù)據(jù)信息時過于困難,。同時,過度封裝也使得Keras的程序運行十分緩慢,,許多Bug都隱藏于封裝之中,。在絕大多數(shù)場景下,Keras是本文介紹的所有框架中運行最慢的,。

學(xué)習(xí)Keras十分容易,,但是很快就會遇到瓶頸,因為它不夠靈活,。另外,,在使用Keras的大多數(shù)時間里,用戶主要是在調(diào)用接口,很難真正學(xué)習(xí)到深度學(xué)習(xí)的內(nèi)容,。

Keras的過度封裝使其并不適合新手學(xué)習(xí)(無法理解深度學(xué)習(xí)的真正內(nèi)涵),,故不推薦。

05 PyTorch

文章圖片6

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

PyTorch提供了完整的使用文檔、循序漸進(jìn)的用戶指南,,作者親自維護(hù)PyTorch論壇,,方便用戶交流和解決問題。

Facebook人工智能研究院FAIR對PyTorch的推廣提供了大力支持,。作為當(dāng)今排名前三的深度學(xué)習(xí)研究機(jī)構(gòu),,F(xiàn)AIR的支持足以確保PyTorch獲得持續(xù)開發(fā)、更新的保障,,不至于像一些個人開發(fā)的框架那樣曇花一現(xiàn),。如有需要,我們也可以使用Python軟件包(如NumPy,、SciPy和Cython)來擴(kuò)展 PyTorch,。

相對于TensorFlow,PyTorch的一大優(yōu)點是它的圖是動態(tài)的,,而TensorFlow框架是靜態(tài)圖,,不利于擴(kuò)展。同時,,PyTorch非常簡潔,,方便使用。本書選取PyTorch為主要的實現(xiàn)框架,。

如果說TensorFlow的設(shè)計是“Make it complicated”,,Keras的設(shè)計是“Make it complicated and hide it”,那么PyTorch的設(shè)計則真正做到了“Keep it simple,,stupid”,。

06 Caffe

文章圖片7

Caffe是基于C++編寫的深度學(xué)習(xí)框架,作者是賈揚清,,源碼開放(具有Licensed BSD)并提供了命令行工具以及Matlab和Python接口,。

Caffe一直是深度學(xué)習(xí)研究者使用的框架,很多研究人員在上面進(jìn)行開發(fā)和優(yōu)化,,因而有了不少沉淀,,因此Caffe也是流行的深度學(xué)習(xí)框架之一。盡管如此,,Caffe也存在不支持多機(jī),、跨平臺、可擴(kuò)展性差等問題。初學(xué)使用Caffe還需要注意下面兩個問題,。

  • Caffe的安裝過程需要大量的依賴庫,,因此涉及很多安裝版本問題,初學(xué)者須多加注意,。
  • 當(dāng)用戶要實現(xiàn)一個新的層,,就需要用C++實現(xiàn)它的前向傳播和反向傳播代碼,而如果想要新層運行在GPU上,,則需要同時使用CUDA實現(xiàn)這一層的前向傳播和反向傳播,。

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

在工業(yè)界和學(xué)術(shù)界仍有很多人使用Caffe,,而Caffe2的出現(xiàn)給我們提供了更多的選擇,。

    本站是提供個人知識管理的網(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ā)表

    請遵守用戶 評論公約

    類似文章 更多