從Theano到Lasagne:基于Python的深度學(xué)習(xí)的框架和庫(kù)

從Theano到Lasagne:基于Python的深度學(xué)習(xí)的框架和庫(kù)

深度學(xué)習(xí)是機(jī)器學(xué)習(xí)和人工智能的一種形式陵究,利用堆積在彼此頂部的神經(jīng)網(wǎng)絡(luò)的多個(gè)隱藏層來(lái)嘗試形成對(duì)數(shù)據(jù)更深層次的“理解”缴饭。

最近,深度神經(jīng)網(wǎng)絡(luò)以“Deep?Dreams”形式在網(wǎng)站中如雨后春筍般出現(xiàn)繁调,或是像谷歌研究原創(chuàng)論文中描述的那樣:Inceptionism萨蚕。

在這篇文章中,我們將討論幾個(gè)不同的深度學(xué)習(xí)框架蹄胰,庫(kù)以及工具岳遥。


Python深度學(xué)習(xí)

Theano

主頁(yè):http://deeplearning.net/software/theano/

Github網(wǎng)址:https://github.com/Theano/Theano

Theano不僅是這篇文章中將要討論的其他框架的核心庫(kù),于其自身而言裕寨,它也是一個(gè)強(qiáng)大的庫(kù)浩蓉,幾乎能在任何情況下使用,從簡(jiǎn)單的logistic回歸到建模并生成音樂(lè)和弦序列或是使用長(zhǎng)短期記憶人工神經(jīng)網(wǎng)絡(luò)對(duì)電影收視率進(jìn)行分類宾袜。

Theano大部分代碼是使用Cython編寫捻艳,Cython是一個(gè)可編譯為本地可執(zhí)行代碼的Python方言,與僅僅使用解釋性Python語(yǔ)言相比庆猫,它能夠使運(yùn)行速度快速提升认轨。最重要的是,很多優(yōu)化程序已經(jīng)集成到Theano庫(kù)中月培,它能夠優(yōu)化你的計(jì)算量并讓你的運(yùn)行時(shí)間保持最低嘁字。

如果速度的提升還不能滿足你恩急,它還內(nèi)置支持使用CUDA在GPU上執(zhí)行那些所有耗時(shí)的計(jì)算。所有的這一切僅僅只需要修改配置文件中的標(biāo)志位即可纪蜒。在CPU上運(yùn)行一個(gè)腳本衷恭,然后切換到GPU,而對(duì)于你的代碼霍掺,則不需要做任何變化匾荆。

同時(shí)我們應(yīng)該注意到,盡管Theano使用Cython和CUDA對(duì)其性能大大提升杆烁,但你仍然可以僅僅使用Python語(yǔ)言來(lái)創(chuàng)建幾乎任何類型的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)牙丽。

Pylearn2

主頁(yè):http://deeplearning.net/software/pylearn2/

Github網(wǎng)址:https://github.com/lisa-lab/pylearn2

Pylearn2和Theano由同一個(gè)開發(fā)團(tuán)隊(duì)開發(fā),Pylearn2是一個(gè)機(jī)器學(xué)習(xí)庫(kù)兔魂,它把深度學(xué)習(xí)和人工智能研究許多常用的模型以及訓(xùn)練算法封裝成一個(gè)單一的實(shí)驗(yàn)包烤芦,如隨機(jī)梯度下降。

你也可以很輕松的圍繞你的類和算法編寫一個(gè)封裝程序析校,為了能讓它在Pylearn2上運(yùn)行构罗,你需要在一個(gè)單獨(dú)的YAML格式的配置文件中配置你整個(gè)神經(jīng)網(wǎng)絡(luò)模型的參數(shù)。

除此之外智玻,它還有很多數(shù)據(jù)集及其預(yù)編譯好的軟件包遂唧,所以,你現(xiàn)在就可以直接使用MNIST數(shù)據(jù)集開始做實(shí)驗(yàn)了吊奢!

Blocks

Github網(wǎng)址:https://github.com/mila-udem/blocks

Blocks是一個(gè)非常模塊化的框架盖彭,有助于你在Theano上建立神經(jīng)網(wǎng)絡(luò)。目前它支持并提供的功能有:

構(gòu)建參數(shù)化Theano運(yùn)算页滚,稱之為“bricks”召边。

在大型模型中使用模式匹配來(lái)選擇變量以及“bricks”。

使用算法優(yōu)化模型裹驰。

訓(xùn)練模型的保存和恢復(fù)隧熙。

在訓(xùn)練過(guò)程中檢測(cè)和分析值(訓(xùn)練集以及測(cè)試集)。

圖形變換的應(yīng)用幻林,如dropout贞盯。

Keras

主頁(yè):http://keras.io/

Github網(wǎng)址:https://github.com/fchollet/keras

Keras是一個(gè)簡(jiǎn)約的、高度模塊化的神經(jīng)網(wǎng)絡(luò)庫(kù)沪饺,設(shè)計(jì)參考了Torch邻悬,基于Theano和Python語(yǔ)言編寫,支持GPU和CPU随闽。它的開發(fā)側(cè)重于實(shí)現(xiàn)快速試驗(yàn)和創(chuàng)造新的深度學(xué)習(xí)模型。

