【轉(zhuǎn)載】如何快速在阿里云上構(gòu)建自己的機(jī)器學(xué)習(xí)應(yīng)用

原作者:云棲社區(qū)-場(chǎng)景研讀

姓名:郭滋棟 班級(jí):1402019 學(xué)號(hào):13020199007

【嵌牛導(dǎo)讀】:在2017云棲大會(huì)深圳峰會(huì)開(kāi)源專(zhuān)場(chǎng)上缚忧,阿里云容器服務(wù)技術(shù)專(zhuān)家車(chē)漾做了題為《在阿里云上構(gòu)建機(jī)器學(xué)習(xí)應(yīng)用》的精彩演講悟泵,車(chē)漾首先從2016年深度學(xué)習(xí)最火的兩個(gè)應(yīng)用AlphaGo與Prisma談起,從宏觀層面分享了機(jī)器學(xué)習(xí)以及深度學(xué)習(xí)所做的事情闪水,并就Prisma的發(fā)展故事談起朽肥,為大家介紹了應(yīng)該學(xué)會(huì)以工程思想思考和解決問(wèn)題,并著重介紹了阿里云基于容器服務(wù)的機(jī)器學(xué)習(xí)解決方案架構(gòu)設(shè)計(jì)以及如何借助阿里云快速搭建自己的機(jī)器學(xué)習(xí)應(yīng)用,精彩不容錯(cuò)過(guò)驼抹。

【嵌牛鼻子】:深度學(xué)習(xí) 阿里云 函數(shù) 容器 負(fù)載均衡 解決方案

【嵌牛正文】:在2016年有兩個(gè)深度學(xué)習(xí)應(yīng)用使得深度學(xué)習(xí)這個(gè)概念走入了平常百姓家明也,大家開(kāi)始意識(shí)到深度學(xué)習(xí)技術(shù)好像和我們的生活開(kāi)始產(chǎn)生聯(lián)系了握玛。第一件事情就是AlphaGo戰(zhàn)勝了圍棋世界的高手李世石愕撰,它向我們證明了一件事情:計(jì)算機(jī)不但具有強(qiáng)大的運(yùn)算能力,它甚至開(kāi)始學(xué)會(huì)學(xué)習(xí)了,更可怕的是計(jì)算機(jī)的學(xué)習(xí)能力是一種縱向深入的學(xué)習(xí)能力点骑,也就是隨著計(jì)算機(jī)看到的數(shù)據(jù)越來(lái)越多袁辈,隨著時(shí)間的不斷往前發(fā)展济舆,計(jì)算機(jī)有可能成為某個(gè)領(lǐng)域的專(zhuān)家,在圍棋中是這樣浅悉,在其他的領(lǐng)域,比如醫(yī)學(xué)等領(lǐng)域也都會(huì)有同樣的影響娇昙。可以說(shuō)兵志,AlphaGo是第一個(gè)使我們真正意識(shí)到機(jī)器學(xué)習(xí)具有一種自我演進(jìn)能力的應(yīng)用楼镐。



第二件事情就比較有意思了妖谴,Prisma這款應(yīng)用是2016年度蘋(píng)果APP Store的排到第一名的最佳手機(jī)應(yīng)用,這款手機(jī)應(yīng)用其實(shí)也是基于深度學(xué)習(xí)技術(shù)來(lái)實(shí)現(xiàn)的,它所做的事情就是像將自己家小區(qū)后院的照片傳上去滋迈,然后指定一個(gè)繪畫(huà)大師的作品皆疹,比如指定梵高的《星空》這個(gè)作品螺戳,將兩者合成一張新的圖片组哩。



合成后的這個(gè)圖片的特點(diǎn)就是內(nèi)容還是樓下的小區(qū)涛浙,但是這張圖片的風(fēng)格看起來(lái)就是梵高畫(huà)出來(lái)的了。那么如果使用機(jī)器學(xué)習(xí)的語(yǔ)言來(lái)解釋一下這是如何做的就是實(shí)際上這個(gè)應(yīng)用做了兩件事情:第一件事情就是從這張梵高的畫(huà)中學(xué)習(xí)出來(lái)一個(gè)函數(shù)f()抱怔,這個(gè)函數(shù)f()的價(jià)值是什么呢固逗?其實(shí)就是反應(yīng)了梵高這幅畫(huà)作的風(fēng)格哈踱,這就是機(jī)器學(xué)習(xí)所做的第一件事情,從這張畫(huà)作學(xué)習(xí)到了一個(gè)能夠反應(yīng)梵高風(fēng)格的函數(shù)。其實(shí)比如說(shuō)產(chǎn)生整個(gè)圖片的工作需要花費(fèi)10個(gè)小時(shí)的話,上面說(shuō)的這個(gè)產(chǎn)生f()函數(shù)的這件事情需要花費(fèi)9個(gè)小時(shí)规个,甚至是9個(gè)小時(shí)55分鐘唤蔗。而最后將這個(gè)函數(shù)f()求出來(lái)之后探遵,將樓下小區(qū)的照片這個(gè)X賦值到f()函數(shù)中,就產(chǎn)生了一個(gè)新的圖片妓柜,其實(shí)剩下的僅有的5分鐘就是用來(lái)做這件事情的箱季。

