- Python快樂(lè)編程:人工智能深度學(xué)習(xí)基礎(chǔ)
- 千鋒教育高教產(chǎn)品研發(fā)部編著
- 922字
- 2022-07-27 18:55:57
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í)工具。
- Learning Scala Programming
- 控糖控脂健康餐
- Magento 2 Theme Design(Second Edition)
- 基于Java技術(shù)的Web應(yīng)用開發(fā)
- Hands-On Swift 5 Microservices Development
- PySpark Cookbook
- Java高并發(fā)核心編程(卷1):NIO、Netty、Redis、ZooKeeper
- R語(yǔ)言數(shù)據(jù)可視化:科技圖表繪制
- SQL Server 2016 從入門到實(shí)戰(zhàn)(視頻教學(xué)版)
- OpenCV 3計(jì)算機(jī)視覺(jué):Python語(yǔ)言實(shí)現(xiàn)(原書第2版)
- Application Development with Parse using iOS SDK
- After Effects CC案例設(shè)計(jì)與經(jīng)典插件(視頻教學(xué)版)
- Learning Shiny
- 面向?qū)ο蠓治雠c設(shè)計(jì)(第3版)
- 中小企業(yè)網(wǎng)站建設(shè)與管理(靜態(tài)篇)