如果你需要具有以下功能的深度學(xué)習(xí)庫(kù)肝谭,采用Keras就恰到好處:

可以很容易地掘宪、快速地建立原型(通過(guò)總體模塊化蛾扇,極簡(jiǎn)化并且可擴(kuò)展化)。

支持卷積網(wǎng)絡(luò)和遞歸網(wǎng)絡(luò)魏滚,以及兩者的組合镀首。

支持任意連接方式(包括多輸入多輸出訓(xùn)練)。

Keras庫(kù)與其他采用Theano庫(kù)的區(qū)別是Keras的編碼風(fēng)格非常簡(jiǎn)約鼠次、清晰更哄。它把所有的要點(diǎn)使用小類封裝起來(lái),能夠很容易地組合在一起并創(chuàng)造出一種全新的模型腥寇。

CSDN博客上的更多介紹

DeepLearning tutorial(6)易用的深度學(xué)習(xí)框架Keras簡(jiǎn)介

DeepLearning tutorial(7)深度學(xué)習(xí)框架Keras的使用-進(jìn)階

Lasagne

Github網(wǎng)址:https://github.com/Lasagne/Lasagne

Lasagne不只是一個(gè)美味的意大利菜成翩,也是一個(gè)與Blocks和Keras有著相似功能的深度學(xué)習(xí)庫(kù),但其在設(shè)計(jì)上與它們有些不同赦役。

下面是Lasagne的一些設(shè)計(jì)目的:

簡(jiǎn)單化:它應(yīng)該是易于使用和擴(kuò)展的機(jī)器學(xué)習(xí)庫(kù)麻敌。每添加一個(gè)特征,就應(yīng)該考慮其對(duì)易用性和擴(kuò)展性的影響掂摔。每一個(gè)抽象概念的加入都應(yīng)該仔細(xì)檢查术羔,以確定增加的復(fù)雜性是否合理。

小接口:盡可能少的類和方法乙漓。盡可能依賴Theano的功能和數(shù)據(jù)類型级历,遵循Theano的規(guī)定。如果沒(méi)有嚴(yán)格的必要叭披,不要在類中封裝東西寥殖。這會(huì)使它更容易使用庫(kù)并且擴(kuò)展它(不需要有太多的認(rèn)知)。

不礙事:未使用的功能應(yīng)該是不可見(jiàn)的趋观,用戶不會(huì)考慮他們不使用的功能扛禽。盡可能單獨(dú)的使用庫(kù)文件中的組件。

透明性:不要試圖掩蓋Theano皱坛,盡量以Python或NumPy數(shù)據(jù)類型的形式將函數(shù)和方法返回給Theano表達(dá)式编曼。

重點(diǎn):遵循Unix哲學(xué)“做一件事,并把它做好”剩辟,重點(diǎn)集中在前饋神經(jīng)網(wǎng)絡(luò)掐场。

實(shí)用主義:使普通用例更易于使用,這要比支持每一個(gè)可能的用例更為重要贩猎。

原文鏈接:Frameworks and Libraries for Deep Learning(譯者/劉帝偉 審校/劉翔宇熊户、朱正貴 責(zé)編/周建丁)

譯者簡(jiǎn)介:劉帝偉吭服,中南大學(xué)軟件學(xué)院在讀研究生嚷堡,關(guān)注機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘及生物信息領(lǐng)域艇棕。

延伸閱讀

深度學(xué)習(xí) ( Deep Learning ) 的 Python 包哪家強(qiáng)蝌戒?(From:知乎)

Python語(yǔ)言下的機(jī)器學(xué)習(xí)庫(kù)(From:博樂(lè)在線翻譯)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末串塑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子北苟,更是在濱河造成了極大的恐慌桩匪,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件友鼻,死亡現(xiàn)場(chǎng)離奇詭異傻昙,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)彩扔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門妆档,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人借杰,你說(shuō)我怎么就攤上這事过吻。” “怎么了蔗衡?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵纤虽,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我绞惦,道長(zhǎng)逼纸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任济蝉,我火速辦了婚禮杰刽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘王滤。我一直安慰自己贺嫂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布雁乡。 她就那樣靜靜地躺著第喳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪踱稍。 梳的紋絲不亂的頭發(fā)上曲饱,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音珠月,去河邊找鬼扩淀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛啤挎,可吹牛的內(nèi)容都是我干的驻谆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼旺韭!你這毒婦竟也來(lái)了氛谜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤区端,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后澳腹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體织盼,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年酱塔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沥邻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羊娃,死狀恐怖唐全,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蕊玷,我是刑警寧澤邮利,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站垃帅,受9級(jí)特大地震影響延届,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贸诚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一方庭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酱固,春花似錦械念、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至扇苞,卻和暖如春欺殿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鳖敷。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工脖苏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人定踱。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓棍潘,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子亦歉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容