深入淺出TensorFlow(六)TensorFlow高層封裝

作者 | 鄭澤宇

AI前線出品| ID:ai-front

在前面的幾篇文章已經(jīng)介紹了如何使用原生態(tài)TensorFlow API來實(shí)現(xiàn)各種不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。雖然原生態(tài)的TensorFlow API可以很靈活的支持不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)或听,但是其代碼相對(duì)比較冗長乾蛤,寫起來比較麻煩裤园。為了讓TensorFlow用起來更加方便,可以使用一些TensorFlow的高層封裝。

目前對(duì)TensorFlow的主要封裝有4個(gè):

第一個(gè)是TensorFlow-Slim伞租;

第二個(gè)是tf.contrib.learn(之前也被稱為skflow)淹接;

第三個(gè)是TFLearn十性;

最后一個(gè)是Keras。

本文將大致介紹這幾種不同的高層封裝的使用方法塑悼,并通過其中常用的三種方式在MNIST數(shù)據(jù)集上實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)劲适。

TensorFlow-Slim

TensorFlow-Slim是一個(gè)相對(duì)輕量級(jí)的TensorFlow高層封裝。通過TensorFlow-Slim厢蒜,定義網(wǎng)絡(luò)結(jié)構(gòu)的代碼可以得到很大程度的簡化霞势,使得整個(gè)代碼更加可讀烹植。下面的代碼對(duì)比了使用原生態(tài)TensorFlow實(shí)現(xiàn)卷積層和使用TensorFlow-Slim實(shí)現(xiàn)卷積層的代碼:


從上面的代碼可以看出,使用TensorFlow-Slim可以大幅減少代碼量愕贡。省去很多與網(wǎng)絡(luò)結(jié)構(gòu)無關(guān)的變量聲明的代碼草雕。雖然TensorFlow-Slim可以起到簡化代碼的作用,但是在實(shí)際應(yīng)用中固以,使用TensorFlow-Slim定義網(wǎng)絡(luò)結(jié)構(gòu)的情況相對(duì)較少墩虹,因?yàn)樗炔蝗缭鷳B(tài)TensorFlow的靈活,也不如下面將要介紹的其他高層封裝簡潔憨琳。但除了簡化定義神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的代碼量诫钓,使用TensorFlow-Slim的一個(gè)最大好處就是它直接實(shí)現(xiàn)了一些經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò),并且Google提供了這些神經(jīng)網(wǎng)絡(luò)在ImageNet上訓(xùn)練好的模型篙螟。下表總結(jié)了通過TensorFlow-Slim可以直接實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)模型:



Google提供的訓(xùn)練好的模型可以在github上tensorflow/models/slim目錄下找到尖坤。在該目錄下也提供了遷移學(xué)習(xí)的案例和代碼。

tf.contrib.learn

tf.contrib.learn是TensorFlow官方提供的另外一個(gè)對(duì)TensorFlow的高層封裝闲擦,通過這個(gè)封裝慢味,用戶可以和使用sklearn類似的方法使用TensorFlow。通過tf.contrib.learn訓(xùn)練模型時(shí)墅冷,需要使用一個(gè)Estimator對(duì)象纯路。Estimator對(duì)象是tf.contrib.learn 進(jìn)行模型訓(xùn)練(train/fit)和模型評(píng)估(evaluation)的入口。

tf.contrib.learn模型提供了一些預(yù)定義的 Estimator寞忿,例如線性回歸(tf.contrib.learn.LinearRegressor)驰唬、邏輯回歸(tf.contrib.learn.LogisticRegressor)、線性分類(tf.contrib.learn.LinearClassifier)以及一些完全由全連接層構(gòu)成的深度神經(jīng)網(wǎng)絡(luò)回歸或者分類模型(tf.contrib.learn.DNNClassifier腔彰、tf.contrib.learn.DNNRegressor)叫编。

除了可以使用預(yù)先定義好的模型,tf.contrib.learn也支持自定義模型霹抛,下面的代碼給出了使用tf.contrib.learn在MNIST數(shù)據(jù)集上實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的過程搓逾。更多關(guān)于tf.contrib.learn的介紹可以參考Google官方文檔。

https://www.tensorflow.org/get_started/tflearn



TFLearn

