偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

4款深度學(xué)習(xí)框架簡(jiǎn)介,初學(xué)者該如何選擇?

人工智能 深度學(xué)習(xí)
近幾年,隨著深度學(xué)習(xí)爆炸式發(fā)展,在人工智能領(lǐng)域除了理論方面的突破外,還有基礎(chǔ)架構(gòu)的突破,它們奠定了深度學(xué)習(xí)繁榮發(fā)展的基礎(chǔ)。這其中涌現(xiàn)了幾個(gè)著名的深度學(xué)習(xí)平臺(tái),本文將對(duì)這些平臺(tái)進(jìn)行逐一介紹。

 [[381945]]

01 Theano

 

4款深度學(xué)習(xí)框架簡(jiǎn)介,初學(xué)者該如何選擇?

 

Theano是在BSD許可證下發(fā)布的一個(gè)開(kāi)源項(xiàng)目,誕生于加拿大魁北克蒙特利爾大學(xué)的LISA實(shí)驗(yàn)室,是用一位希臘數(shù)學(xué)家的名字命名的。

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

Theano結(jié)合了計(jì)算機(jī)代數(shù)系統(tǒng)(Computer Algebra System,CAS)和優(yōu)化編譯器,還可以為多種數(shù)學(xué)運(yùn)算生成定制的C語(yǔ)言代碼。對(duì)于包含重復(fù)計(jì)算的復(fù)雜數(shù)學(xué)表達(dá)式任務(wù),計(jì)算速度很重要,因此這種CAS和優(yōu)化編譯器的組合是很有用的。

對(duì)于需要將每種不同數(shù)學(xué)表達(dá)式都計(jì)算一遍的情況,Theano能夠?qū)崿F(xiàn)編譯/解析計(jì)算量的最小化,但仍然會(huì)給出如自動(dòng)微分那樣的符號(hào)特征。

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

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

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

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

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

02 TensorFlow

 

4款深度學(xué)習(xí)框架簡(jiǎn)介,初學(xué)者該如何選擇?

 

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

TensorFlow涉及大量數(shù)學(xué)運(yùn)算的算法庫(kù),是目前使用最廣泛的機(jī)器學(xué)習(xí)工具之一。Google在大部分應(yīng)用程序中都使用TensorFlow來(lái)實(shí)現(xiàn)機(jī)器學(xué)習(xí)。例如,我們使用Google照相或Google語(yǔ)音搜索功能時(shí),就是間接使用了TensorFlow模型,它們?cè)诖笮虶oogle硬件集群上工作,在感知任務(wù)方面功能強(qiáng)大。

TensorFlow在很大程度上可以看作Theano的后繼者,不僅因?yàn)樗鼈冇泻艽笠慌餐拈_(kāi)發(fā)者,更是因?yàn)樗鼈冞€擁有相近的設(shè)計(jì)理念——基于計(jì)算圖實(shí)現(xiàn)自動(dòng)微分系統(tǒng)。

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)題。

  1. 由于TensorFlow的接口一直處于快速迭代之中,并且版本之間存在不兼容的問(wèn)題,因此開(kāi)發(fā)和調(diào)試過(guò)程可能會(huì)出現(xiàn)問(wèn)題(許多開(kāi)源代碼無(wú)法在新版的TensorFlow上運(yùn)行)。
  2. 想學(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)的學(xué)習(xí)過(guò)程。
  3. 在代碼層面,面對(duì)同一個(gè)功能,TensorFlow提供了多種實(shí)現(xiàn),這些實(shí)現(xiàn)良莠不齊,使用中還有細(xì)微的差異,請(qǐng)讀者注意區(qū)分。另外,TensorFlow創(chuàng)造了圖、會(huì)話、命名空間、PlaceHolder等諸多抽象概念,對(duì)普通用戶來(lái)說(shuō)難以理解。

總結(jié):憑借Google強(qiáng)大的推廣能力,TensorFlow已經(jīng)成為當(dāng)今最炙手可熱的深度學(xué)習(xí)框架,雖不完美但是最流行。目前各公司使用的框架也不統(tǒng)一,讀者有必要多學(xué)習(xí)幾個(gè)流行框架以作為知識(shí)儲(chǔ)備,TensorFlow就是一個(gè)不錯(cuò)的選擇。

03 Keras

 

4款深度學(xué)習(xí)框架簡(jiǎn)介,初學(xué)者該如何選擇?

 

Keras是一個(gè)高層神經(jīng)網(wǎng)絡(luò)API,由純Python編寫(xiě)而成并使用TensorFlow、Theano及CNTK作為后端。Keras為支持快速實(shí)驗(yàn)而生,能夠把想法迅速轉(zhuǎn)換為結(jié)果。Keras應(yīng)該是深度學(xué)習(xí)框架之中最容易上手的一個(gè),它提供了一致而簡(jiǎn)潔的API,能夠極大地減少一般應(yīng)用下用戶的工作量,避免用戶重復(fù)造輪子。

