官术网_书友最值得收藏!

2.1 初識(shí)Theano

Theano是最早的深度學(xué)習(xí)開發(fā)工具之一,是在BSD許可證下發(fā)布的一個(gè)開源項(xiàng)目,它的開發(fā)始于2007年,由Yoshua Bengio領(lǐng)導(dǎo)的加拿大蒙特利爾理工學(xué)院LISA集團(tuán)(現(xiàn)MILA)開發(fā),Theano的名字源于一位著名的希臘數(shù)學(xué)家,它是為深度學(xué)習(xí)中處理大型神經(jīng)網(wǎng)絡(luò)算法所需的計(jì)算而專門設(shè)計(jì)的,擅長(zhǎng)處理多維數(shù)組庫(kù),與其他深度學(xué)習(xí)庫(kù)結(jié)合使用時(shí)十分適合用于數(shù)據(jù)探索。Theano首次引入了“符號(hào)計(jì)算圖”來(lái)描述模型表達(dá)式的開源結(jié)構(gòu),目前,這被看作深度學(xué)習(xí)研究和開發(fā)的行業(yè)標(biāo)準(zhǔn)。Theano可以被理解成數(shù)學(xué)表達(dá)式的編譯器:用符號(hào)式語(yǔ)言定義需要的結(jié)果,該框架會(huì)對(duì)程序進(jìn)行編譯,從而高效運(yùn)行于GPU或CPU。目前許多優(yōu)秀的深度學(xué)習(xí)開源工具庫(kù)對(duì)Theano的底層設(shè)計(jì)進(jìn)行了借鑒,如Tensorflow、Keras等,因此,掌握Theano的使用方法可以作為學(xué)習(xí)其他類似開源工具的鋪墊。

Theano是一個(gè)基于Python和Numpy的數(shù)值計(jì)算工具包,它可以定義最優(yōu)化以及估值高維度的數(shù)學(xué)表達(dá)式,也可以通過(guò)一系列代碼優(yōu)化從而獲得更好的硬件性能。

theano.tensor數(shù)據(jù)類型包含double、int、uchar、float等,最常用的類型是int和float,具體如下所示:

· 數(shù)值——iscalar(int類型的變量)、fscalar(float類型的變量);

· 一維向量——ivector(int類型的向量)、fvector(float類型的向量);

· 二維矩陣——fmatrix(float類型矩陣)、imatrix(int類型的矩陣);

· 三維float類型矩陣——ftensor3;

· 四維float類型矩陣——ftensor4。

Theano與Tensorflow功能十分相似(前面提到,Tensorflow借鑒了Theano的底層設(shè)計(jì)),因而兩者常常被放在一起比較,這兩者都偏向底層。Theano更像一個(gè)研究平臺(tái),并沒(méi)有專門用于深度學(xué)習(xí)的相關(guān)接口。例如,Theano中沒(méi)有現(xiàn)成的神經(jīng)網(wǎng)絡(luò)分級(jí),因此,在實(shí)際應(yīng)用中需要從最基本的網(wǎng)絡(luò)層開始構(gòu)建所需要的模型。

經(jīng)過(guò)多年發(fā)展,目前有大量基于Theano的開源深度學(xué)習(xí)庫(kù)被開發(fā)并得到實(shí)際應(yīng)用,例如Keras、Lasagne和Blocks。這些更高層級(jí)的wrapper API可以大幅減少開發(fā)時(shí)間以及開發(fā)過(guò)程中的麻煩。現(xiàn)在,大多數(shù)使用Theano的開發(fā)者都會(huì)借助輔助API進(jìn)行開發(fā),Theano已經(jīng)逐漸形成一套生態(tài)系統(tǒng),可以在使用Theano時(shí)借助其他API來(lái)降低其使用難度。

在過(guò)去的很長(zhǎng)一段時(shí)間內(nèi),Theano都是深度學(xué)習(xí)開發(fā)與研究的行業(yè)標(biāo)準(zhǔn)。由于Theano是由高校的研究團(tuán)隊(duì)研發(fā)的,它的設(shè)計(jì)初衷是服務(wù)于學(xué)術(shù)研究,這導(dǎo)致深度學(xué)習(xí)領(lǐng)域的許多學(xué)者至今仍在使用Theano。對(duì)于深度學(xué)習(xí)新手而言,使用Theano練手對(duì)于深入理解模型的原理有很大的好處,但對(duì)于開發(fā)者而言,還是建議使用Tensorflow等更高效的深度學(xué)習(xí)工具。

主站蜘蛛池模板: 湛江市| 黑河市| 汕头市| 罗山县| 凌云县| 亚东县| 泽州县| 新巴尔虎右旗| 久治县| 正蓝旗| 监利县| 陆川县| 惠东县| 方城县| 祁东县| 鱼台县| 鹤庆县| 鄂州市| 高淳县| 淮南市| 浦北县| 河池市| 保德县| 同心县| 松江区| 海原县| 抚松县| 拉萨市| 永安市| 巍山| 天等县| 富裕县| 兰西县| 张北县| 沁阳市| 玛多县| 清河县| 金门县| 察隅县| 海城市| 潍坊市|