講到這里大家應(yīng)該就能理解所謂機(jī)器學(xué)習(xí)是在做什么,應(yīng)該怎樣去轉(zhuǎn)換這張圖片棍掐。這時(shí)候可能大家會(huì)產(chǎn)生一個(gè)疑問(wèn)藏雏,其實(shí)早在2010年就已經(jīng)濾鏡程序了,通過(guò)一個(gè)濾鏡打上去其實(shí)也可以產(chǎn)生這樣的效果塌衰,這個(gè)濾鏡程序和深度學(xué)習(xí)的畫(huà)像有什么區(qū)別呢诉稍?其實(shí)兩者之間的區(qū)別就在于這個(gè)f(),這里面最大的區(qū)別就是f()是如何產(chǎn)生的最疆,傳統(tǒng)的濾鏡技術(shù)是依靠一個(gè)程序員實(shí)現(xiàn)的杯巨,讓他去理解這個(gè)畫(huà)像的風(fēng)格是什么樣的,他自己去手敲代碼去實(shí)現(xiàn)f()這個(gè)函數(shù)努酸,而機(jī)器學(xué)習(xí)則是由機(jī)器自己從這個(gè)圖片中提取信息并且計(jì)算出f()服爷。這種區(qū)別產(chǎn)生的影響有兩個(gè):第一個(gè)就是程序員寫(xiě)一個(gè)梵高畫(huà)的風(fēng)格的程序可能需要花費(fèi)兩周的時(shí)間,如果再來(lái)一個(gè)畢加索就可能還需要兩周的時(shí)間获诈,也就是產(chǎn)生的成本比較高仍源,這是第一個(gè)影響,第二個(gè)影響是什么呢舔涎?就是理解性問(wèn)題笼踩,第一種使用濾鏡的方式對(duì)于畫(huà)的理解并不是梵高的理解,而是編寫(xiě)程序的程序員的理解亡嫌,所以在這里面需要為大家解釋清楚的就是機(jī)器學(xué)習(xí)和加濾鏡的區(qū)別就是機(jī)器學(xué)習(xí)的本質(zhì)嚎于,也就是這個(gè)規(guī)律是機(jī)器自己學(xué)習(xí)到的掘而,并不需要人來(lái)教,人只需要給它數(shù)據(jù)集就可以了于购。這個(gè)厲害的深度學(xué)習(xí)算法實(shí)際上并不是Prisma這個(gè)公司的創(chuàng)始人發(fā)明的袍睡,而是在2015年,也就是Prisma大火的前一年肋僧,三個(gè)德國(guó)的數(shù)據(jù)科學(xué)家發(fā)明了這個(gè)算法并且利用這個(gè)算法創(chuàng)辦了自己的創(chuàng)業(yè)公司叫做DeepArt斑胜,它所能做的事情就是提供一個(gè)網(wǎng)站讓用戶將自己的圖片上傳上去并選擇一個(gè)風(fēng)格,經(jīng)過(guò)3到5個(gè)小時(shí)的計(jì)算產(chǎn)生處一個(gè)有自己圖片內(nèi)容的大師風(fēng)格的作品嫌吠。這個(gè)網(wǎng)站上線之后效果還算不錯(cuò)止潘,有一些人愿意花100多歐元去得到這樣一幅作品,但是并沒(méi)有大火居兆。