嚴(yán)格意義上講,Keras并不能算是一個(gè)深度學(xué)習(xí)框架,它更像一個(gè)構(gòu)建于第三方框架之上的深度學(xué)習(xí)接口。Keras的缺點(diǎn)很明顯:過(guò)度封裝導(dǎo)致喪失靈活性。

Keras最初作為Theano的高級(jí)API,后來(lái)增加了TensorFlow和CNTK作為后端。為了屏蔽后端的差異性,提供一致的用戶接口,Keras做了層層封裝,導(dǎo)致用戶在新增操作或獲取底層的數(shù)據(jù)信息時(shí)過(guò)于困難。

同時(shí),過(guò)度封裝也使得Keras的程序執(zhí)行十分緩慢,許多Bug都隱藏于封裝之中,在絕大多數(shù)場(chǎng)景下,Keras是本書(shū)介紹的所有框架中運(yùn)行最慢的一個(gè)。

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

總結(jié):Keras比較適合作為深度學(xué)習(xí)框架,但是過(guò)度的封裝并不適合新手學(xué)習(xí)(無(wú)法理解深度學(xué)習(xí)的真正內(nèi)涵),故不推薦。

04 PyTorch

 

 

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

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

  • 使用強(qiáng)大的GPU加速的Tensor計(jì)算(類似 Numpy)。
  • 構(gòu)建基于tape框架的autograd系統(tǒng)深度神經(jīng)網(wǎng)絡(luò)。

除此之外,PyTorch提供了完整的官方文檔、幫助用戶循序漸進(jìn)地學(xué)習(xí)的用戶指南,以及作者親自維護(hù)的論壇以供用戶交流和求教。

Facebook人工智能研究院FAIR對(duì)PyTorch提供了強(qiáng)力支持,作為當(dāng)今世界排名前三的深度學(xué)習(xí)研究機(jī)構(gòu),F(xiàn)AIR的力挺足以確保PyTorch獲得持續(xù)開(kāi)發(fā)、更新的支持,不至于像許多由個(gè)人開(kāi)發(fā)的框架那樣只是曇花一現(xiàn)。

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

相對(duì)于TensorFlow,PyTorch有一個(gè)顯著優(yōu)點(diǎn),就是它的圖是動(dòng)態(tài)的,而TensorFlow是靜態(tài)的,不利于擴(kuò)展。同時(shí),PyTorch的使用非常方便。

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

小結(jié):深度學(xué)習(xí)框架該如何選擇?

初學(xué)者往往糾結(jié)于選擇哪個(gè)深度學(xué)習(xí)框架作為學(xué)習(xí)的開(kāi)始。在這里筆者建議初學(xué)者選擇容易上手、非過(guò)度調(diào)用接口的框架。另外對(duì)于初學(xué)者來(lái)說(shuō),所選框架應(yīng)具備易用性強(qiáng)、性能佳、社區(qū)完善以及平臺(tái)支持等特點(diǎn)。

當(dāng)今行業(yè)內(nèi)各大公司使用的框架也都不盡相同,因此初學(xué)者可以考慮掌握多個(gè)框架(比如PyTorch和TensorFlow)以應(yīng)對(duì)未來(lái)的職場(chǎng)要求。

 

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2017-05-25 11:14:21

機(jī)器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)

2017-05-25 13:37:46

機(jī)器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)

2009-09-07 11:09:47

思科認(rèn)證CCNA初學(xué)者

2020-09-08 19:03:41

Java代碼初學(xué)者

2009-09-28 10:34:43

NET初學(xué)者學(xué)習(xí)建議

2010-01-14 17:18:17

C++語(yǔ)言

2010-01-15 19:05:42

學(xué)習(xí)C++

2009-09-28 09:45:00

CCNA學(xué)習(xí)經(jīng)驗(yàn)CCNA

2021-03-14 18:22:23

套接字網(wǎng)絡(luò)通信

2009-12-25 10:11:32

Red hat Lin

2015-07-20 13:56:59

SDN

2011-06-17 14:54:31

Qt

2011-08-24 17:05:01

Lua

2011-09-16 09:38:19

Emacs

2022-04-24 15:21:01

MarkdownHTML

2016-12-30 13:23:30

AI 初學(xué)者分類

2011-04-12 10:13:24

2009-07-08 09:32:40

ScalaScala與Java

2020-08-07 07:05:48

JavaScript開(kāi)發(fā)技術(shù)

2020-08-04 08:42:10

Python開(kāi)發(fā)工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)