直播实录|百度大脑EasyDL·NVIDIA专场 部署专家
EasyDL—Jetson Nano部署方案技術(shù)解析
時(shí)間:2020年5月28日
講師:百度AI開(kāi)發(fā)平臺(tái)部高級(jí)研發(fā)工程師 川峰
【直播回放】
EasyDL-Jetson Nano部署方案技術(shù)解析與應(yīng)用實(shí)戰(zhàn):https://www.bilibili.com/video/BV1Rz411v7wS
【課程筆記】
課程大綱:
1. EasyDL專業(yè)版技術(shù)原理介紹
2. 訓(xùn)練并部署模型到Jetson Nano演示
【EasyDL專業(yè)版技術(shù)原理介紹】
EasyDL是一個(gè)零門檻的AI開(kāi)發(fā)平臺(tái),目前發(fā)布了三個(gè)版本:經(jīng)典版、專業(yè)版和零售版。經(jīng)典版是零算法基礎(chǔ)可以定制高精度AI模型,我們基本上使用鼠標(biāo)點(diǎn)一點(diǎn)就可以獲取自己數(shù)據(jù)集訓(xùn)練出來(lái)的模型,以及包含訓(xùn)練模型和部署代碼的SDK,并且支持的AI任務(wù)比較多,像圖像分類、物體檢測(cè)、圖像分割、文本分類、聲音分類和視頻分類。專業(yè)版主要是面向AI開(kāi)發(fā)者或企業(yè)用戶推出的AI模型訓(xùn)練及服務(wù)平臺(tái),也是提供了腳本調(diào)參功能,可以自定義超參和網(wǎng)絡(luò)的頭部結(jié)構(gòu),可深度定制自己的模型。最近我們也上了一個(gè)新的功能Notebook,提供了Notebook開(kāi)發(fā)環(huán)境,大家可以完全從頭定制代碼,定制模型。零售版是專用于零售行業(yè)用戶,訓(xùn)練商品檢測(cè)、貨架拼接的模型訓(xùn)練平臺(tái)。
今天我們主要介紹EasyDL專業(yè)版的一些技術(shù)原理,包括也會(huì)用專業(yè)版演示如何從準(zhǔn)備數(shù)據(jù)集開(kāi)始訓(xùn)練一個(gè)模型,以及獲取到SDK,到最后在Nano上完成部署。專業(yè)版支持腳本調(diào)參和Notebook,可深度調(diào)參和定制模型,并且支持飛槳Master模式。提供了基于百度海量數(shù)據(jù)集訓(xùn)練的預(yù)訓(xùn)練模型,加上EasyDL優(yōu)秀的遷移學(xué)習(xí)的產(chǎn)業(yè)實(shí)踐,使得大家在專業(yè)版使用少量數(shù)據(jù)集就可以達(dá)到很好的訓(xùn)練效果。目前專業(yè)版是支持了CV和NLP兩大任務(wù),CV支持圖像分類和物體檢測(cè),NLP支持文本分類,短文本匹配和序列化標(biāo)注,提供了一系列的訓(xùn)練模型。這里是目前EasyDL專業(yè)版已經(jīng)支持的部分模型,包括14類圖像分類和7種物體檢測(cè)算法,并且這個(gè)模型庫(kù)也是在不斷豐富,具體的大家可以去EasyDL官網(wǎng)查看相關(guān)技術(shù)文檔了解。
這一頁(yè)主要是講EasyDL專業(yè)版的技術(shù)框架圖。上層業(yè)務(wù)系統(tǒng),是大家可以感受到的或者可以交互的,包括數(shù)據(jù)集管理、模型訓(xùn)練、模型評(píng)估、模型校驗(yàn)、模型發(fā)布。再往下是深度學(xué)習(xí)工作流,支撐上層業(yè)務(wù)系統(tǒng),有數(shù)據(jù)服務(wù),提供了數(shù)據(jù)管理,智能標(biāo)注和數(shù)據(jù)閉環(huán)。智能標(biāo)注我一會(huì)也會(huì)用到,數(shù)據(jù)閉環(huán)的意思是在使用公有云API預(yù)測(cè)的時(shí)候,可以將API接口識(shí)別錯(cuò)誤的圖片添加到指定的數(shù)據(jù)集并糾正結(jié)果,后續(xù)訓(xùn)練模型的時(shí)候就可以增加包含接口數(shù)據(jù)的數(shù)據(jù)集,這樣就可以提升模型的效果。數(shù)據(jù)預(yù)處理這塊提供了數(shù)據(jù)增強(qiáng)的功能,包括手動(dòng)和自動(dòng)數(shù)據(jù)增強(qiáng),后面我們會(huì)再講到一些細(xì)節(jié)。模型訓(xùn)練稍微復(fù)雜一點(diǎn),我這里列了幾個(gè)功能點(diǎn),包括遷移學(xué)習(xí)、分布式訓(xùn)練加速、自動(dòng)超參調(diào)優(yōu)、Auto DL Search和Anchor自適應(yīng)調(diào)優(yōu)。模型評(píng)估,有mAP,F1-score,精確率,召回率,平均精度。模型部署的部分也是支持了將模型發(fā)布為適配各種硬件形態(tài)的SDK,大致分為這四大類,包括公有云部署,私有服務(wù)器部署,設(shè)備端通用SDK和專項(xiàng)硬件適配,大家可以根據(jù)自己的需要發(fā)布。這一整套流程都是通過(guò)AI Workflow串起來(lái)的,并工作在深度學(xué)習(xí)平臺(tái)飛槳之上的。
數(shù)據(jù)的智能標(biāo)注,這部分是提升效率的工具,使用智能標(biāo)注可以只標(biāo)注數(shù)據(jù)集一小部分,最低要求是每個(gè)標(biāo)簽標(biāo)注量不少于10張圖片,然后啟動(dòng)智能標(biāo)注,讓AI幫你標(biāo)注,它會(huì)篩選出一些圖片,你直接確認(rèn)就行了。為什么可以使用智能標(biāo)注呢,我這里舉個(gè)例子,比如我們有一個(gè)模型,是可以識(shí)別貓的模型,現(xiàn)在想加入新的圖片到訓(xùn)練集當(dāng)中,比如下面還有三張貓圖,什么樣的圖片會(huì)對(duì)效果提升有幫助呢,顯然就是第二和第三張,因?yàn)榈谝粡埡驮袛?shù)據(jù)集的圖太相似了,對(duì)于提升模型的泛化能力不是很好,智能標(biāo)注就是為大家挑選出第二第三張這樣的圖片讓大家標(biāo)注,第一張就是自動(dòng)標(biāo)注,節(jié)省標(biāo)注成本。在流程上,就像剛才說(shuō)的,需要為每個(gè)標(biāo)簽至少標(biāo)注10張以上的圖,然后啟動(dòng)智能標(biāo)注,其實(shí)后端會(huì)幫大家訓(xùn)練一個(gè)模型,用這個(gè)模型在數(shù)據(jù)集標(biāo)注的圖片進(jìn)行識(shí)別,標(biāo)注有問(wèn)題的圖片會(huì)反饋回來(lái)進(jìn)行人工標(biāo)注,反復(fù)多次迭代,剩下的數(shù)據(jù)可以一鍵標(biāo)注或者大家手動(dòng)結(jié)束這樣的流程。
EasyDL還對(duì)數(shù)據(jù)預(yù)處理提供了自動(dòng)數(shù)據(jù)增強(qiáng)的功能,這里有兩個(gè)問(wèn)題,一個(gè)是如何在有限的樣本下提供更好的模型效果,要么是優(yōu)化模型,要么就是使用數(shù)據(jù)增強(qiáng)。還有一個(gè)問(wèn)題,如何構(gòu)建與數(shù)據(jù)集特性強(qiáng)相關(guān)的數(shù)據(jù)增強(qiáng)策略呢,EasyDL專業(yè)版提供了自動(dòng)增強(qiáng)的策略,以視覺(jué)訓(xùn)練為例,我們可以結(jié)合數(shù)據(jù)集的特性做一些,例如平移、旋轉(zhuǎn)、亮度調(diào)整和裁剪等操作,以生成新的圖加入數(shù)據(jù)集。比如這個(gè)貓,右邊的6個(gè)圖是對(duì)原數(shù)據(jù)的數(shù)據(jù)增強(qiáng)得到的新圖,這就可以達(dá)到更好的泛化能力。在現(xiàn)實(shí)場(chǎng)景中,我們可能會(huì)有一些在有限場(chǎng)景中拍攝的數(shù)據(jù)集,但是目標(biāo)存在不同的條件,比如不同的方向、位置、亮度等等,這時(shí)候就可以通過(guò)額外合成數(shù)據(jù)向模型提供這些數(shù)據(jù)分布,但是數(shù)據(jù)增強(qiáng)需要的配置參數(shù)非常多,像剛才提到的調(diào)整的對(duì)比度、亮度以及縮放比例,具體調(diào)多少,參數(shù)太多了,組合起來(lái)的空間非常大,人工調(diào)參就需要很多的經(jīng)驗(yàn),費(fèi)時(shí)費(fèi)力,所以我們就需要進(jìn)行自動(dòng)搜索數(shù)據(jù)增強(qiáng)的超參。EasyDL的數(shù)據(jù)增強(qiáng)也是提供了一系列的增強(qiáng)策略,用戶可以手動(dòng)設(shè)置數(shù)據(jù)增強(qiáng)的超參,當(dāng)然這個(gè)可能對(duì)用戶要求比較高,你需要對(duì)領(lǐng)域知識(shí)和數(shù)據(jù)特征比較熟悉才行,不過(guò)也可以選擇自動(dòng)數(shù)據(jù)增強(qiáng),我們后端會(huì)根據(jù)大家的數(shù)據(jù)集的特征和增強(qiáng)策略進(jìn)行自動(dòng)搜索,以產(chǎn)出一個(gè)最佳的增強(qiáng)參數(shù),從而提升數(shù)據(jù)集的規(guī)模,來(lái)獲得更好的模型的性能。
這里列出來(lái)的是EasyDL專業(yè)版的圖像分類和物體檢測(cè)支持的數(shù)據(jù)增強(qiáng)的策略,比如像剪切、平移、旋轉(zhuǎn),調(diào)整對(duì)比度和亮度等等,物體檢測(cè)數(shù)據(jù)增強(qiáng)操作是多一點(diǎn),主要是對(duì)標(biāo)注框里的物體做了一些處理。
接下來(lái)這張圖是使用數(shù)據(jù)增強(qiáng)和不使用數(shù)據(jù)增強(qiáng)的效果對(duì)比圖,黃色柱狀圖是使用了數(shù)據(jù)增強(qiáng)的,準(zhǔn)確率還是有所提升的。
遷移學(xué)習(xí)。如果你想訓(xùn)練一個(gè)深度學(xué)習(xí)的模型,從頭訓(xùn)練模型通常需要大量的數(shù)據(jù),但是數(shù)據(jù)其實(shí)并不容易獲得,包括采集、標(biāo)注、算力等方面成本比較高,我們可以使用預(yù)訓(xùn)練模型,在預(yù)訓(xùn)練模型的基礎(chǔ)上重新調(diào)優(yōu),并利用預(yù)訓(xùn)練模型以及學(xué)習(xí)到的知識(shí)來(lái)提高對(duì)另一項(xiàng)任務(wù)的泛化性,簡(jiǎn)單說(shuō)就是在大數(shù)據(jù)集預(yù)訓(xùn)練的模型上進(jìn)行小數(shù)據(jù)集的遷移,以獲得對(duì)新數(shù)據(jù)較好的識(shí)別效果。我們?yōu)槭裁匆眠w移學(xué)習(xí),正像剛才說(shuō)的,其中一個(gè)原因就是數(shù)據(jù)并不是很容易獲得的,也就是數(shù)據(jù)的稀缺性。還有一個(gè)就是算力要求高,通常從頭訓(xùn)練一個(gè)模型至少需要幾天甚至幾周的時(shí)間,利用遷移學(xué)習(xí)就可以很快,可能只需要幾小時(shí)甚至幾十分鐘,在EasyDL通常就十幾分鐘就可以訓(xùn)練出一個(gè)效果不錯(cuò)的模型,原因就是EasyDL內(nèi)置了基于百度海量數(shù)據(jù)集訓(xùn)練的預(yù)訓(xùn)練模型,再加上優(yōu)秀的遷移學(xué)習(xí)工具,使得模型訓(xùn)練效率高,效果也是不錯(cuò)的。
然后是AutoDL,AutoDL就是用深度學(xué)習(xí)設(shè)計(jì)深度學(xué)習(xí),硬件應(yīng)用場(chǎng)景和模態(tài)的多樣化,使得AI算法的維度空間是非常大,想要盡可能探索這個(gè)空間就必然要從手工設(shè)計(jì)模型轉(zhuǎn)到自動(dòng)化生產(chǎn)模型。所以,我們也是利用了深度強(qiáng)化學(xué)習(xí)設(shè)計(jì)模型,整個(gè)系統(tǒng)由兩部分組成,一個(gè)是網(wǎng)絡(luò)的編碼器,右邊這個(gè)是網(wǎng)絡(luò)評(píng)測(cè)器,編碼器負(fù)責(zé)設(shè)計(jì)網(wǎng)絡(luò),然后交給評(píng)測(cè)器進(jìn)行訓(xùn)練和評(píng)估,評(píng)估就包括像準(zhǔn)確率、模型大小在內(nèi)的指標(biāo),然后反饋給編碼器再進(jìn)行修改再次編碼,反復(fù)迭代,經(jīng)過(guò)若干次迭代最終就會(huì)得到設(shè)計(jì)好的模型。
在基于百度海量數(shù)據(jù)搜索出的網(wǎng)絡(luò)模型后,也可以通過(guò)AutoDL Transfer進(jìn)行遷移訓(xùn)練,在小數(shù)據(jù)集上進(jìn)行finetune,這是經(jīng)典網(wǎng)絡(luò)和AutoDL遷移學(xué)習(xí)的效果對(duì)比,效果還是有優(yōu)勢(shì)的。同時(shí)EasyDL經(jīng)典版也是開(kāi)放了優(yōu)秀的AutoDL預(yù)訓(xùn)練模型供大家使用。
然后是自動(dòng)超參調(diào)優(yōu),EasyDL模型訓(xùn)練也支持自動(dòng)超參調(diào)優(yōu)。為什么要自動(dòng)調(diào)參?因?yàn)閰?shù)太多了,通常需要不斷的調(diào)整參數(shù),不斷的迭代訓(xùn)練來(lái)驗(yàn)證,就是太費(fèi)時(shí)費(fèi)力了,所以EasyDL也是使用了自動(dòng)超參調(diào)優(yōu)的機(jī)制。比如右邊這張圖,有兩個(gè)并發(fā)進(jìn)行了試驗(yàn),初始的時(shí)候超參和模型權(quán)重都相同,經(jīng)過(guò)一定輪數(shù)的訓(xùn)練以后,第二步就會(huì)進(jìn)行對(duì)比,如果發(fā)現(xiàn)worker0的效果好就進(jìn)行第三步,把worker0的權(quán)重和超參值復(fù)制給worker1,worker0本身接著訓(xùn)練,不受影響,但是對(duì)worker1還要進(jìn)行第四步,就是復(fù)制過(guò)來(lái)的權(quán)重和超參加入一些擾動(dòng),使它與worker0的參數(shù)有所差異,然后再繼續(xù)訓(xùn)練,這就相當(dāng)于在訓(xùn)練過(guò)程中把worker1上的原始超參值過(guò)濾了,并在好的基礎(chǔ)上進(jìn)行進(jìn)一步的試驗(yàn),從而加快搜索效率。從試驗(yàn)效果來(lái)看使用自動(dòng)超參調(diào)優(yōu)機(jī)制的模型在平均準(zhǔn)確率上面也是有一定的優(yōu)勢(shì)。
其實(shí)EasyDL的模型訓(xùn)練使用了深度梯度壓縮機(jī)制,也就是DGC,飛槳是從1.6.2版本已經(jīng)支持了DGC算法,加速比較明顯,大家可以看一下這個(gè)表格,右邊這個(gè)數(shù)據(jù)是在V100GPU統(tǒng)計(jì)的,在2機(jī)2卡統(tǒng)計(jì)下總訓(xùn)練時(shí)間是從520秒縮短到了74秒。
EasyDL專業(yè)版還有多個(gè)即將上線新功能,大家可以關(guān)注一下,包括Anchor自適應(yīng)優(yōu)化,可能大多數(shù)用戶不知道怎么設(shè)置,我們會(huì)加入Anchor的優(yōu)化機(jī)制,根據(jù)用戶數(shù)據(jù)集特征自動(dòng)計(jì)算出合適的aspect ratios。
EasyDL模型深度定制是通過(guò)腳本調(diào)參和Notebook的方式實(shí)現(xiàn)的,剛才我們也提到過(guò)。腳本調(diào)參的形式是將模型的超參配置和網(wǎng)絡(luò)的頭部定義函數(shù)都暴露給大家,比如像這里的自定義layer和loss函數(shù)都是可以自定義,右邊包括batchsize,輸入尺寸,學(xué)習(xí)率衰減,都可以根據(jù)自己的數(shù)據(jù)集調(diào)整,這是腳本調(diào)參。
還有一個(gè)是Notebook,Notebook是我們前不久剛上線的一項(xiàng)功能,也是基于自研的深度學(xué)習(xí)平臺(tái)飛槳提供端到端的訓(xùn)練方案,并且提供了高性能大顯存的V100顯卡,數(shù)據(jù)集也是和專業(yè)版打通,大家使用Notebook可以從頭完全定制代碼,訓(xùn)練出來(lái)模型可以發(fā)布并且部署到云端。它的使用流程也不復(fù)雜,這塊我不深入講了,大家可以自行探索一下。
EasyDL的模型部署也是非常豐富,大致分為四大類,包括公有云部署,私有服務(wù)器部署,通用設(shè)備端SDK,以及軟硬一體產(chǎn)品。這邊列出了目前EasyDL支持的一些芯片和操作系統(tǒng),大家可以看到,我們支持了10余類的芯片和4大類的操作系統(tǒng)。這個(gè)標(biāo)紅的地方就是對(duì)Jetson Nano的支持,除此之外我們也支持X86平臺(tái)的GPU,大家可以體驗(yàn)一下。
軟硬一體剛才我們講到部署方式,EasyDL四大類,其中一個(gè)是軟硬一體方案。軟硬一體方案目前支持兩個(gè)系列的產(chǎn)品,一個(gè)是EdgeBoard系列,包括計(jì)算盒,計(jì)算卡和加速卡,它們價(jià)格各不相同,功能和性能也各不相同,大家可以根據(jù)自己的業(yè)務(wù)需求進(jìn)行選擇。這里也有EasyDL模型實(shí)測(cè)性能,大家可以通過(guò)掃碼了解一下詳情,也可以到EasyDL的官網(wǎng)了解。
另一個(gè)系列是Jetson軟硬一體方案,目前支持Jetson Nano Jetson TX2和Jetson AGX Xavier,算力也是非常強(qiáng)勁,昨天有人問(wèn)EasyDL模型和SDK在Jetson上跑用的CPU還是GPU,肯定是用GPU,不然很難發(fā)揮它的優(yōu)勢(shì)。我們這邊就是對(duì)圖片的處理和推理預(yù)測(cè)都是做了優(yōu)化和加速的,速度非常快的,比如像EasyDL-Jetson AGX Xavier,跑EasyDL圖像分類可以達(dá)到幾毫秒的速度。
講了這么多,EasyDL究竟長(zhǎng)什么樣子,定制模型應(yīng)該怎么做呢,我訓(xùn)練完模型以后發(fā)布為SDK,我拿到SDK了怎么在Nano上跑起來(lái),今天通過(guò)解決一個(gè)車輛和人物識(shí)別的任務(wù)進(jìn)行全流程的演示。
剛才我們說(shuō)要解決車輛和人物識(shí)別的任務(wù),其實(shí)大致流程可以分為三步,我今天會(huì)使用EasyDL專業(yè)版腳本調(diào)參訓(xùn)練一個(gè)模型。大致就是準(zhǔn)備數(shù)據(jù)集,車輛和行人的識(shí)別數(shù)據(jù)集,然后去EasyDL專業(yè)版訓(xùn)練一個(gè)模型,最后發(fā)布為SDK并下載到Nano上使用。
首先第一步就是先準(zhǔn)備數(shù)據(jù)集,我的數(shù)據(jù)集是我自己收集了一些行車場(chǎng)景和騎行場(chǎng)景,以及步行場(chǎng)景的城市街景視頻,我是抽幀成了很多圖片,但是我得到這些圖片要篩選。因?yàn)槭浅閹?#xff0c;肯定存在很多圖片相似度太高的以及模糊的圖片怎么辦。所以我使用了EasyData數(shù)據(jù)清洗和智能標(biāo)注的功能,清洗了一些模糊的圖片,也減輕了我標(biāo)注的工作量。
立即訪問(wèn)EasyData:https://ai.baidu.com/easydata/
在EasyData的主頁(yè),下拉可以看到數(shù)據(jù)服務(wù)-數(shù)據(jù)清洗,點(diǎn)擊了解詳情即可。進(jìn)入后,可以點(diǎn)擊【新建清洗任務(wù)】,可以進(jìn)入到清洗方式的選擇。在選擇清洗方式時(shí),最多可以同時(shí)選擇三種清洗方式。
在數(shù)據(jù)準(zhǔn)備好、并訓(xùn)練好模型之后,可以在部署方式中選擇專項(xiàng)硬件的適配。之后在審核通過(guò)之后可以在【服務(wù)詳情】-【下載鏈接】處下載SDK。
之后把SDK放到Nano中進(jìn)行部署。首先連接Nano,我們解壓SDK后,得到兩個(gè)文件:CPP和RES,RES里是模型文件,CPP就是SDK,解壓一下看看,提供了三個(gè)DEMO,有serving的,可以起一個(gè)簡(jiǎn)單的服務(wù),大家可以在瀏覽器里輸入相應(yīng)的地址,可以體驗(yàn)到和H5差不多的效果。Multi_thread是支持多線程的預(yù)測(cè),如果大家有需求可以看一下。還有batch inference,可以支持單張圖片預(yù)測(cè)或多張圖片預(yù)測(cè),我們編譯一下看看。編譯之前要填寫一個(gè)序列號(hào),我們要使用batch inference預(yù)測(cè),需要設(shè)置一下序列號(hào)。先看一下代碼結(jié)構(gòu),這個(gè)函數(shù)非常簡(jiǎn)單,首先是設(shè)置序列號(hào),然后有一個(gè)config,在這里進(jìn)行參數(shù)的配置,包括模型的路徑,支持的最大batchsize,我這里設(shè)置8,意思是下次預(yù)測(cè)可以使用小于等于8張圖片預(yù)測(cè)。并發(fā)量,指的是可以支持最大的線程數(shù),如果跑單線程可以設(shè)置成1,如果設(shè)置比較大會(huì)占用資源。FP16就是你要不要用FP16預(yù)測(cè)。config設(shè)置完了以后,創(chuàng)建一個(gè)predictor,然后init,整個(gè)環(huán)境已經(jīng)準(zhǔn)備好了,之后就可以調(diào)用infer進(jìn)行預(yù)測(cè)。
整體簡(jiǎn)單來(lái)說(shuō)可以分為四個(gè)步驟:
先設(shè)置序列號(hào)。Batchsize可以設(shè)小一點(diǎn),比如我們?cè)O(shè)置成2,保存,然后開(kāi)始編譯。有三個(gè)文件,產(chǎn)出也有三個(gè),我們使用batch inference預(yù)測(cè)一下,它有兩個(gè)參數(shù),一個(gè)是模型的路徑,還有一個(gè)是圖片的名字或者圖片的路徑,因?yàn)槭侵С謆atch預(yù)測(cè)的,它會(huì)把路徑下面所有的圖片進(jìn)行預(yù)測(cè)(需保證路徑下只有圖片)。我先預(yù)測(cè)一張。這個(gè)時(shí)候可以看到,在優(yōu)化模型,你第一次使用可能比較慢,后面再跑就比較快。當(dāng)然你也可以在剛才的cofig一個(gè)選項(xiàng),設(shè)置你是不是每次都要優(yōu)化模型,因?yàn)槲以O(shè)置的1,意味著只優(yōu)化一次,下次如果再有就直接使用。
這里有一個(gè)error是什么呢,是鑒權(quán)的問(wèn)題,因?yàn)槲覜](méi)有聯(lián)網(wǎng),所以大家首次使用的時(shí)候一定要聯(lián)網(wǎng)。Nano性能還是不比TX2和Xavier,我現(xiàn)在使用的Nano,是通過(guò)網(wǎng)線連接到了電腦,所以沒(méi)有網(wǎng)絡(luò)訪問(wèn)權(quán)限,當(dāng)然你也可以設(shè)置一個(gè)代理。預(yù)測(cè)結(jié)果出來(lái)之后,demo里有一個(gè)注釋的代碼,打開(kāi)后可以把結(jié)果的圖片保存。因?yàn)槲覄偛盘岬竭@個(gè)過(guò)程,如果有這個(gè)提示,說(shuō)明它正在編譯模型,這個(gè)過(guò)程確實(shí)非常慢,如果編譯好以后再次運(yùn)行就比較快了,我們?cè)龠\(yùn)行一次。很快就出來(lái)了,當(dāng)然如果實(shí)際的預(yù)測(cè),init這個(gè)過(guò)程不需要每次都跑的,直接infer的話預(yù)測(cè)速度更快一些。在這里會(huì)有一個(gè)圖片保存在這里,我們看一下識(shí)別的結(jié)果。
這個(gè)是它的識(shí)別結(jié)果,這是一個(gè)單圖的預(yù)測(cè)。我們剛才提到可以指定一個(gè)文件夾,我把剛才生成的結(jié)果圖片刪掉,這里有兩張圖片的,我們看看預(yù)測(cè)文件夾會(huì)怎么樣,它會(huì)把兩張圖片的結(jié)果都打印出來(lái),結(jié)果保存在這里,這就是Nano的預(yù)測(cè)過(guò)程。
其實(shí)大家可以看到,從我下載SDK到現(xiàn)在運(yùn)行起來(lái),我也沒(méi)有寫代碼,就填了一個(gè)序列號(hào),我們這個(gè)SDK已經(jīng)做的非常簡(jiǎn)便,包括batch的預(yù)測(cè),都是非常簡(jiǎn)便,接口也是非常簡(jiǎn)單,就是init和infer兩個(gè)。剛才我們提到還有一個(gè)serving,這個(gè)是起HTTP的服務(wù),起來(lái)以后可以通過(guò)端口在瀏覽器里輸入,打開(kāi)頁(yè)面上傳圖片,和我們剛才演示的是一樣的。看一下吧,它需要的參數(shù),模型路徑,序列號(hào),服務(wù)地址,端口,后面使用默認(rèn)的。這個(gè)時(shí)候再重新編譯模型,還需要等會(huì),第一次使用確實(shí)是需要編譯模型。
如果使用Nano需要先準(zhǔn)備它的運(yùn)行環(huán)境,我們推薦是使用SD Card Image,Host上下載安裝并安裝Etcher,如果用過(guò)Nano比較簡(jiǎn)單,如果是TX2和Xavier就稍微麻煩一些,可能需要使用SDK Manager來(lái)安裝,當(dāng)然Nano也可以使用這個(gè)工具安裝,推薦大家安裝這個(gè)JetPack4.2.2。流程就是這么簡(jiǎn)單。
這里貼出的是config的配置結(jié)構(gòu)體,這是支持的配置參數(shù),包括模型的名字以及緩存的名字,以及工作空間大小的設(shè)置,以及你想支持的最大的batchsize。Device ID不用設(shè)置,在使用X86平臺(tái)的多卡GPU時(shí)才會(huì)使用這個(gè)。編譯選項(xiàng),就是我剛才設(shè)置為1,意思就是我有歷史編譯的模型可以直接使用,不需重新編譯。這個(gè)是支持最大的并發(fā)量,這里是是否使用FP16預(yù)測(cè)。
【Q&A】
Q:有同學(xué)問(wèn)合作的板子和正常板子價(jià)格一樣嗎。
A:我們合作的板子是限量直降,全網(wǎng)最低的價(jià)格。
Q:超參自動(dòng)搜索用的是什么算法?
A:剛才PPT里已經(jīng)講到了,如果有興趣可以看一下回放,查一下我里面提到的幾種算法。
Q:運(yùn)行部署模型花錢嗎?
A:運(yùn)行部署不會(huì)花錢,比如軟硬一體授權(quán)一個(gè)license,SDK是隨便使用不會(huì)再收錢的,只會(huì)收授權(quán)的費(fèi)用。
Q:模型下載下來(lái)可以自己調(diào)用嗎?咱們模型支持下載下來(lái)嗎?
A:是支持下載,就是我剛才說(shuō)的SDK包括兩個(gè)部分,包括在Nano上演示的時(shí)候,可以看到有CPP目錄和RES目錄,RES就是你訓(xùn)練的模型 。
Q:NX支持EasyDL的SDK嗎?
A:這個(gè)是比較新的套件,理論上是支持的,但為什么沒(méi)有寫上去,因?yàn)槲覀円惨疃冗m配一下,不久會(huì)上到線上,大家可以關(guān)注一下。大家也可以在百度AI市場(chǎng)搜索查看。
Q:套件需要神經(jīng)計(jì)算棒嗎?
A:Nano和Xavier和TX2不需要神經(jīng)計(jì)算棒,神經(jīng)計(jì)算棒跟這個(gè)不是太相關(guān),它也是一種計(jì)算型的硬件,用來(lái)加速。
Q:EasyData清洗收費(fèi)嗎?
A:清洗不收費(fèi)。比如視頻抽幀可以使用清洗的功能,以及智能標(biāo)注。
Q:現(xiàn)在支持多人標(biāo)注嗎?
A:多人標(biāo)注的話,在群里問(wèn)一下吧,據(jù)我所知是支持的。
Q:模型可以在本地進(jìn)行訓(xùn)練嗎?
A:本地目前還不行,目前都是在云端訓(xùn)練的。
Q:增強(qiáng)好的數(shù)據(jù)可以下載嗎?
A:數(shù)據(jù)增強(qiáng)我理解應(yīng)該只是一個(gè)策略,數(shù)據(jù)集并不會(huì)真實(shí)的擴(kuò)充,你下載下來(lái)還是原始的數(shù)據(jù)集,但是具體能不能擴(kuò)充到你的數(shù)據(jù)集,以及能不能下載,如果真的需要可以提一個(gè)工單,我們會(huì)評(píng)估一下。
好,提示一下開(kāi)發(fā)者,大家要善用提交工單的功能,EasyDL遇到一些問(wèn)題的時(shí)候,可以提交工單輸入你的問(wèn)題,研發(fā)老師就會(huì)為您解答。
Q:EasyDL底層是哪個(gè)框架?
A:底層框架,現(xiàn)在EasyDL都是基于飛槳深度學(xué)習(xí)平臺(tái)的,其實(shí)現(xiàn)在飛槳這個(gè)生態(tài)已經(jīng)非常好了,各種工具也比較齊全,我們底層平臺(tái)都是用飛槳。
Q:TX2的torchvision最高的版本是多少?
A:其實(shí)這個(gè)版本是要看TX2上用的是JetPack版本是什么,JetPack每個(gè)版本支持的最高版本的torchvision都是不一樣的,所以說(shuō)我建議大家到官網(wǎng)上看一下,隨后我可以把這部分的鏈接發(fā)到群里,大家看一下自己使用的JetPack是哪個(gè)版本,上面都有支持到最高版本的相關(guān)說(shuō)明。
Q:如何通過(guò)筆記本遠(yuǎn)程訪問(wèn)Jetson Nano?
A:你只需要拿個(gè)網(wǎng)線把Nano連到你的電腦,然后登錄到Jetson Nano,你可以設(shè)置一個(gè)固定的IT地址,在電腦設(shè)置上配置一下路由器和IP地址,跟它一個(gè)網(wǎng)段就可以,然后連接到你的Nano上,我剛才就是這么干的。
Q:其他框架的模型能不能也用Nano部署?
A:其他框架當(dāng)然可以,但是你的部署成本可能會(huì)比較高,不像EasyDL,像圖片的預(yù)處理和底層的推理都做好了,封裝的接口已經(jīng)非常簡(jiǎn)單了,當(dāng)然你自己做可以,就是復(fù)雜一些,答案是支持的。
Q:是不是Nano剛開(kāi)始使用是否需要做系統(tǒng),能否簡(jiǎn)單展示一下?
A:需要做系統(tǒng),Nano需要先刷機(jī)。有兩種方法,一種是直接拿SD卡往里寫Image,這個(gè)在網(wǎng)上都能直接下到,也有一個(gè)工具,大家可以到NVIDIA相應(yīng)的網(wǎng)站上看到教程,就幾步很簡(jiǎn)單,下載一個(gè)工具,加載硬件,然后插到板子上開(kāi)機(jī)就行了。另一種方式就是用SDK Manager。
具體刷機(jī)的流程和方式,可以看一下NVIDIA官網(wǎng),上面有具體的介紹。
Q:有同學(xué)問(wèn)訓(xùn)練模型能和別的框架模型互相轉(zhuǎn)化嗎?
A:目前沒(méi)有提供這種功能,因?yàn)槲覀冇?xùn)練的模型已經(jīng)是深度定制了,包括集成SDK,拿來(lái)即用,目前是沒(méi)有提供往其他框架轉(zhuǎn),當(dāng)然Paddle本身是支持往其他框架轉(zhuǎn),比如Paddle2onnx或x2paddle工具。
Q:視頻流預(yù)測(cè)部署應(yīng)該怎么做?
A:視頻流的可以關(guān)注明天的deepstream課程,就是講視頻流這塊,你一定要收聽(tīng)一下。剛才我做的視頻流用的不是deepstream,而是通過(guò)調(diào)用HTTP服務(wù)地址做預(yù)測(cè),就是這樣。
Q:應(yīng)該是SDK只支持一個(gè)模型還是適用于多個(gè)模型?
A:如果你是EasyDL訓(xùn)練的話,其實(shí)可以跑多個(gè)模型,但是它是和模型綁定的,不建議你這么做,每次訓(xùn)練一個(gè)模型建議你下載一個(gè)SDK,這樣不會(huì)出現(xiàn)什么問(wèn)題。
Q:Nano支持VMX嗎?
A:我理解你是想用LinuxARM跑VMX,首先你要確定openvino是否能在Nano上編譯的出來(lái),如果可以,你可以嘗試。SDK的話我們后續(xù)會(huì)有,可以保持關(guān)注。
Q: EasyData數(shù)據(jù)會(huì)共享嗎?
A:不會(huì)。
Q:編程可以用python的方式嗎?
A::目前就只有C++版本,如果用python可以像我剛才的,起HTPP服務(wù),通過(guò)python代碼調(diào)用這個(gè)接口,這是一個(gè)方式。
Q:有沒(méi)有行為識(shí)別的例子,昨天是不是有行為識(shí)別DEMO的例子。
A:是的,昨天云原生的技術(shù)有一個(gè)。
Q:EasyDL上面可以做一個(gè)行為識(shí)別嗎?
A:目前還不行,像經(jīng)典版我提到有一些分類、檢測(cè)、分割的任務(wù),專業(yè)版提供的是分類和檢測(cè),如果做行為識(shí)別要在這些任務(wù)基礎(chǔ)上看你怎么寫邏輯實(shí)現(xiàn)。
Q:有同學(xué)問(wèn)Nano支持同時(shí)跑多個(gè)EasyDL的模型嗎?
A:我不建議你這么做,為什么,因?yàn)镹ano的性能本身有限,如果跑多個(gè)模型會(huì)非常慢。
Q:如果這樣是不是還是使用TX2或者Xavier好一些。
A:對(duì),使用Xavier是最好的。
Q:Nano支持POE嗎,電流多大?
A:所有的信息在我們的官網(wǎng)上都有,非常詳細(xì)的信息,大家可以到官網(wǎng)上找到你感興趣的Jetson的平臺(tái),比如Nano里就有所有的配置信息,包括電源信息、接口信息都有。
好。大家如果對(duì)Nano電流和接口信息感興趣可以訪問(wèn)一下NVIDIA官網(wǎng),上面有一張大表,記錄各種細(xì)節(jié)的信息。
Q:Nano安裝EasyDL SDK以后,通過(guò)接口這樣的開(kāi)發(fā)方式可以不可以簡(jiǎn)單介紹一下。
A:下載SDK以后,放到Nano,解壓出來(lái),里面是有DEMO,可以直接編譯,對(duì)單張圖和多張圖預(yù)測(cè),有多線程的預(yù)測(cè),還有起服務(wù)的形式都有,如果你還有疑問(wèn),你可以再看一下回放,或者在群里提其他的問(wèn)題,都可以。
Q:剛才老師用的shell工具是什么?
A:我的電腦是mac,我的shell工具是iTerm2。
Q:腳本調(diào)參的訓(xùn)練計(jì)費(fèi)是多少錢?
A:初始應(yīng)該是提供了100個(gè)小時(shí)的免費(fèi)額度,后面再用,計(jì)費(fèi)在主頁(yè)上都寫了,你可以看一下。
Q:就EdgeBoard和Nano哪個(gè)更快一些。
A:EdgeBoard剛才講了幾個(gè),有計(jì)算卡,加速卡,計(jì)算盒,你可以看回放或者到EasyDL主頁(yè)查看對(duì)比。
Q:Jetson、TX2和Xavier能運(yùn)行caffe嗎?
A:沒(méi)問(wèn)題,可以運(yùn)行。
Q:支持的攝像頭列表在哪里能看到?
A:比如說(shuō)用Jetson的產(chǎn)品外接哪些攝像頭,所有的硬件接口支持什么樣的相機(jī),也是在官網(wǎng)信息上都有,會(huì)有非常詳細(xì)的外界傳感器的支持信息列表。關(guān)于接口、電流,就是外接設(shè)備,可以在EasyDL官網(wǎng)上看一下細(xì)節(jié)介紹。
Q:新的Nano如何通過(guò)SSH設(shè)置網(wǎng)址?
A:ssh登錄首先需要知道ip,你可以通過(guò)串口設(shè)置ip,然后再用SSH登錄。或者直接連接顯示器鼠標(biāo)鍵盤進(jìn)去設(shè)置,在主機(jī)上配置網(wǎng)絡(luò)。
Q:Nano控制繼電器需要GPIO嗎?
A:我印象中是需要的,我建議還是到官網(wǎng)上查看一下。
Q:筆記本遠(yuǎn)程訪問(wèn)Jetson Nano,如何通過(guò)SSH訪問(wèn)?
A:剛才有兩個(gè)問(wèn)題都類似,你先知道它的IP地址,可以通過(guò)串口設(shè)置或者是接個(gè)顯示器或鼠標(biāo)鍵盤設(shè)置,然后在主機(jī)上配置一下網(wǎng)絡(luò)就可以了,網(wǎng)上教程比較多。另外就是剛才的問(wèn)題,EasyDL怎么接deepstream這個(gè)問(wèn)題,其實(shí)我們也在看,大家可以關(guān)注一下,這個(gè)也會(huì)深度支持的。
主持人:好的。QA環(huán)節(jié)就到這里,如果有其他問(wèn)題,可以看一下小助手的微信號(hào),或搜索一下BaiduEasyDL的拼音,群里有百度的專家和NVIDIA的專家為大家解答。
現(xiàn)在介紹一下Jetson和EasyDL軟硬一體方案,EasyDLJetson Nano是800,原價(jià)是1099,800是全網(wǎng)最低,性能非常好,搭載EasyDL定制模型深度適配,可輕松實(shí)現(xiàn)定制AI的離線計(jì)算。中間是EasyDL和JetsonTX2方案,原價(jià)3500,現(xiàn)在是3200,感興趣可以掃描二維碼。右側(cè)是EasyDL和JetsonXavier軟硬一體方案,售價(jià)是5600,原價(jià)是5999。同時(shí)大家可以看到,左側(cè)有一本書(shū),如果現(xiàn)在購(gòu)買EasyDL和Jetson的軟硬一體方案,可以獲贈(zèng)這本基于NVIDIA Jetson人工智能開(kāi)發(fā)入門。
剛同學(xué)說(shuō)到已經(jīng)單獨(dú)購(gòu)買NVIDIA硬件,訓(xùn)練模型之后,選擇發(fā)布為SDK,點(diǎn)擊服務(wù)詳情下載SDK并進(jìn)入控制臺(tái),進(jìn)入控制臺(tái)左側(cè)導(dǎo)航,專項(xiàng)硬件適配服務(wù)器,點(diǎn)擊新增測(cè)試序列號(hào),即可獲得專用序列號(hào),即可獲得三個(gè)月有效期的專用SDK,在SDK購(gòu)買上線后即可購(gòu)買。
在百度AI市場(chǎng)搜索EasyDL,選擇EasyDLJetson Nano/TX2軟硬一體開(kāi)發(fā)套件進(jìn)行購(gòu)買。獲得Jetson Nano和用于激活專用SDK的專用序列號(hào),在EasyDL訓(xùn)練專項(xiàng)適配Jetson的圖像分類/物體檢測(cè)模型,迭代模型致效果滿足業(yè)務(wù)需求,發(fā)布模型時(shí)選擇專項(xiàng)硬件適配SDK—Jetson專用SDK,參考文檔進(jìn)行部署集成,即可實(shí)現(xiàn)離線AI預(yù)測(cè)。
在下周的課程中,來(lái)到了百度AI快車道-EasyDL產(chǎn)業(yè)應(yīng)用系列:領(lǐng)域信息處理專場(chǎng)。在6月2日-6月3日,主要為CV方向,內(nèi)容將會(huì)包括直播平臺(tái)、互聯(lián)網(wǎng)社區(qū)等業(yè)務(wù),如何構(gòu)建圖像審核、文本審核內(nèi)容安全方案和利用EasyDL圖像分類能力構(gòu)建膀胱腫瘤識(shí)別模型并進(jìn)行臨床部署。
想要快速提升自己,轉(zhuǎn)型AI應(yīng)用專家的小伙伴,一定不要錯(cuò)過(guò)哦!下周課程海報(bào):
總結(jié)
以上是生活随笔為你收集整理的直播实录|百度大脑EasyDL·NVIDIA专场 部署专家的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 新一代防泄密系统即将发布
- 下一篇: php脚本爬取头像图片