而在2016年年初的時(shí)候覆山,一個(gè)俄羅斯的軟件工程師看到了這個(gè)論文并且也看到了DeepArt所做的產(chǎn)品竹伸,這個(gè)俄羅斯的工程師就認(rèn)為他們做的產(chǎn)品存在問(wèn)題泥栖。那么這個(gè)網(wǎng)站之所以沒(méi)有火起來(lái)是為什么呢?俄羅斯工程師進(jìn)行了思考勋篓,他發(fā)現(xiàn)原有產(chǎn)品中存在兩個(gè)問(wèn)題吧享,第一個(gè)問(wèn)題就是產(chǎn)生圖片的時(shí)間太長(zhǎng)了,5到6個(gè)小時(shí)譬嚣,沒(méi)有人愿意去等這么長(zhǎng)的時(shí)間钢颂;第二個(gè)問(wèn)題就是DeepArt只提供了一個(gè)網(wǎng)站,大家都知道網(wǎng)站無(wú)法得到高頻的訪問(wèn)拜银,我們需要有個(gè)電腦才能去進(jìn)行登錄再訪問(wèn)殊鞭,所以使用起來(lái)的效果并不好。所以這個(gè)俄羅斯工程師就想開(kāi)發(fā)一個(gè)手機(jī)APP尼桶,并使得手機(jī)APP能夠達(dá)到的效果是將圖片上傳上去之后等待10到20秒就能夠得到已經(jīng)選好風(fēng)格的圖片操灿,所以他就開(kāi)始研究如何讓圖片轉(zhuǎn)換的時(shí)間變短。其實(shí)就像剛才提到的泵督,在這里機(jī)器學(xué)習(xí)主要做兩件事情趾盐,第一件就是去求解代表風(fēng)格的函數(shù),第二件事情就是利用將值賦給這個(gè)函數(shù)去計(jì)算出最后的結(jié)果值小腊,也就是說(shuō)在做風(fēng)格轉(zhuǎn)換時(shí)的工作就是去解這個(gè)方程去求出繪畫(huà)風(fēng)格救鲤。如果能夠像數(shù)據(jù)庫(kù)一樣將風(fēng)格函數(shù)持久化地存儲(chǔ)到硬盤(pán)上,每一次生成新圖片的時(shí)候都將函數(shù)從硬盤(pán)上進(jìn)行加載而免去了計(jì)算的過(guò)程秩冈,就可以將原來(lái)的6小時(shí)變成幾分鐘甚至更短的時(shí)間本缠,實(shí)現(xiàn)后這個(gè)時(shí)間縮短達(dá)到了20秒。這個(gè)俄羅斯工程師實(shí)際上并不是機(jī)器學(xué)習(xí)方面的專(zhuān)家入问,但是他找到了問(wèn)題的癥結(jié)丹锹,并在此基礎(chǔ)之上使用了一個(gè)月的時(shí)間開(kāi)發(fā)出了這套Prisma的APP犹赖,這個(gè)APP在歐洲一上線在大概兩周的時(shí)間內(nèi)就有了三千萬(wàn)的下載量。如下圖所示卷仑,梅德韋杰夫也是Prisma的忠實(shí)粉絲峻村。當(dāng)時(shí)在8月份的時(shí)候,在歐洲人普遍對(duì)于藝術(shù)有較高的鑒賞能力的情況下锡凝,他們都認(rèn)為這個(gè)應(yīng)用比較能夠打動(dòng)內(nèi)心粘昨。

剛才講述的這個(gè)故事實(shí)際上是想告訴大家一個(gè)道理,我們現(xiàn)在正處于AI即將到來(lái)的時(shí)代窜锯,但是AI時(shí)代并不只屬于數(shù)據(jù)科學(xué)家张肾、AI科學(xué)家以及這些程序員們。AI的技術(shù)是非常重要的一件事情锚扎,但比這件事情更重要的是如何利用AI技術(shù)轉(zhuǎn)化出相應(yīng)的產(chǎn)品吞瞪,實(shí)現(xiàn)數(shù)據(jù)、技術(shù)和產(chǎn)品之間的聯(lián)動(dòng)驾孔,真正能夠?qū)I技術(shù)應(yīng)用到大家的日常生活中芍秆,像Prisma一樣應(yīng)用AI來(lái)為大家創(chuàng)造價(jià)值,討得大家的歡心翠勉,這個(gè)才是最重要的妖啥,也是需要大家一起去思考的事情。也許你并不是AI的專(zhuān)家对碌,但是也應(yīng)該去思考如何才能將AI應(yīng)用起來(lái)荆虱。實(shí)際上重要的是我們的想法,如果你有自己的想法朽们,再利用一些開(kāi)源的工具怀读,加上阿里云的資源就可以很容易地構(gòu)建屬于自己的深度學(xué)習(xí)的應(yīng)用。

