PaddlePaddle系列之三行代碼從入門到精通

作者 | 金天

編輯 | Vincent

AI前線出品| ID:ai-front

AI 前線導(dǎo)語(yǔ):“作者本人說(shuō)龄坪,這將是 PaddlePaddle 系列教程的開(kāi)篇,屬于非官方教程。既然是非官方芜茵,自然會(huì)從一個(gè)使用者的角度出發(fā),來(lái)教大家怎么用倡蝙,會(huì)有哪些坑九串,以及如何上手并用到實(shí)際項(xiàng)目中去”。

本文首發(fā)在作者 GitHub:https://jinfagang.github.io寺鸥,現(xiàn)由作者授權(quán)猪钮,AI 前線整理發(fā)布。

三行代碼 PaddlePaddle 從入門到精通

PaddlePaddle 是百度大力推出的一個(gè)框架胆建,不得不說(shuō)相比于 tensorflow烤低,PaddlePaddle 會(huì)簡(jiǎn)單很多,接下來(lái)我會(huì)細(xì)說(shuō)笆载。同時(shí)百度在人工智能方面的功底還是非常深厚扑馁,我曾經(jīng)在騰訊實(shí)習(xí)涯呻,類似于 AT 這樣的公司,甚至沒(méi)有一個(gè)非常成型的框架存在檐蚜。

既然是三行代碼精通 PaddlePaddle魄懂,那么得安裝一下 PaddlePaddle。就目前來(lái)說(shuō)闯第,最好的辦法是 build from source市栗。步驟如下 (注意,這里是 CPU 版本咳短,GPU 版本的源碼編譯過(guò)程后續(xù)補(bǔ)充填帽,我們先用 CPU 來(lái)熟悉 API):

好了,看上去應(yīng)該算是安裝完了咙好。接下來(lái)我們用三行代碼來(lái)測(cè)試一下?

PaddlePaddle 在 python API 上 0.10 有較大的變化篡腌,所以直接 import 一下 v2 版本的 API。如果可以說(shuō)明 PaddlePaddle 安裝沒(méi)有問(wèn)題勾效。這里贊一下百度的技術(shù)功底和用戶體驗(yàn)嘹悼,這尼瑪要是 caffe 或者 caffe2 編譯出錯(cuò)概率 100% 不說(shuō),python 安裝了也不能 import层宫,PaddlePaddle 一步到位杨伙,非常牛逼。

閑話不多說(shuō)萌腿,直接三行代碼來(lái)熟悉一下 PaddlePaddle 的 API限匣。

三行代碼來(lái)了

接下來(lái)要做的事情是,用 PaddlePaddle 搭建一個(gè) 3 層 MLP 網(wǎng)絡(luò)毁菱,跑一個(gè)二維的 numpy 隨機(jī)數(shù)據(jù)米死,來(lái)了解一下 PaddlePaddle 從數(shù)據(jù)喂入到訓(xùn)練的整個(gè) pipeline 吧。

首先我們這個(gè)教程先給大家展示一個(gè)圖片分類器贮庞,用到的數(shù)據(jù)集是 Stanford Dogs 數(shù)據(jù)集峦筒, 下載鏈接, 大概 800M, 同時(shí)下載一下 annotations, 大概 21M窗慎。下載好了我們用一個(gè) paddle_test 的文件夾來(lái)做這個(gè)教程吧勘天。

把所有的 images 和 annotations 扔到 data 里面去,解壓一下:

順便說(shuō)一下捉邢,這里的 annotations 是為后面用 paddlepaddle 做分割做準(zhǔn)備脯丝,本次分類任務(wù),只需要一個(gè) images.tar 就可以了伏伐,所有圖片被放在了該類別的文件夾下面宠进,以后處理其他分類任務(wù)時(shí),只需要把不同類別放在文件夾就 OK 了藐翎,甚至不用改代碼材蹬,非常方便实幕,這比 MXNet 要有道理很多,多數(shù)情況下我們根本不需要海量圖片訓(xùn)練堤器,也沒(méi)有必要搞個(gè)什么 imrecord 的數(shù)據(jù)格式昆庇,MXNet 導(dǎo)入圖片真心蛋疼,沒(méi)有 Pytorch 方便闸溃,但是 Pytorch 得運(yùn)行速度堪憂整吆。

OK,將 images.tar 解壓辉川,會(huì)得到 120 個(gè)文件夾表蝙,也就是 120 個(gè)類別,每個(gè)類別里面都是一種狗狗圖片乓旗。

我們現(xiàn)在要來(lái)處理一下這些蠢狗府蛇。

開(kāi)始寫三行代碼

好了,開(kāi)始寫三行代碼了.

實(shí)際上 PaddlePaddle 的使用也就是三行代碼的事情屿愚,首先是網(wǎng)絡(luò)構(gòu)建汇跨,這里我們構(gòu)建一個(gè) VGG 網(wǎng)絡(luò),其次是 event 的處理函數(shù)妆距,這個(gè)機(jī)制是 PaddlePaddle 獨(dú)有的穷遂,PaddlePaddle 把所有的訓(xùn)練過(guò)程都包裝成了一個(gè) trainer,然后調(diào)用這個(gè) event_handler 來(lái)處理比如打印 loss 信息這樣的事情毅厚。OK塞颁,我們一步一步來(lái)浦箱,先來(lái)看一下 train 的過(guò)程把:

PaddlePaddle 的網(wǎng)絡(luò)訓(xùn)練流程分為幾個(gè)步驟:

1吸耿、首先定義網(wǎng)絡(luò),這里的網(wǎng)絡(luò)不包括最后一層的 softmax酷窥;

2咽安、創(chuàng)建一個(gè) cost,cost 當(dāng)然就需要一個(gè)網(wǎng)絡(luò)的輸出和 lable 了蓬推;