TensorFlow的另外一個(gè)高層封裝TFLearn進(jìn)一步簡化了tf.contrib.learn中對(duì)模型定義的方法杯拐,并提供了一些更加簡潔的方法來定義神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)霞篡。和上面兩個(gè)高層封裝不一樣,使用TFLearn需要單獨(dú)安裝端逼,安裝的方法為:

pip install tflearn

下面的代碼介紹了如何通過TFLearn來實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)朗兵。更多關(guān)于TFLearn的用法介紹可以參考TFLearn的官方網(wǎng)站(http://tflearn.org/


運(yùn)行上面的代碼,可以得到類似如下的輸出:


Keras

Keras是一個(gè)基于TensorFlow或者Theano的高層API顶滩,在安裝好TensorFlow之后可以通過以下命令可以安裝:

下面的代碼介紹了如何通過Keras來實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)余掖。更多關(guān)于Keras的用法介紹可以參考Keras的官方網(wǎng)站(http://tflearn.org/



運(yùn)行上面的代碼,可以得到類似如下的輸出:


作者介紹

鄭澤宇礁鲁,才云首席大數(shù)據(jù)科學(xué)家盐欺,前谷歌高級(jí)工程師赁豆。從 2013 年加入谷歌至今,鄭澤宇作為主要技術(shù)人員參與并領(lǐng)導(dǎo)了多個(gè)大數(shù)據(jù)項(xiàng)目找田,擁有豐富機(jī)器學(xué)習(xí)歌憨、數(shù)據(jù)挖掘工業(yè)界及科研項(xiàng)目經(jīng)驗(yàn)着憨。2014 年墩衙,他提出產(chǎn)品聚類項(xiàng)目用于銜接谷歌購物和谷歌知識(shí)圖譜(Knowledge Graph)數(shù)據(jù),使得知識(shí)卡片形式的廣告逐步取代傳統(tǒng)的產(chǎn)品列表廣告甲抖,開啟了谷歌購物廣告在搜索頁面投遞的新紀(jì)元漆改。他于2013 年 5 月獲得美國 Carnegie Mellon University(CMU)大學(xué)計(jì)算機(jī)碩士學(xué)位, 期間在頂級(jí)國際學(xué)術(shù)會(huì)議上發(fā)表數(shù)篇學(xué)術(shù)論文,并獲得西貝爾獎(jiǎng)學(xué)金准谚。


-全文完-

關(guān)注人工智能的落地實(shí)踐挫剑,與企業(yè)一起探尋 AI 的邊界,AICon 全球人工智能技術(shù)大會(huì)火熱售票中柱衔,8 折倒計(jì)時(shí)一周搶票樊破,詳情點(diǎn)擊:

http://t.cn/Rl2MGtT

《深入淺出TensorFlow》迷你書現(xiàn)已發(fā)布,關(guān)注公眾號(hào)“AI前線”唆铐,ID:ai-front哲戚,回復(fù)關(guān)鍵字:TF,獲取下載鏈接艾岂!


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末顺少,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子王浴,更是在濱河造成了極大的恐慌脆炎,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氓辣,死亡現(xiàn)場(chǎng)離奇詭異秒裕,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)钞啸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門簇爆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人爽撒,你說我怎么就攤上這事入蛆。” “怎么了硕勿?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵哨毁,是天一觀的道長。 經(jīng)常有香客問我源武,道長扼褪,這世上最難降的妖魔是什么想幻? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮话浇,結(jié)果婚禮上脏毯,老公的妹妹穿的比我還像新娘。我一直安慰自己幔崖,他們只是感情好食店,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赏寇,像睡著了一般吉嫩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嗅定,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天自娩,我揣著相機(jī)與錄音,去河邊找鬼渠退。 笑死忙迁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碎乃。 我是一名探鬼主播姊扔,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼荠锭!你這毒婦竟也來了旱眯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤证九,失蹤者是張志新(化名)和其女友劉穎删豺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愧怜,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呀页,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拥坛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓬蝶。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖猜惋,靈堂內(nèi)的尸體忽然破棺而出丸氛,到底是詐尸還是另有隱情,我是刑警寧澤著摔,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布缓窜,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏禾锤。R本人自食惡果不足惜私股,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恩掷。 院中可真熱鬧倡鲸,春花似錦、人聲如沸黄娘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寸宏。三九已至宁炫,卻和暖如春偿曙,著一層夾襖步出監(jiān)牢的瞬間氮凝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國打工望忆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留罩阵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓启摄,卻偏偏與公主長得像稿壁,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子歉备,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

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