我們所處的是一個(gè)開(kāi)源的時(shí)代骑脱,很多深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的學(xué)習(xí)庫(kù)實(shí)際上都是開(kāi)放的菜枷,包括谷歌的TensorFlow、微軟的CNTK惜姐、Caffe犁跪、Mxnet等這些都是開(kāi)源的機(jī)器學(xué)習(xí)庫(kù),如果大家想去學(xué)習(xí)這些開(kāi)源庫(kù)歹袁,其實(shí)有很多相關(guān)的資源可以參考坷衍。

在這里主要介紹一下TensorFlow,TensorFlow是2015年谷歌開(kāi)源的一套機(jī)器學(xué)習(xí)庫(kù)条舔,其在深度學(xué)習(xí)方面非常好用枫耳,目前在GitHub上面大約有5萬(wàn)顆星,其實(shí)也是大家開(kāi)始深度學(xué)習(xí)一個(gè)非常好的起點(diǎn)孟抗,它的最大特點(diǎn)是雖然不算性能最好迁杨,但是最為簡(jiǎn)單钻心。

在這里想和大家說(shuō)的是關(guān)于剛才提到的風(fēng)格轉(zhuǎn)換這件事情實(shí)際上有很多個(gè)實(shí)現(xiàn),依賴(lài)于不同的機(jī)器學(xué)習(xí)庫(kù)铅协,包括TensorFlow捷沸、Mxnet、Torch以及Caffe等狐史,在分享的最后也會(huì)給大家看一下一些使用這些庫(kù)實(shí)現(xiàn)應(yīng)用的代碼痒给。



有了這些機(jī)器學(xué)習(xí)庫(kù)和機(jī)器學(xué)習(xí)的代碼可以供大家進(jìn)行學(xué)習(xí),剩下的就是讓大家了解一下如何構(gòu)建自己的機(jī)器學(xué)習(xí)以及深度學(xué)習(xí)的應(yīng)用骏全。剛才提到了整個(gè)機(jī)器學(xué)習(xí)的流程從大的方面可以分為兩個(gè)部分苍柏,一部分可以稱(chēng)之為求解方程,第二部分可以稱(chēng)為給方程賦值姜贡。所以在機(jī)器學(xué)習(xí)的流程中的第一部分就是訓(xùn)練试吁,根據(jù)數(shù)據(jù)如何去訓(xùn)練出這個(gè)機(jī)器學(xué)習(xí)模型,實(shí)際上就是在求解這個(gè)方程楼咳。而第二步當(dāng)這個(gè)方程解完之后熄捍,就可以給方程賦予新的值讓它去做預(yù)測(cè)。具體來(lái)看爬橡,第一步在求解方程中最重要的也是機(jī)器學(xué)習(xí)最核心的事情就是數(shù)據(jù)和計(jì)算量治唤,首先需要準(zhǔn)備數(shù)據(jù)并且上傳到云上棒动,這是在云上進(jìn)行機(jī)器學(xué)習(xí)的最重要的起點(diǎn)糙申。第二步就是需要開(kāi)發(fā)自己的訓(xùn)練程序,這個(gè)訓(xùn)練程序所做的事情就是根據(jù)數(shù)據(jù)來(lái)進(jìn)行訓(xùn)練船惨、求解方程柜裸,并對(duì)于程序的正確性進(jìn)行確認(rèn)。第三步粱锐,當(dāng)我們具有大規(guī)模數(shù)據(jù)的時(shí)候疙挺,就可以執(zhí)行一些訓(xùn)練,剛開(kāi)始時(shí)可能做的是單機(jī)怜浅,但是在真正進(jìn)行訓(xùn)練的時(shí)候铐然,可能因?yàn)樾阅艿男枨蟆?shù)據(jù)量的需求可能需要使用GPU以及分布式的訓(xùn)練恶座,這個(gè)時(shí)候就是第三步執(zhí)行訓(xùn)練任務(wù)搀暑,在執(zhí)行完訓(xùn)練任務(wù)之后有一個(gè)很重要的工作就是導(dǎo)出這個(gè)訓(xùn)練模型,導(dǎo)出這個(gè)訓(xùn)練方程跨琳。在最后將這些應(yīng)用到在線預(yù)測(cè)中自点,就是相當(dāng)于對(duì)于方程進(jìn)行賦值,這就是真正的工作流程脉让。