3妆棒、通過(guò)這個(gè) cost 來(lái)創(chuàng)建網(wǎng)絡(luò)訓(xùn)練的參數(shù),非常簡(jiǎn)單明了沸伏;

4糕珊、最后是優(yōu)化器,這里定義反向傳播的正則項(xiàng)毅糟,學(xué)習(xí)速率調(diào)整策略等红选;

5、通過(guò)上面這些創(chuàng)建一個(gè) trainer姆另;

6喇肋、最后這個(gè) trainer 要訓(xùn)練起來(lái)坟乾,還需要持續(xù)的數(shù)據(jù)喂入,時(shí)間處理函數(shù)蝶防,和喂入的方式甚侣。

接著我們看一下網(wǎng)絡(luò)定義和事件處理函數(shù):

這里我們先用 PaddlePaddle 內(nèi)置的 cifar10 來(lái)測(cè)試一下能否訓(xùn)練起來(lái),把上面的代碼加上 import 之后:

在主函數(shù)里面運(yùn)行 train()间学。見(jiàn)證奇跡的時(shí)刻到了殷费。。

PaddlePaddle 開(kāi)始下載數(shù)據(jù)菱鸥,并打印出了網(wǎng)絡(luò)結(jié)構(gòu)宗兼!

so far so good,PaddlePaddle 開(kāi)始訓(xùn)練網(wǎng)絡(luò)5伞R笊堋!

牛逼了我的哥鹊漠。接下來(lái)我們用這個(gè)代碼來(lái)保存網(wǎng)絡(luò)訓(xùn)練之后的權(quán)重:

最后主到,模型 train 好之后,導(dǎo)入模型進(jìn)行預(yù)測(cè):

OK, 本次列車到此結(jié)束躯概,對(duì)于 PaddlePaddle 如何訓(xùn)練一個(gè)圖片分類器登钥,應(yīng)該有了一個(gè)清醒的認(rèn)識(shí),下一步娶靡,我們將繼續(xù)…. 用 PaddlePaddle 實(shí)現(xiàn)一個(gè) NLP 情感分類器牧牢!

作者介紹

金天,清華大學(xué)在讀研究生姿锭,深度學(xué)習(xí)領(lǐng)域研究者塔鳍;熱愛(ài)人工智能,以及電子硬件制作呻此,是要成為鋼鐵俠的男人轮纫;歐曼信息科技有限公司 CEO,業(yè)余魔術(shù)師焚鲜。


-全文完-

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

http://t.cn/Rl2MGtT

《深入淺出TensorFlow》迷你書(shū)現(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,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異螃诅,居然都是意外死亡啡氢,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門术裸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)倘是,“玉大人,你說(shuō)我怎么就攤上這事袭艺〔笳福” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵猾编,是天一觀的道長(zhǎng)瘤睹。 經(jīng)常有香客問(wèn)我,道長(zhǎng)答倡,這世上最難降的妖魔是什么轰传? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮瘪撇,結(jié)果婚禮上获茬,老公的妹妹穿的比我還像新娘。我一直安慰自己倔既,他們只是感情好恕曲,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著叉存,像睡著了一般码俩。 火紅的嫁衣襯著肌膚如雪度帮。 梳的紋絲不亂的頭發(fā)上歼捏,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音笨篷,去河邊找鬼瞳秽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛率翅,可吹牛的內(nèi)容都是我干的练俐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼冕臭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼腺晾!你這毒婦竟也來(lái)了燕锥?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤悯蝉,失蹤者是張志新(化名)和其女友劉穎归形,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體鼻由,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡暇榴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蕉世。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔼紧。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖狠轻,靈堂內(nèi)的尸體忽然破棺而出奸例,到底是詐尸還是另有隱情,我是刑警寧澤向楼,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布哩至,位于F島的核電站,受9級(jí)特大地震影響蜜自,放射性物質(zhì)發(fā)生泄漏菩貌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一重荠、第九天 我趴在偏房一處隱蔽的房頂上張望箭阶。 院中可真熱鬧,春花似錦戈鲁、人聲如沸仇参。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)诈乒。三九已至,卻和暖如春婆芦,著一層夾襖步出監(jiān)牢的瞬間怕磨,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工消约, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肠鲫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓或粮,卻偏偏與公主長(zhǎng)得像导饲,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)渣锦、插件硝岗、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,024評(píng)論 4 62
  • Tensorflow現(xiàn)狀 為什么選擇tensorflow呢?不是因?yàn)樗嗝炊嗝磳糯校且驗(yàn)樗脑O(shè)計(jì)很符合一個(gè)神經(jīng)網(wǎng)...
    LucasJin閱讀 1,158評(píng)論 1 5
  • 內(nèi)容屬性: 生產(chǎn)時(shí)間2017年7月29日辈讶,內(nèi)容保鮮期18個(gè)月,內(nèi)容省略度5%娄猫, 內(nèi)容類型:干貨型贱除。內(nèi)容制作視角:全...
    青陽(yáng)的桌邊談資兒閱讀 29,744評(píng)論 9 169
  • 現(xiàn)在科學(xué)技術(shù)對(duì)機(jī)器人的研究,取得一些成果媳溺。雖然我們經(jīng)常在一些科幻電影里看到機(jī)器人取代人類成為這個(gè)世界新的統(tǒng)治...
    sophieme閱讀 2,778評(píng)論 0 0
  • 一月幌、程君|414 文章名字:polkadot(波卡)望眼欲穿的千倍幣 點(diǎn)評(píng)內(nèi)容 1 班長(zhǎng),你的文章非常專業(yè)悬蔽,我沒(méi)看...
    理性豬和骨頭狗閱讀 556評(píng)論 1 0