阿里云機(jī)器學(xué)習(xí)PAI-DSW入門指南_第1頁
阿里云機(jī)器學(xué)習(xí)PAI-DSW入門指南_第2頁
阿里云機(jī)器學(xué)習(xí)PAI-DSW入門指南_第3頁
阿里云機(jī)器學(xué)習(xí)PAI-DSW入門指南_第4頁
阿里云機(jī)器學(xué)習(xí)PAI-DSW入門指南_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

序4云端IDE:阿里云機(jī)器學(xué)習(xí)與PAI-DSW5阿里云機(jī)器學(xué)習(xí)技術(shù)大圖5阿里云機(jī)器學(xué)習(xí)工程能力體系6阿里云機(jī)器學(xué)習(xí)PAI-DSW7新手上路:PAI-DSW實(shí)驗(yàn)室創(chuàng)建攻略9快速進(jìn)階:PAI-DSW案例四大實(shí)戰(zhàn)指南14案例一:大數(shù)據(jù)算命系列之用機(jī)器學(xué)習(xí)評估你的相親戰(zhàn)斗力14案例二:四步訓(xùn)練出自己的CNN手寫識別模型21案例三:如何自己訓(xùn)練一個熱狗識別模型30案例四:半小時驗(yàn)證語音降噪—賈揚(yáng)清邀你體驗(yàn)快捷云上開發(fā)39作者:賈揚(yáng)清、林偉、譚鋒、黃博遠(yuǎn)、馬渝澤、尹果序人工智能(AI)是一個自從計算機(jī)被發(fā)明開始就存在的一個技術(shù)領(lǐng)域。從1956年MarvinMinsky、JohnMcCarthy等人在達(dá)特茅斯學(xué)院的會議中第一次提出人工智能這個概念開始,AI這個領(lǐng)域的概隨著深度學(xué)習(xí)的興起,產(chǎn)業(yè)界對于機(jī)器學(xué)習(xí)產(chǎn)生了非常強(qiáng)烈的興趣,也使的數(shù)據(jù),特別是移動互聯(lián)網(wǎng)的興起,使機(jī)器學(xué)習(xí)算法得以打破傳統(tǒng)數(shù)據(jù)量的限制;由于GPGPU等高性能處理器開始提供大量的算力,又使得我們能夠在可控的時間內(nèi)(以天為單位甚至更短)進(jìn)行exaflop級Brain,即谷歌大腦為代表,機(jī)器學(xué)習(xí)開始迅速從實(shí)驗(yàn)室轉(zhuǎn)向業(yè)界。毫無疑問,深度學(xué)習(xí)(DeepLearning)是當(dāng)下最熱門的人工智能技術(shù),在智能推薦、圖像識別、機(jī)器算框架和異構(gòu)計算硬件,譬如Tensorflow和NVIDIAGPU。本的操作系統(tǒng)(最好是Linux一張或多張GPU卡,安裝GPU驅(qū)動,安裝深度學(xué)習(xí)計算框架和其依賴強(qiáng)可以接受,那么切換硬件環(huán)境,特別是更換GPU卡就傷筋動骨了。那么,有沒有能夠一勞永逸解決這些苦惱的方式?阿里云機(jī)器學(xué)習(xí)平臺PAI出品的一款云端深度學(xué)習(xí)開發(fā)環(huán)境:DSW(DataScienceWorkshop)試圖告訴你,這是個肯定的答案。5>云端IDE:阿里云機(jī)器學(xué)習(xí)與PA云端IDE:阿里云機(jī)器學(xué)習(xí)與PAI-DSW經(jīng)過20年的快速發(fā)展,阿里經(jīng)濟(jì)體已經(jīng)組建了一個龐大的商業(yè)生態(tài)圈,并在支付、云計算、本地生活服務(wù)等行業(yè)保持互聯(lián)網(wǎng)巨頭地位。2020財年交易額突破1萬億美元,全球第一家;阿里云支撐了2019年雙11期間峰值54.4萬筆/秒、單日數(shù)據(jù)處理量達(dá)到970PB的世界級的流量洪峰,成為業(yè)界第一個實(shí)現(xiàn)此壯舉的云計算公司。阿里云機(jī)器學(xué)習(xí)平臺正是伴隨著這樣龐大而復(fù)雜的阿里經(jīng)濟(jì)體業(yè)務(wù)成長起來的。下面我們將帶著大家掀開阿里云機(jī)器學(xué)習(xí)技術(shù)大圖的一角,看看阿里云機(jī)器學(xué)習(xí),特別是機(jī)器學(xué)習(xí)工程上的發(fā)展、沉淀和創(chuàng)新。阿里云機(jī)器學(xué)習(xí)技術(shù)大圖我們從用戶和技術(shù)的兩個角度來梳理阿里云機(jī)器學(xué)習(xí)的技術(shù)體系大圖。從用戶的角度來說,根據(jù)使用機(jī)器學(xué)習(xí)的深度不同,在云棲大會上,我們展示了飛天AI平臺的技術(shù)分層關(guān)系:(注:不是一個完整的產(chǎn)品列表,而是一些核心的樣例)從技術(shù)的角度說,機(jī)器學(xué)習(xí)從算法到底層的硬件,都涉及到不同的技術(shù)方向。下面是我們對于核心技術(shù)能力上的一個總體描述:6<6<每個技術(shù)方向上都形成各自的布局和沉淀,接下來我們會重點(diǎn)講述作為機(jī)器學(xué)習(xí)重要組成部分的工程能力體系建設(shè)。阿里云機(jī)器學(xué)習(xí)工程能力體系阿里云在機(jī)器學(xué)習(xí)工程體系建設(shè)上,也經(jīng)歷了各領(lǐng)域業(yè)務(wù)需求驅(qū)動和技術(shù)驅(qū)動分階段螺旋式遞進(jìn)上升的過程。由最初的通過傳統(tǒng)機(jī)器學(xué)習(xí)算法進(jìn)行數(shù)據(jù)價值的粗加工,到今天以深度學(xué)習(xí)為主、支撐各類“行業(yè)大腦”解決方案的人工智能工程體系。阿里云的機(jī)器學(xué)習(xí)工程能力體系建設(shè)始終圍繞著更高效的融合人工智能三要素(算法、數(shù)據(jù)、算力)進(jìn)行展開,即追求不斷提升整個工程體系中的計算效率、數(shù)據(jù)效率以及工程效率,從而能夠更好的支撐阿里經(jīng)濟(jì)體各方面業(yè)務(wù)快速發(fā)展的需求,并通過阿里云對外進(jìn)行技術(shù)輸出,推動人工智能領(lǐng)域的技術(shù)變革,產(chǎn)生更大的社會效益,實(shí)現(xiàn)普惠人工智能。經(jīng)過多年的發(fā)展創(chuàng)新,阿里云在AI托管平臺技術(shù)層進(jìn)行了系統(tǒng)性的建設(shè),極大提升了算法研發(fā)、共享、部署、輸出的效率,在此基礎(chǔ)上沉淀出多個具有用戶粘性和場景差異化的開發(fā)平臺,這里我們選取阿里云機(jī)器學(xué)習(xí)PAI(PlatformofArtificialIntelligence)作為代表來著重來介紹。PAI是一款覆蓋機(jī)器學(xué)習(xí)全流程的一站式機(jī)器學(xué)習(xí)平臺產(chǎn)品,集數(shù)據(jù)預(yù)處理、特征工程、自動調(diào)參、模型訓(xùn)練、在線預(yù)測為一體,為用戶提供低門檻、高性能的云端機(jī)器學(xué)習(xí)服務(wù)。PAI相關(guān)技術(shù)脫胎于阿里集團(tuán)內(nèi)數(shù)十個BU的上千個業(yè)務(wù)體系,沉淀了大量的覆蓋各個領(lǐng)域的優(yōu)質(zhì)分布式算法、框架、平臺等,同時也在不斷完善和擴(kuò)充機(jī)器學(xué)習(xí)生態(tài)。7>云端IDE:阿里云機(jī)器學(xué)習(xí)與P阿里云機(jī)器學(xué)習(xí)PAI-DSW作為在AI戰(zhàn)線上辛勤耕耘的算法工作者,你是否也常常遇到下面的情形:算法需要運(yùn)行在GPU上,可是長時間申請不到GPU機(jī)器,只能干著急。終于GPU機(jī)器申請到了,卻不能馬上開始使用,需要先安裝GPU驅(qū)動和各種依賴等等,感覺有些浪費(fèi)時間。好不容易機(jī)器環(huán)境弄好了,可當(dāng)某天更新算法代碼后變得很慢,排查半天才發(fā)現(xiàn)是GPU驅(qū)動需要升級補(bǔ)丁,很是無奈。生產(chǎn)環(huán)境機(jī)器網(wǎng)絡(luò)隔離,在線上要debug代碼,只能使用GDB在命令行進(jìn)行,開發(fā)效率大大降低。在本地采用PyCharm這樣的IDE開發(fā)好代碼,而數(shù)據(jù)在生產(chǎn)環(huán)境,不允許下載,只能把代碼拷貝到線上機(jī)器運(yùn)行,發(fā)現(xiàn)問題后,又得回到本地修改調(diào)試后再來一遍,非常不便。PAIStudio采用圖形化拖拽式,像搭積木一樣分分鐘就構(gòu)建一個完整的工作流,很炫酷。但想要定制發(fā)布自己的組件時,卻不知從何下手。在長期與算法工程師同學(xué)溝通合作的過程中,我們發(fā)現(xiàn)了算法工程師的面臨的這些問題。提升機(jī)器學(xué)習(xí)工程效率,降低人工智能使用門檻,急需一個簡單、輕量、好用的工具平臺,讓算法工程師更加專注于模型設(shè)計本身。PAIDSW(DataScienceWorkshop)就是PAI團(tuán)隊(duì),為解決算法工程師的以上痛點(diǎn),新推出的一款云端機(jī)器學(xué)習(xí)開發(fā)IDE。PAI-DSW集成了Jupyterlab、WebIDE等多種開源項(xiàng)目,在阿里巴巴集團(tuán)內(nèi)上百個BU和上千名工程師的打磨之下性能和功能上都進(jìn)行了一定的調(diào)優(yōu)。數(shù)據(jù)上打通了ODPS等多個數(shù)據(jù)源,方便用戶在構(gòu)建模型的時候免去重新構(gòu)建數(shù)據(jù)管道的工作。同時,在深度學(xué)習(xí)上,PAI-DSW內(nèi)置了Tensorboard,可以通過簡單的拖拽的方式來幫助深度學(xué)習(xí)的開發(fā)者更好的完成深度學(xué)習(xí)場景下神經(jīng)網(wǎng)絡(luò)的建模。下圖展示了DSW在機(jī)器學(xué)習(xí)平臺PAI產(chǎn)品架構(gòu)中的位置:(DSW在機(jī)器學(xué)習(xí)平臺PAI產(chǎn)品架構(gòu)中的位置)簡單來說,PAI-DSW可以實(shí)現(xiàn)多實(shí)例、多環(huán)境,GPU/CPU資源、JupyterLab、WebIDE以及全屏使用Terminal無干擾工作。目前PAI-DSW已經(jīng)向所有阿里云的用戶免費(fèi)開放了探索者版,只需要登陸阿里云然后打開/#/即可即刻開始云上數(shù)據(jù)科學(xué)之旅。本書后面兩個章節(jié)將詳細(xì)介紹如何使用PAI-DSW這一簡單好用的工具。9>新手上路:PAI-DSW實(shí)驗(yàn)新手上路:PAI-DSW實(shí)驗(yàn)室創(chuàng)建攻略Step1:創(chuàng)建并打開你的DSW實(shí)驗(yàn)室前往/#/即可創(chuàng)建并進(jìn)入你的實(shí)驗(yàn)室。在執(zhí)行這一步之前需要確保已經(jīng)登陸了阿里云賬號和天池賬號。進(jìn)入之后等待幾秒后我們會看到如下頁面:左側(cè)是DSW實(shí)驗(yàn)室的文件區(qū),在這里你可以看到在你的實(shí)驗(yàn)室里的所有文件夾和文件。雙擊文件夾即可進(jìn)如這個文件夾。中間是工作區(qū),所有被打開的文件都會在工作區(qū)顯示出來。右側(cè)是計算資源區(qū)域,在這里你可以看到你當(dāng)前使用的資源類型。點(diǎn)擊右邊計算資源區(qū)的箭頭,即可彈出資源詳情,如下圖所示:這里我們也可以點(diǎn)擊切換按鈕選擇我們需要的資源進(jìn)行切換。在文件資源管理區(qū)的頂部還有4個按鈕,從左到右分別對應(yīng)的是:打開DSWLauncher啟動器,新建文件夾,上傳文件以及刷新當(dāng)前文件夾。在文件夾左側(cè)還有一欄Tab,每個圖標(biāo)從上到下分別代表了:文件資源管理器,案例代碼,正在運(yùn)行的Notebook,命令面板,在工作區(qū)打開的Tab,以及天池的數(shù)據(jù)搜索引擎。11>新手上路:PAI-DSW實(shí)驗(yàn)室創(chuàng)建攻略然后我們回到DSWLauncher啟動器,也就是工作區(qū)默認(rèn)打開的界面,然后點(diǎn)擊Notebook區(qū)域中的Python3,如下圖所示:Step2:創(chuàng)建一個Notebook點(diǎn)擊了Python3這個圖標(biāo)之后,DSW實(shí)驗(yàn)室就會自動為我們創(chuàng)建一個ipynbnotebook文件。我們在左側(cè)的資源管理器中也會看到。如下圖所示:這樣我們就成功的創(chuàng)建了一個Notebook了。相信熟悉Notebook的你到這一步就很清楚之后怎么操作了~如果你以前沒有用過也沒關(guān)系,繼續(xù)往下看。Step3:寫下你的第一行代碼并運(yùn)行用鼠標(biāo)點(diǎn)擊第一個框框(我們下面以Cell稱呼),我們就可以開始從只讀模式進(jìn)入編輯模式開始寫代碼了。這里我們可以先輸入一個簡單的:print("歡迎來到DSW恩恩恩你可以把這里當(dāng)作一個自由自在的實(shí)驗(yàn)室固,做各種你想嘗試的數(shù)據(jù)實(shí)驗(yàn)")然后我們同時按下shift+enter回車這兩個鍵,就可以看到我們的執(zhí)行結(jié)果了,如下圖所示:13>新手上路:PAI-DSW實(shí)驗(yàn)室圖中標(biāo)紅的數(shù)字1表示這個Cell是第一個被執(zhí)行的,藍(lán)色區(qū)域則表示當(dāng)前聚焦(Focus)的Cell。我們可以在Focus的Cell按下Enter回車鍵進(jìn)入編輯模式。我們也可以按下Esc鍵來退出編輯模式回到只讀模式。在只讀模式中,我們可以通過方向鍵上下來切換Focus的Cell。Step4:計算一個斐波那契數(shù)列很好,現(xiàn)在你已經(jīng)熟悉了DSW最基本的運(yùn)行Cell的方式,接下來就讓我們編寫一個簡單的斐波那契數(shù)列計算的函數(shù)來計算這個數(shù)列的第10項(xiàng)。把下方的代碼拷貝到新生成的Cell中即可:#計算第N個斐波那契數(shù)列的函數(shù)print("異常輸入,請確認(rèn)輸入一個正整數(shù)")#第一個斐波那契數(shù)是0#第二個斐波那契數(shù)是1#計算第10個斐波那契數(shù)并打印出來同樣,輸入代碼后,我們按下shift+enter回車這兩個鍵,就可以看到我們的執(zhí)行結(jié)果了,如下圖所示:這樣,你就掌握了DSW最基本的創(chuàng)建Notebook,便攜代碼和運(yùn)行代碼的方式。你也可以點(diǎn)擊左側(cè)案例的圖標(biāo)來游覽一下我們已經(jīng)為你準(zhǔn)備好的樣例代碼,更好的熟悉DSW的使用方式??焖龠M(jìn)階:PAI-DSW案例四大實(shí)戰(zhàn)指南本著理論與實(shí)踐相結(jié)合的方針,本部分將手把手教你從快速相親、手寫字體識別、熱狗識別、語音降噪等四大場景實(shí)戰(zhàn)參與進(jìn)來,從入門到快速進(jìn)階。實(shí)際上,PAI-DSW適用的場景還有很多,等你一起來發(fā)掘。案例一:大數(shù)據(jù)算命系列之用機(jī)器學(xué)習(xí)評估你的相親戰(zhàn)斗力"用姓名測試愛情,80%準(zhǔn)確率!俗話說,名如其人,緣分就是人生的后半生,為了尋找真緣分的大有人在,因此也就有了姓名緣分測試。您現(xiàn)在是不是也正在心動猶豫,也想要一個屬于自己的名字配對緣分測試了呢?那就請您趕緊行動吧!"以上這段話,你一定已經(jīng)在很多個微信公眾號的尾部,電視節(jié)目之間的廣告以及奇奇怪怪的小網(wǎng)站上看到過了吧。你一定很好奇,這個緣分測試背后到底是不是有科學(xué)依據(jù)支撐的。今天,作為數(shù)據(jù)科學(xué)老司機(jī)的我,雖然不能直接幫你測試你和某個特定的人直接的緣分,但是我們可以借助哥倫比亞大學(xué)多年研究相親找對象的心血,通過幾個簡單的特征來評估你的相親戰(zhàn)斗力指數(shù)。具體模型的測試頁面在這里在正式開始實(shí)驗(yàn)之前,我們需要尋找一個簡單好用方便上手的工具,這里我推薦一波阿里云的DSW探索者版,它對于個人開發(fā)者是免費(fèi)的,同時還有免費(fèi)的GPU資源可以使用,同時實(shí)驗(yàn)的數(shù)據(jù)還會免費(fèi)保存30天。點(diǎn)擊這里就可以使用,不需要購買,只要登陸就可以使用。今天我們就會通過這個工具來探索人性的奧秘,走進(jìn)兩性關(guān)系的神秘空間嘿嘿嘿。整個實(shí)驗(yàn)的數(shù)據(jù)收集于一個從2002年到2004年的線下快速相親的實(shí)驗(yàn)。在這個實(shí)驗(yàn)中,參與者被要求參加多輪與異性進(jìn)行的快速相親,每輪相親持續(xù)4分鐘,在4分鐘結(jié)束后,參與者雙方會被詢問是否愿意與他們的對象再見面。只有當(dāng)雙方都回答了“是”的時候,這次相親才算是配對成功。同時,參與者也會被要求通過以量化的方式從外觀吸引力,真誠度,智商,風(fēng)趣程度,事業(yè)心,興趣愛好這六個方向來評估他們的相親對象。這個數(shù)據(jù)集同時也包含了很多參加快速相親的參與者的其他相關(guān)信息,比如地理位置,喜好,對于理想對象的偏好,收入水平,職業(yè)以及教育背景等等。關(guān)于整個數(shù)據(jù)集的具體特征描述可以參考這個文件。本次我們實(shí)驗(yàn)的目的主要是為了找出,當(dāng)一個人在參加快速相親時,到底會有多高的幾率能夠遇到自己心動的人并成功牽手。在我們建模分析探索人性的秘密之前,讓我們先讀入數(shù)據(jù),來看看我們的數(shù)據(jù)集長什么樣。15>快速進(jìn)階:PAI-DSW案例四大通過觀察,我們不難發(fā)現(xiàn),在這短短的兩年中,這個實(shí)驗(yàn)的小酒館經(jīng)歷了8000多場快速相親的實(shí)驗(yàn)。由此我們可以非常輕易的推斷出,小酒館的老板應(yīng)該賺的盆滿缽滿(大霧)然后從數(shù)據(jù)的寬度來看,我們會發(fā)現(xiàn)一共有接近200個特征。關(guān)于每個特征的具體描述大家可以參考這篇文檔。然后我們再觀察數(shù)據(jù)的完整度,看看是否有缺失數(shù)據(jù)。通過以上代碼,我們不難發(fā)現(xiàn),其實(shí)還有很多的特征是缺失的。這一點(diǎn)在我們后面做分析和建模的時候,都需要關(guān)注到。因?yàn)橐坏┮粋€特征缺失的數(shù)據(jù)較多,就會導(dǎo)致分析誤差變大或者模型過擬合/精度下降。看完數(shù)據(jù)的完整程度,我們就可以繼續(xù)往下探索了。然后第一個問題就來了,在這8000多場的快速相親中,到底有多少場相親成功為參加的雙方找到了合適的伴侶的?帶著這個問題,我們就可以開始我們的第一個探索性數(shù)據(jù)分析。#構(gòu)造數(shù)據(jù)#創(chuàng)建餅圖)從上邊的餅圖我們可以發(fā)現(xiàn),真正通過快速相親找到對象的比率僅有16.47%。然后我們就迎來了我們的第二個問題,這個比率和參加的人的性別是否有關(guān)呢?這里我們也通過Pandas自帶的filter的方式df[df.gender==0]來篩選數(shù)據(jù)集中的性別。通過閱讀數(shù)據(jù)集的文檔,我們知道0代表的是女生,1代表的是男生。然后同理,我們執(zhí)行類似的代碼#構(gòu)造數(shù)據(jù)可#創(chuàng)建餅圖)17>快速進(jìn)階:PAI-DSW案例四大來找出女生和男生分別在快速相親中找到對象的幾率的。女生的幾率:男生的幾率:不難發(fā)現(xiàn),在快速相親中,女生相比于男生還是稍微占據(jù)一些優(yōu)勢的。女生成功匹配的幾率比男生成功匹配的幾率超出了0.04。然后第二個問題來了:是什么樣的人在參加快速相親這樣的活動呢?真的都是大齡青年(年齡大于30)嘛?這個時候我們就可以通過對參加人群的年齡分布來做一個統(tǒng)計分析。#年齡分布不難發(fā)現(xiàn),參加快速相親的人群主要是22~28歲的群體。這點(diǎn)與我們的預(yù)期有些不太符合,因?yàn)橹髁魅巳翰⒉皇谴簖g青年。接下來的問題就是,年齡是否會影響相親的成功率呢?和性別相比,哪個對于成功率的影響更大?這兩個問題在本文就先埋下一個伏筆,不一一探索了,希望閱讀文章的你能夠自己探索。但是這里可以給出一個非常好用的探索相關(guān)性的方式叫做數(shù)據(jù)相關(guān)性分析。通過閱讀數(shù)據(jù)集的描述,我已經(jīng)為大家選擇好了一些合適的特征去進(jìn)行相關(guān)性分析。這里合適的定義是指:1.數(shù)據(jù)為數(shù)字類型,而不是字符串等無法量化的值。2.數(shù)據(jù)的缺失比率較低19>快速進(jìn)階:PAI-DSW案例四通過上面這張圖這張相關(guān)性分析的熱力圖,我們可以先關(guān)注一些特別亮的和特別暗的點(diǎn)。比如我們可以發(fā)現(xiàn),在pf_o_att這個表示相親對象給出的外觀吸引力這個特征上,和其他相親對象給出的評分基本都是嚴(yán)重負(fù)相關(guān)的,除了pf_o_fun這一特征。由此我們可以推斷出兩個點(diǎn):1.大家會認(rèn)為外觀更加吸引人的人在智商,事業(yè)心,真誠度上表現(xiàn)會相對較差。換句話說,可能就是顏值越高越浪2.幽默風(fēng)趣的人更容易讓人覺得外觀上有吸引力,比如下面這位幽默風(fēng)趣的男士(大霧):然后我們再看看我們最關(guān)注的特征match,和這一個特征相關(guān)性比較高的特征是哪幾個呢?不難發(fā)現(xiàn),其實(shí)就是'attr_o','sinc_o','intel_o','fun_o','amb_o','shar_o'這幾個特征,分別是相親對方給出的關(guān)于外觀,真誠度,智商,風(fēng)趣程度,事業(yè)線以及興趣愛好的打分。接下來我們就可以根據(jù)這個來進(jìn)行建模了。首先我們將我們的特征和結(jié)果列都放到一個Dataframe中,然后再去除含有空值的紀(jì)錄。最后我們再分為X和Y用來做訓(xùn)練。當(dāng)然分為X,y之后,由于我們在最開始就發(fā)現(xiàn)只有16.47%的參與場次中成功匹配了,所以我們的數(shù)據(jù)有嚴(yán)重的不均衡,這里我們可以用SVMSMOTE來增加一下我們的數(shù)據(jù)量避免模型出現(xiàn)過度擬合。#做訓(xùn)練集和測試集分割數(shù)據(jù)準(zhǔn)備好之后,我們就可以進(jìn)行模型的構(gòu)建和訓(xùn)練了。通過以下代碼,我們可以構(gòu)建一個簡單的邏輯回歸的模型,并在測試集上來測試。我們可以看到結(jié)果為0.83左右,這樣我們就完成了一個預(yù)測在快速相親中是否能夠成功配對的機(jī)器學(xué)習(xí)模型。針對這個模型,數(shù)據(jù)科學(xué)老司機(jī)我還專門制作了一個小游戲頁面,來測試你的相親戰(zhàn)斗力指數(shù)。同時也歡迎你加入我們的DSW用戶交流群,和我們一起交流/探索更多好玩又實(shí)用的機(jī)器學(xué)習(xí)/深度學(xué)習(xí)案例。21>快速進(jìn)階:PAI-DSW案例四大案例二:四步訓(xùn)練出自己的CNN手寫識別模型雖然已經(jīng)9102年了MNIST手寫數(shù)據(jù)集也早已經(jīng)被各路神仙玩出了各種花樣,比如其中比較秀的有用MINST訓(xùn)練手寫日語字體的。但是目前還是很少有整體的將訓(xùn)練完之后的結(jié)果部署為一個可使用的服務(wù)的。大多數(shù)還是停留在最終Print出一個Accuracy。這一次,借助阿里云的PAI-DSW來快速構(gòu)建訓(xùn)練一個手寫模型并且部署出一個生產(chǎn)可用級別的服務(wù)的教程讓大家可以在其他的產(chǎn)品中調(diào)用這個服務(wù)作出更加有意思的項(xiàng)目。這篇文章里我們先講講如何構(gòu)建訓(xùn)練并導(dǎo)出這個手寫字體識別的模型。整個教程的代碼基于Snapchat的ML大佬AymericDamien的Tensorflow入門教程系列。第一步:下載代碼首先我們可以把代碼Clone到本地或者直接Clone到DSW的實(shí)例。如何Clone到DSW實(shí)例的方法可以參考我的這篇文章。Clone完代碼之后我們還需要準(zhǔn)備訓(xùn)練所需要的數(shù)據(jù)集這邊可以直接從YannLecun的網(wǎng)站下載。我這邊然后我們可先運(yùn)行一遍看一下效果。我們可以看到代碼Clone下來之后直接運(yùn)行就已經(jīng)幫我們訓(xùn)練出了model并且給出了現(xiàn)在這個Model的精度。在500個batch之后準(zhǔn)確率達(dá)到了95%以上而且基于GPU的DSW實(shí)例訓(xùn)練這500個Batch只需要十幾秒的時間。第二步:修改部分代碼使得可以自動導(dǎo)出SavedModel這一步就是比較重要的地方了我們第一個需要關(guān)注的就是當(dāng)前的這個Model里面的Input和Output.Input還比較清楚我們直接找所有placeholder就可以了。Output這一塊就比較復(fù)雜了,在當(dāng)前的model里我們可以看到output并不是直接定義的Y而是softmax之后的prediction找到了這些之后就比較簡單了。首先我們創(chuàng)建一個Saver,它可以幫助我們保存所有的tf變量以便之后導(dǎo)出模型使用然后我們在模型訓(xùn)練的session結(jié)束的時候?qū)С瞿P途秃昧?。我們可以通過以下這段代碼來導(dǎo)出我們訓(xùn)練好的模型#聲明導(dǎo)出模型路徑這邊加入了時間作為路徑名這樣每次訓(xùn)練的時候就可以保存多個版本的模型了#保存訓(xùn)練的日志文件方便如果出問題了我們可以用tensorboard來可視化神經(jīng)網(wǎng)絡(luò)排查問題23>快速進(jìn)階:PAI-DSW案例四#聲明各種輸入這里有一個X和一個keep_prob作為輸入然后#聲明輸入#聲明輸出))#保存模型我們可以把這段代碼插在這里這樣訓(xùn)練完成的時候就會自動導(dǎo)出了導(dǎo)出之后應(yīng)該會有如下的文件結(jié)構(gòu)我們也可以在左邊的文件管理器中查看。.index終于到了可以部署的階段了。但是在部署之前先別那么著急建議用tensorboard把訓(xùn)練日志下載到本地之后看一下。這一步除了可以可視化的解釋我們的模型之外還可以幫助我們理清我們的模型的輸入和輸出分別是什么。這邊我先在有日志文件的路徑打開一個tensorboard通過這個命令tensorboard--logdir./然后我們在游覽器里輸入默認(rèn)地址localhost:6006就可以看到了。25>快速進(jìn)階:PAI-DSW案例四大從這個圖里也可以看到我們的這個Model里有2個輸入源分別叫做images和keep_prob。并且點(diǎn)擊它們之后我們還能看到對應(yīng)的數(shù)據(jù)格式應(yīng)該是什么樣的。不過沒有辦法使用Tensorboard的同學(xué)也不用擔(dān)心因?yàn)镋AS這個產(chǎn)品也為我們提供了構(gòu)造請求的方式。這一次部署我們先使用WEB界面來部署我們的服務(wù)這一步也可以通過EASCMD來實(shí)現(xiàn)之后我會再寫一篇如何用好EASCMD的文章。我們可以把模型文件下載完之后用zip打包然后到PAI產(chǎn)品的控制臺點(diǎn)擊EAS-模型在線服務(wù).ZIP打包可以用這個命令如果你是Unix的用戶的話zip-rmodel.zippath/to/model_files進(jìn)入EAS之后我們點(diǎn)擊模型部署上傳然后繼續(xù)配置我們的processor這一次因?yàn)槲覀兪怯胻ensorflow訓(xùn)練的所以選擇Tensorflow然后資源選擇CPU有需要的同學(xué)可以考慮GPU然后上傳我們的模型文件.點(diǎn)擊下一步我們選新建服務(wù)然后給我們的服務(wù)起個名字,并且配置資源數(shù)量。然后最后確認(rèn)一下就可以點(diǎn)擊部署了27>快速進(jìn)階:PAI-DSW案例四大第四步:調(diào)試我們的模型回到EAS的控制臺我們可以看到我們的服務(wù)正在被構(gòu)建中。等到狀態(tài)顯示Running的時候我們就可以開始調(diào)試了。我們可以先點(diǎn)擊在線調(diào)試。會讓我們跳轉(zhuǎn)到一個Debug接口的頁面。什么都不需要填直接點(diǎn)擊提交我們就可以看到服務(wù)的數(shù)據(jù)格式了然后我們用一段python2的代碼來調(diào)試這個剛剛部署完的服務(wù)。python3的SDK暫時還在研發(fā)中。注意要把下面的app_key,app_secret,url換成我們剛剛部署好的內(nèi)容。點(diǎn)擊模型名字就可以看見其中測試圖片的數(shù)據(jù)大家可以在這下載到。#將讀取到的array進(jìn)行圖片解碼獲得28×2#輸入模型信息,點(diǎn)擊模型名字就可以獲取到了#構(gòu)造服務(wù)29>快速進(jìn)階:PAI-DSW案例四大運(yùn)行這個python代碼然后我們會得到}}}我們可以看到從0開始數(shù)的最后一個也就是第9個的結(jié)果是1其他都是0說明我們的結(jié)果是9和我們輸入的一樣。這樣我們就簡單輕松的構(gòu)建了一個在線服務(wù)能夠?qū)⒂脩舻膱D片中手寫數(shù)字識別出來。配合其他Web框架或者更多的東西我們就可以作出更好玩的玩具啦。案例三:如何自己訓(xùn)練一個熱狗識別模型美劇《硅谷》大家想必都沒怎么看過,大家可能都不知道人工智能識別熱狗曾是硅谷最賺錢的技術(shù)之一。HBO曾發(fā)布了官方的NotHotdog應(yīng)用,支持iOS和Android平臺,據(jù)說是用TensorFlow、Keras和ReactNative打造的,但是源碼沒有公開。我們今天要做的就是這部美劇里面第四季里面讓楊建成為百萬富翁的模型:熱狗識別模型。這一次,就讓阿里云的數(shù)據(jù)科學(xué)老司機(jī)帶你一起,利用機(jī)器學(xué)習(xí)pai平臺訓(xùn)練自己的熱狗識別模型,打破技術(shù)封鎖。讓你出任CEO,迎娶白富美/高富帥,走上人生巔峰。工欲善其事,必先利其器。沒有好的工具就想要訓(xùn)練出好的模型簡直是天方夜譚。大家進(jìn)入DSW環(huán)境之后,就可以上傳訓(xùn)練代碼以及數(shù)據(jù)了。我們先從這里下載我為各位精心準(zhǔn)備好的代碼和訓(xùn)練數(shù)據(jù)集壓縮包。下載到本地之后,點(diǎn)擊上傳這個按鈕就可以把你的文件上傳上來了。上傳成功后,我們打開Terminal進(jìn)入這個路徑,然后輸入31>快速進(jìn)階:PAI-DSW案例四大然后就會看到我們的文件夾已經(jīng)乖乖躺在我們的左側(cè)的資源管理器里邊兒了。接下來就是我們的硬核部分,我們直接把代碼放上來。我們直接運(yùn)行就可以啦##圖像預(yù)處理的函數(shù)們img:三通道的圖片本功能是樣本增強(qiáng)功能,對圖片樣本進(jìn)行隨機(jī)的旋轉(zhuǎn)縮放return:返回一個變換后的圖片#第一個參數(shù)旋轉(zhuǎn)中心,第二個參數(shù)旋轉(zhuǎn)角度,第三個參數(shù):縮放比例path:圖片路徑,字符串imgsize:圖片的尺寸,二元組,元素都是intimgsize:圖片的尺寸,二元組,元素都是int本函數(shù)從樣本地址中生成classSize個數(shù)據(jù),樣本是經(jīng)過旋轉(zhuǎn),縮放等變換的,圖片規(guī)格是的圖片33>快速進(jìn)階:PAI-DSW案例四大return;返回訓(xùn)練樣本及對應(yīng)的標(biāo)簽本函數(shù)讀取數(shù)據(jù)并返回樣本及標(biāo)簽個樣本灰度轉(zhuǎn)換,生成后的圖片是一個通道的return:圖像像素經(jīng)過比例縮放,直方圖均衡后的圖像return:返回一通道,且數(shù)值經(jīng)過比例縮放的圖片(除以255,使之?dāng)?shù)值范圍集中在0-1之##我們需要對圖像做一些騷操作畢竟500張圖片還是太少了#導(dǎo)入數(shù)據(jù)#騷操作一波35>快速進(jìn)階:PAI-DSW案例四大)#數(shù)據(jù)按照訓(xùn)練集0.8的比例分割##重點(diǎn)來了:構(gòu)建模型就是這兒了,,)]37>快速進(jìn)階:PAI-DSW案例四大)訓(xùn)練完成之后,我們可以簡單的測試一下我們模型的準(zhǔn)確率。下面這段代碼就可以幫我們做到這一點(diǎn)。這樣我們就可以看到我們模型的比較重要的一些評估結(jié)果了,比如準(zhǔn)確率什么的。但是我們既然辛辛苦苦訓(xùn)練了,我們就要好好把玩一下這個模型。我們可以直接用下面這段代碼來預(yù)測一個圖片里面是不是有熱狗。在這之前需要我們先創(chuàng)建一個名叫foo的文件夾,并把你想要測試的圖片放進(jìn)去#定義一個加載圖片的函數(shù),使我們的圖片變成nparray比如我們這里上傳一張直播中網(wǎng)友們發(fā)來的圖片,這張圖片在直播的時候成功騙過了模型,得分最高39>快速進(jìn)階:PAI-DSW案例四我們運(yùn)行一下,就可以看到結(jié)果了我們可以看到這個圖片完美騙過了我們的模型,幾乎達(dá)到了1。大家也可以拿這個模型測試一下自己身邊長的像是熱狗但是又不是熱狗的東西,看看到底能得多少分~案例四:半小時驗(yàn)證語音降噪—賈揚(yáng)清邀你體驗(yàn)快捷云上開發(fā)語音降噪,在開源領(lǐng)域通過科學(xué)計算肯定有現(xiàn)有的解決方案。從業(yè)務(wù)需求上講,最有價值的一件事情是,怎么讓大家能迅速地做POC,架起解決方案?本文將實(shí)戰(zhàn)講解賈揚(yáng)清在回答內(nèi)部同學(xué)提出的業(yè)務(wù)問題時,給自己設(shè)的一個挑戰(zhàn),半個小時架構(gòu)一個有體感的demo,達(dá)到語音降噪的效果。半小時實(shí)驗(yàn)達(dá)到的語音降噪的效果首先給大家看一下最終的效果。我錄了一個關(guān)著吸塵器的時候的語音:Out[2]:/topic/download?id=826以及開著吸塵器的時候講話的語音:IPython.display.Audio('/noises/voice_with_noise.wav')Out[3]:/topic/download?id=827以及,通過降噪以后,帶著吸塵器的那一段音頻的降噪效果:IPython.display.Audio('/noises/voice_reduced_noise.wav')Out[4]:/topic/download?id=828效果怎么樣?在實(shí)際業(yè)務(wù)當(dāng)中,我們的思路往往不是上來就開始鉆研算法,而是按照這樣的一個思路:.怎么將業(yè)務(wù)問題翻譯成技術(shù)問題?.有沒有現(xiàn)有解決方案來測試一下效果?.效果好的話,怎么落地?.效果不好的話,怎么做算法迭代?今天想展示的就是通過DSW快速解決前兩個問題,即如何迅速安裝開源的算法包、做數(shù)據(jù)的可視化、到最后算法效果的測試這整個流程。用現(xiàn)有的平臺迅速地驗(yàn)證這些業(yè)務(wù)問題的效果,是不是一件很有意思的事情呢?通過DSW快速驗(yàn)證首先,通過搜索,我們發(fā)現(xiàn)有一個github的項(xiàng)目,noisereduce,和我們需要解決的場景很相似?;旧?,可以通過兩段語音,一段是噪音(做建模一段是帶噪音的語音,來實(shí)現(xiàn)降噪的效果。對于標(biāo)準(zhǔn)的Python算法包,在DSW里面拉起很容易。因?yàn)镈SW預(yù)裝了底層的一些科學(xué)計算框架,比如說TensorFlow,因此只需要安裝新增的這些包的需求:!pipinstallnoisereduce>/dev/null我拿iPhone和家里的吸塵器錄了幾段視頻,上傳到DSW上面,然后就是大家常見的碼代碼了:41>快速進(jìn)階:PAI-DSW案例四大

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論