然后向大家先介紹一下阿里云基于容器服務(wù)的機(jī)器學(xué)習(xí)解決方案架構(gòu)桂敛。如下圖所示的解決方案是以容器服務(wù)為核心的功炮,在這里面所有服務(wù)是以容器作為載體的,容器服務(wù)貫穿整個(gè)機(jī)器學(xué)習(xí)的整個(gè)生命周期术唬,包括開(kāi)發(fā)薪伏、訓(xùn)練、預(yù)測(cè)以及數(shù)據(jù)處理粗仓,并且這個(gè)解決方案很好地集成了阿里云已有的機(jī)器學(xué)習(xí)能力毅该,比如彈性計(jì)算、高性能計(jì)算以及彈性GPU計(jì)算潦牛、VPC網(wǎng)絡(luò)以及共享存儲(chǔ)眶掌、運(yùn)維以及鏡像等能力。使大家的深度學(xué)習(xí)應(yīng)用能夠無(wú)縫地和阿里云的服務(wù)進(jìn)行集成巴碗,這就是這個(gè)方案所能夠帶來(lái)的好處朴爬。

那么這個(gè)事情具體是如何實(shí)現(xiàn)的呢?首先第一步是需要準(zhǔn)備數(shù)據(jù)橡淆,因?yàn)槲覀冎老裨诎⒗镌粕献錾疃葘W(xué)習(xí)的話召噩,上傳數(shù)據(jù)最簡(jiǎn)單的方式是通過(guò)OSS,這就可以通過(guò)OSS命令或者圖形客戶端的拖拽方式將數(shù)據(jù)上傳上去逸爵。同時(shí)如果數(shù)據(jù)量非常巨大具滴,那么OSS還提供了一套傳輸上G數(shù)據(jù)的解決方案,這樣就可以支持大規(guī)模的運(yùn)算师倔。

第二步就是開(kāi)始創(chuàng)建云端的實(shí)驗(yàn)開(kāi)發(fā)環(huán)境构韵,利用圖形應(yīng)用,在這里是使用阿里云的圖形管理界面來(lái)創(chuàng)建Jupyter的一套開(kāi)發(fā)測(cè)試環(huán)境趋艘。如果大家曾實(shí)現(xiàn)過(guò)深度學(xué)習(xí)的編程可能就會(huì)知道Jupyter是一套比較好的交互式的文本疲恢,可以在上面寫(xiě)自己的查詢代碼然后以交互的方式知道每一步執(zhí)行的結(jié)果是什么樣子。這里面同時(shí)還加入了TensorBoard瓷胧,TensorBoard具有針對(duì)TensorFlow的一些支持显拳,可以將整個(gè)學(xué)習(xí)的過(guò)程包括最后求解的方程所求的數(shù)值解與真實(shí)解之間的誤差是多少以圖形化的方式展示出來(lái)〈晗簦可以通過(guò)這個(gè)觀察整個(gè)誤差的發(fā)展情況杂数,以此來(lái)判斷整個(gè)的學(xué)習(xí)過(guò)程是不是在正確的方向上。搭建完成環(huán)境后的第一個(gè)步驟就是構(gòu)建應(yīng)用瘸洛。

當(dāng)程序?qū)懲曛笞嵋疲乱徊阶龅氖虑榫褪菢?gòu)建云端訓(xùn)練,也就是如何在云上面將真正的程序跑起來(lái)货矮,因?yàn)檫@個(gè)程序可能是分布式羊精,那么這里面支持的是什么呢?其實(shí)通過(guò)圖形用戶化的界面就可以去指定這里面使用到的是單機(jī)訓(xùn)練還是多機(jī)訓(xùn)練,以及這個(gè)程序所需要的依賴(lài)是什么喧锦。而這里面最重要的是方程的解读规,這可以通過(guò)阿里分布式存儲(chǔ)解決方案幫助去將checkpoint和模型保存成為可持久化的數(shù)據(jù),同時(shí)利用TensorBoard去監(jiān)控整個(gè)訓(xùn)練的過(guò)程燃少。

