手把手從EasyDL模型訓(xùn)練到EdgeBoard推理
摘要:
EdgeBoard是百度打造的基于FPGA的嵌入式AI解決方案系列硬件;EasyDL是百度推出的一站式AI定制化訓(xùn)練和服務(wù)平臺(tái)。本文詳細(xì)介紹如何使用EasyDL進(jìn)行模型訓(xùn)練,然后部署到EdgeBoard,縮短從模型訓(xùn)練到推理實(shí)現(xiàn)的路徑,提高開(kāi)發(fā)效率。
EdgeBoard是百度自主研發(fā)的AI軟硬一體深度學(xué)習(xí)加速套件,能夠提供強(qiáng)大的算力,并支持定制化模型,適配不同場(chǎng)景的終端設(shè)備,大幅提高設(shè)備端的AI推理能力,具有高性能、高通用、易集成等優(yōu)勢(shì)。EdgeBoard還可以無(wú)縫銜接百度大腦的開(kāi)放能力,可以輕松將在EasyDL和AI Studio平臺(tái)定制的AI模型完美適配到EdgeBoard上。本文會(huì)介紹如何將EasyDL訓(xùn)練的模型離線部署到EdgeBoard上,實(shí)現(xiàn)AI的終端應(yīng)用。
EasyDL定制化訓(xùn)練和服務(wù)平臺(tái)可以一站式定制AI模型,并且完全界面化操作,利用少量的數(shù)據(jù)就可以訓(xùn)練出一個(gè)高精度的AI模型。
圖1. EasyDL界面
接下來(lái)我們準(zhǔn)備以狗的分類作為實(shí)例來(lái)介紹從訓(xùn)練到推理部署,首先介紹使用EasyDL進(jìn)行模型訓(xùn)練。
1、選擇訓(xùn)練平臺(tái)
要完成狗的分類,需要使用圖像分類模型進(jìn)行訓(xùn)練,在EasyDL首頁(yè)中點(diǎn)擊開(kāi)始訓(xùn)練,選擇“經(jīng)典版”訓(xùn)練平臺(tái),模型類型選擇圖像分類,如圖2所示。
圖2. 模型類型
2、準(zhǔn)備數(shù)據(jù)集
下面是我們準(zhǔn)備好的數(shù)據(jù),共8分類,每個(gè)分類用50張左右的圖片用來(lái)訓(xùn)練,剩下20張左右用來(lái)做推理測(cè)試。
圖3. 8類狗的照片文件
圖4. 狗的照片
3、創(chuàng)建數(shù)據(jù)集
根據(jù)EasyDL訓(xùn)練模型的規(guī)則,首先我們創(chuàng)建數(shù)據(jù)集,將采集好的數(shù)據(jù)每個(gè)種類放到一個(gè)文件夾中,如圖2所示,再壓縮成一個(gè)zip文件,然后把數(shù)據(jù)集上傳到EasyDL平臺(tái),如圖5所示。
圖5. 上傳數(shù)據(jù)集到EasyDL平臺(tái)
4、創(chuàng)建模型
數(shù)據(jù)集建立完成后,創(chuàng)建模型,根據(jù)需要填寫(xiě)相應(yīng)的信息,如圖6所示。
圖6. 創(chuàng)建模型
5、訓(xùn)練模型
在訓(xùn)練模型頁(yè)面中,應(yīng)用類型選擇“離線服務(wù)”,算法選擇“高精度”和“高性能”都可以,添加數(shù)據(jù)集,開(kāi)始訓(xùn)練,如圖7所示。
圖7. 訓(xùn)練模型
6、發(fā)布模型
訓(xùn)練模型需要一定的時(shí)間,等模型訓(xùn)練完成之后,我們點(diǎn)擊申請(qǐng)發(fā)布,跳轉(zhuǎn)到發(fā)布模型頁(yè)面,選擇“軟硬一體方案”的“EdgeBoard+專用SDK”,提交申請(qǐng),如圖8所示。
圖8. 發(fā)布模型
五.下載SDK
審核成功后,點(diǎn)擊“服務(wù)詳情”,“下載SDK”,如圖9所示。
圖9. 下載SDK
至此,在EasyDL上的模型訓(xùn)練結(jié)束,接下來(lái)將轉(zhuǎn)到EdgeBoard的推理實(shí)現(xiàn)上。
在圖9中,我們會(huì)看到有“管理序列號(hào)”的按鈕,如果購(gòu)買了EdgeBoard,跳轉(zhuǎn)頁(yè)面中會(huì)有一個(gè)EdgeBoard專用的序列號(hào),這是EasyDL模型在EdgeBoard上部署的通行證。
圖10. EdgeBoard專用序列號(hào)
下面我們就開(kāi)始把模型部署到EdgeBoard上,下圖是EdgeBoard FZ9A系列硬件,EdgeBoard的技術(shù)文檔鏈接是:https://ai.baidu.com/docs#/EdgeBoard%20quick%20start/top
根據(jù)該技術(shù)文檔,需要將EasyDL離線SDK通過(guò)FTP或者samba工具傳到EdgeBoard系統(tǒng)中,然后將EdgeBoard專用序列號(hào)填寫(xiě)到離線SDK中。
圖11. EdgeBoard上的文件
EdgeBoard內(nèi)置Linux系統(tǒng),我們將使用命令行的方式進(jìn)行后面的部署操作。由于離線SDK在第一次使用時(shí)需要聯(lián)網(wǎng)激活,因此將EdgeBoard接入路由器,連通外網(wǎng)。
圖12. 測(cè)試網(wǎng)絡(luò)連接
同時(shí),將EdgeBoard的時(shí)間改成當(dāng)前時(shí)間,否則離線SDK可能會(huì)激活失敗,
圖13.修改本地時(shí)間
然后對(duì)離線SDK解壓,進(jìn)入到EasyDL文件夾,解壓cpp文件夾中的tar包。
圖14. 解壓cpp文件中的tar包
根據(jù)官方文檔,編輯cpp-->demo文件夾中的demo.cpp文件,將EdgeBoard專用序列號(hào)填入指定的位置處,如圖15所示,改過(guò)之后,在demo文件夾中新建build文件夾,進(jìn)行編譯。
圖15. 添加序列號(hào)
圖16. 編譯過(guò)程
編譯完成后,開(kāi)始進(jìn)行模型推理。我們放置一張圖片(如圖17)到RES文件夾中,調(diào)用RES資源文件夾中的模型,以及測(cè)試圖片的路徑,在build下運(yùn)行命令,如圖18所示。
圖17. 待測(cè)試照片
圖18. 執(zhí)行推理預(yù)測(cè)
從上面的打印信息中可以看到,EasyDL的模型在EdgeBoard上做出了完美的預(yù)測(cè),corgi,分值p=0.999023,說(shuō)明99%的概率是柯基,是不是很準(zhǔn)。如果說(shuō)這樣看起來(lái)不直觀,EasyDL的SDK還支持http服務(wù)的調(diào)用,下面來(lái)開(kāi)啟一下http服務(wù),如圖19所示。
圖19. 開(kāi)啟http服務(wù)
開(kāi)啟http服務(wù)后,在瀏覽器中寫(xiě)入http://{EdgeBoard ip地址}:24401,比如EdgeBoard的ip是192.168.1.254,就寫(xiě)http://192.168.1.254:24401就出來(lái)如圖18的顯示界面。
圖20. http服務(wù)顯示界面
點(diǎn)擊上傳圖片,選擇測(cè)試集中的狗的圖片,結(jié)果就立馬出來(lái)了,置信度為1說(shuō)明,百分之百就是可愛(ài)的比熊啦!
圖21. 上傳圖片進(jìn)行推理預(yù)測(cè)
至此,我們就完成了一個(gè)狗分類的模型訓(xùn)練和離線部署。
福利
據(jù)可靠小道消息:EdgeBoard正在打折中,歷史最低價(jià),降價(jià)1000元,有興趣可以看看:https://aim.baidu.com/product/5b8d8817-9141-4cfc-ae58-640e2815dfd4