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