這里稍微提一下如何使用TensorFlow去保存模型束亏。TensorFlow提供了兩種保存模型的方式,第一種方式是Checkpoint阵具,Checkpoint實(shí)際上是最常用的保存方式碍遍,其最常用的場(chǎng)景就是當(dāng)進(jìn)行訓(xùn)練的時(shí)候,有時(shí)總會(huì)因?yàn)橐恍┠涿畹脑蚴沟谜麄€(gè)進(jìn)程都崩掉了阳液,這時(shí)候中間的結(jié)果就會(huì)丟失了怕敬,而Checkpoint的好處就是比如做一千步訓(xùn)練或者多少步訓(xùn)練的時(shí)候,就可以將數(shù)據(jù)保存到一個(gè)固定的Checkpoint里面帘皿,如果中間崩掉的時(shí)候就可以從Checkpoint點(diǎn)重新開(kāi)始訓(xùn)練东跪,這是Checkpoint的最主要的應(yīng)用場(chǎng)景。當(dāng)然由于TensorFlow在最早的時(shí)候就將Checkpoint提供出來(lái)鹰溜,所以很多的TensorFlow用戶也會(huì)使用Checkpoint來(lái)做Session虽填,實(shí)際上其原理就是將原來(lái)訓(xùn)練的結(jié)果保存下來(lái),在另外的地方加載下來(lái)之后重新再計(jì)算一遍f()曹动,也就是在加載之后進(jìn)行一次運(yùn)算起到了預(yù)測(cè)的作用斋日。


現(xiàn)在大家比較常用的一種方式是利用model進(jìn)行預(yù)測(cè),也就是TensorFlow提供了一套預(yù)測(cè)框架是基于GRTC的TensorFlow Serving墓陈,并且它是使用C++完成的恶守,它所接受的數(shù)據(jù)類(lèi)型是export類(lèi)型,而不是Checkpoint類(lèi)型跛蛋,所以它有一套特殊的編程API可以把自己的這套model導(dǎo)出熬的,并且由TensorFlow Serving直接進(jìn)行加載,通過(guò)不同的Java客戶端赊级、Go客戶端、Python客戶端甚至Android和IOS客戶端來(lái)訪問(wèn)它實(shí)現(xiàn)預(yù)測(cè)岔绸,它所做的也是TensorFlow相應(yīng)的運(yùn)算的方程求解的過(guò)程理逊。


最后的一件事情是當(dāng)一些Checkpoint運(yùn)算成功結(jié)束之后,Checkpoint保留出來(lái)之后就可以進(jìn)行在線運(yùn)算和預(yù)測(cè)的過(guò)程盒揉。這里還是通過(guò)前端的UI指定預(yù)測(cè)類(lèi)型以及預(yù)測(cè)應(yīng)該用是應(yīng)該怎樣去部署的晋被,可以選擇使用GPU還是CPU,選擇使用Hadoop TensorFlow的預(yù)測(cè)方式還是選擇使用自定義的預(yù)測(cè)方式以及通過(guò)Checkpoint的預(yù)測(cè)方式刚盈,這些都是支持的羡洛。同時(shí)也支持運(yùn)維期間需要的負(fù)載均衡和彈性伸縮的能力,這樣可以看到將一個(gè)正常的圖片放進(jìn)去藕漱,選擇不同的Checkpoint以及不同的風(fēng)格類(lèi)型的時(shí)候欲侮,能夠產(chǎn)生不同的運(yùn)算結(jié)果崭闲。

image.png

那么如何在阿里云的這套環(huán)境上面進(jìn)行開(kāi)發(fā)測(cè)試呢,首先進(jìn)去前端控制臺(tái)威蕉,描述應(yīng)用的名字刁俭,然后從多個(gè)應(yīng)用框架進(jìn)行選擇,是使用TensorFlow 1.0還是TensorFlow 0.12還是其他更多的框架韧涨。在這里面由于需要監(jiān)控訓(xùn)練集牍戚,所以需要寫(xiě)上需要監(jiān)控的日志目錄是什么。當(dāng)選擇創(chuàng)建之后虑粥,就可以看到創(chuàng)建出來(lái)兩個(gè)中心節(jié)點(diǎn)如孝,一個(gè)是Jupyter的開(kāi)發(fā)測(cè)試環(huán)境,輸入密碼之后就可以使用Jupyter執(zhí)行并看到執(zhí)行的結(jié)果以及訓(xùn)練的過(guò)程娩贷。當(dāng)訓(xùn)練完成之后就可以通過(guò)TensorBoard看整個(gè)訓(xùn)練的結(jié)果是什么樣子暑竟,是不是能夠達(dá)到最終的目標(biāo)值的Cost越來(lái)越小。在TensorBoard上可以看到訓(xùn)練的趨勢(shì)是什么樣子育勺,其精確度是在向什么樣的方向發(fā)展但荤,還可以看到在TensorFlow里面進(jìn)行運(yùn)算時(shí)整個(gè)數(shù)據(jù)組織是什么樣的結(jié)構(gòu)。

當(dāng)程序開(kāi)發(fā)結(jié)束之后涧至,開(kāi)始進(jìn)行訓(xùn)練腹躁。這時(shí)就需要指定訓(xùn)練輸入的數(shù)據(jù)集,以及預(yù)處理的模型南蓬,這里的框架有多種選擇纺非,還可以指定預(yù)定義的框架,這里面還可以選擇是不是支持GPU赘方,然后還有指定數(shù)據(jù)需要寫(xiě)入到哪個(gè)數(shù)據(jù)件里面以及數(shù)據(jù)來(lái)源是什么烧颖,還需要指定總共訓(xùn)練的次數(shù)以及需要保存的地點(diǎn)是在什么位置,都是需要一些規(guī)約來(lái)定義這些事情的窄陡。

整個(gè)方案的最大特點(diǎn)就是速度會(huì)非晨换矗快,就是可以快速地在這套解決方案上搭建出來(lái)自己的機(jī)器學(xué)習(xí)小應(yīng)用跳夭。這里面做的事情首先會(huì)從GitHub上將應(yīng)用下載下來(lái)涂圆,然后這里面的規(guī)約就會(huì)自動(dòng)安裝自定義的Python依賴(lài),之后就開(kāi)始調(diào)用GPU資源并啟動(dòng)币叹,開(kāi)始構(gòu)建網(wǎng)絡(luò)润歉,之后真正開(kāi)始進(jìn)行訓(xùn)練。當(dāng)將Checkpoint指定到一個(gè)更好的位置的時(shí)候就會(huì)將云的產(chǎn)生數(shù)據(jù)存放到分布式存儲(chǔ)上颈抚。當(dāng)擁有這些數(shù)據(jù)之后就可以進(jìn)行預(yù)測(cè)踩衩,預(yù)測(cè)的具體內(nèi)容包括把之前計(jì)算過(guò)的東西保存下來(lái),之后根據(jù)保存的數(shù)據(jù)和模型提供一個(gè)Read API,這里面并沒(méi)有TensorFlow Serving這個(gè)標(biāo)準(zhǔn)框架而是自己實(shí)現(xiàn)了使用Python寫(xiě)的框架驱富,并使用Checkpoint方式加載應(yīng)用锚赤。并且如果需要使用負(fù)載均衡可以提供更多的實(shí)例的數(shù)量,并指定加載數(shù)據(jù)的模型數(shù)據(jù)卷以及阿里云的彈性的SLB負(fù)載均衡服務(wù)萌朱,就會(huì)很快地將服務(wù)提進(jìn)來(lái)宴树。當(dāng)將服務(wù)提進(jìn)來(lái)之后還是通過(guò)路由列表,通過(guò)阿里云提供的負(fù)載均衡訪問(wèn)端點(diǎn)進(jìn)行訪問(wèn)晶疼。它所能提供的東西就是在這里上傳一個(gè)圖片酒贬,然后根據(jù)所指定的不同的風(fēng)格進(jìn)行轉(zhuǎn)換就可以得到不同的風(fēng)格圖片,基本上就實(shí)現(xiàn)了與Prisma相似的功能翠霍。也就是說(shuō)在現(xiàn)有的開(kāi)源技術(shù)上锭吨,就可以在阿里云上構(gòu)建自己的一個(gè)小應(yīng)用,并且可以提供一站式運(yùn)維的體驗(yàn)寒匙。甚至在阿里云上不僅可以轉(zhuǎn)換圖片的風(fēng)格零如,現(xiàn)在還可以轉(zhuǎn)化視頻的風(fēng)格。

總結(jié)


6b1b2da467cbedb9efef46be4f860d93e84f6978
6b1b2da467cbedb9efef46be4f860d93e84f6978

最后總結(jié)一下锄弱,大家可以看到阿里云基于容器的機(jī)器學(xué)習(xí)解決方案的最大特點(diǎn)就是相對(duì)而言比較簡(jiǎn)單考蕾,能夠根據(jù)一些開(kāi)源的東西以及一些已有的服務(wù)快速地構(gòu)建一套機(jī)器學(xué)習(xí)應(yīng)用,并且使應(yīng)用與阿里云上的NAS会宪,OSS肖卧,SLB以及簡(jiǎn)單日志服務(wù)等都可以做到無(wú)縫集成,只需要通過(guò)將他們加在一起就可以了掸鹅,這是這套方案的第一個(gè)優(yōu)勢(shì)就是比較簡(jiǎn)單并且快速塞帐。

第二個(gè)好處就是優(yōu)化,與容器服務(wù)團(tuán)隊(duì)進(jìn)行合作的還有一個(gè)比較有名的就是阿里云的高性能計(jì)算團(tuán)隊(duì)巍沙,像對(duì)于阿里媽媽這些的優(yōu)化都是他們團(tuán)隊(duì)做的葵姥,他們會(huì)提供一些特定場(chǎng)景性能優(yōu)化的TensorFlow和Caffe的一些鏡像,針對(duì)一些特定的場(chǎng)景進(jìn)行性能優(yōu)化句携,而不是百分百的優(yōu)化榔幸。另外一件事情就是這套方案在持續(xù)集成和持續(xù)交付這件事情上是比較有經(jīng)驗(yàn)的。其實(shí)可以將機(jī)器學(xué)習(xí)看做兩部分务甥,第一部分可以看做實(shí)驗(yàn)科學(xué)牡辽,需要不斷地去嘗試,找出最佳的組合來(lái)做推演敞临;第二部分其實(shí)是交付的科學(xué),如何將模型交付到機(jī)器上麸澜,如何進(jìn)行A/B Test挺尿,而這件事情又是容器服務(wù)團(tuán)隊(duì)非常擅長(zhǎng)的事情,既可以幫助優(yōu)化性能,又能夠幫助優(yōu)化流程编矾。

第三件事情就是定制化熟史,阿里云希望能夠通過(guò)為用戶提供更大的靈活性,比如增加自己定義的鏡像以及operator等來(lái)滿足高級(jí)用戶的需求窄俏,并平衡靈活性和自動(dòng)化之間的關(guān)系蹂匹。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市凹蜈,隨后出現(xiàn)的幾起案子限寞,更是在濱河造成了極大的恐慌,老刑警劉巖仰坦,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件履植,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡悄晃,警方通過(guò)查閱死者的電腦和手機(jī)玫霎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)妈橄,“玉大人庶近,你說(shuō)我怎么就攤上這事【祢荆” “怎么了鼻种?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)溪椎。 經(jīng)常有香客問(wèn)我普舆,道長(zhǎng),這世上最難降的妖魔是什么校读? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任沼侣,我火速辦了婚禮,結(jié)果婚禮上歉秫,老公的妹妹穿的比我還像新娘蛾洛。我一直安慰自己,他們只是感情好雁芙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布轧膘。 她就那樣靜靜地躺著,像睡著了一般兔甘。 火紅的嫁衣襯著肌膚如雪谎碍。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,287評(píng)論 1 301
  • 那天洞焙,我揣著相機(jī)與錄音蟆淀,去河邊找鬼拯啦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛熔任,可吹牛的內(nèi)容都是我干的褒链。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼疑苔,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼甫匹!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起惦费,我...
    開(kāi)封第一講書(shū)人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤兵迅,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后趁餐,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體喷兼,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年后雷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了季惯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡臀突,死狀恐怖勉抓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情候学,我是刑警寧澤藕筋,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站梳码,受9級(jí)特大地震影響隐圾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掰茶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一暇藏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧濒蒋,春花似錦盐碱、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至围橡,卻和暖如春暖混,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背翁授。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工儒恋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留善绎,地道東北人黔漂。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓诫尽,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親炬守。 傳聞我的和親對(duì)象是個(gè)殘疾皇子牧嫉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

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

  • 圖文/鞋海無(wú)涯 19 JUL. 早晨自然醒起床,在樓下面館吃了宜賓燃面和紅湯抄手减途,坐地鐵前往在成都的最后一個(gè)重要景...
    鞋海無(wú)涯閱讀 362評(píng)論 2 7
  • 心愫盼秋食滿倉(cāng) 月光獨(dú)念美杜娘 千般嘗試細(xì)作缸 飲得自醉入夢(mèng)香
    藍(lán)色汪星人閱讀 231評(píng)論 1 3
  • 心懷春天酣藻, 春色滿園, 那心路上的斑駁鳍置, 是光的經(jīng)過(guò)辽剧, 千絲萬(wàn)線的觸摸, 一如母親的暖熱税产。 “蓋蓋肚子怕轿,秋風(fēng)涼了”...
    劉月麗閱讀 357評(píng)論 0 1
  • 不知不覺(jué)間已經(jīng)初三開(kāi)學(xué)倆月了,從大夏天炎炎酷日到轉(zhuǎn)眼間落葉灰黃辟拷,似乎不過(guò)是一個(gè)愣神撞羽。 初三是個(gè)神奇的幻想。我一直是...
    言皙閱讀 1,102評(píng)論 0 6