樣例體驗一之圖片解碼縮放與同步推理

該樣例是基于Caffe ResNet-50網(wǎng)絡(luò)來實現(xiàn)圖片分類功能,芯片要求是Ascend310、310P和910。在開始前,首先要建議大家報名CANN訓(xùn)練營活動,然后入群找小助手領(lǐng)取代金券,這樣就可以零成本進行樣例開發(fā)了。

報名鏈接:https://www.hiascend.com/developer/activities/details/faf270bfad7148c1beca727c5a70869e/signup?channelCode=0&recommended=182735


VPC(Vision Preprocessing Core)負(fù)責(zé)圖像處理功能,支持對圖片做摳圖、縮放、格式轉(zhuǎn)換等操作,大概流程可以分為創(chuàng)建通道描述、創(chuàng)建通道、申請內(nèi)存、數(shù)據(jù)處理、釋放內(nèi)存、釋放通道,具體的接口和流程可以參考下方鏈接:

https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/80RC2alpha001/devguide/appdevg/aclcppdevg/aclcppdevg_000051.html

服務(wù)器購買

我們首先打開華為云官網(wǎng),點擊彈性云服務(wù)器,選擇按需計費,AI加速器,我們選用的是x86架構(gòu),當(dāng)然也可以選擇鯤鵬架構(gòu),系統(tǒng)用公共鏡像就可以,ubuntu和centos都可以,根據(jù)習(xí)慣選擇。


點擊下一步,選擇網(wǎng)絡(luò),如果沒有創(chuàng)建子網(wǎng)的話,需要先創(chuàng)建,公網(wǎng)帶寬,根據(jù)個人需求,在這里我建議選用按流量計費,這樣在不使用服務(wù)器的時候,可以點擊停止,不用解綁彈性公網(wǎng)IP。最后輸入登陸賬戶和密碼,就可以點擊創(chuàng)建,等待創(chuàng)建成功了。

環(huán)境準(zhǔn)備

分別點擊如下鏈接下載CANN-toolkit軟件包和驅(qū)動:

https://www.hiascend.com/developer/download/community/result?module=cann

https://www.hiascend.com/hardware/firmware-drivers/community?product=2&model=3&cann=8.0.RC2.alpha001&driver=1.0.22.alpha


下載完成后,我們可以通過mobaxterm將文件上傳到服務(wù)器。

因為本身的服務(wù)器是安裝有cann軟件包的,不過版本比較低,在軟件包上傳完成后,我們就可以進行軟件的升級了。

驅(qū)動升級:chmod + ./{product name}-npu-firmware_x.x.x.x.X.run

./{product name}-npu-firmware_x.x.x.x.X.run --upgrade

升級成功后,可以執(zhí)行npu-smi查看版本。

CANN升級:chmod +x 軟件包名.run

?????./軟件包名.run --upgrade

使環(huán)境變量生效: 在安裝目錄下,執(zhí)行./set_env.sh

設(shè)置python變量:

#用于設(shè)置python3.7.5庫文件路徑

export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH

#如果用戶環(huán)境存在多個python3版本,則指定使用python3.7.5版本

export PATH=/usr/local/python3.7.5/bin:$PATH

下載并運行樣例

點擊鏈接下載鏈接:

https://gitee.com/ascend/samples/tree/master/cplusplus/level2_simple_inference/1_classification/vpc_resnet50_imagenet_classification

上傳到服務(wù)器,解壓,進入相關(guān)文件夾。


下載resnet50模型相關(guān)文件:

ResNet-50網(wǎng)絡(luò)的模型文件(*.prototxt):單擊Link下載該文件。

ResNet-50網(wǎng)絡(luò)的權(quán)重文件(*.caffemodel):單擊Link下載該文件。

下載完成后,上傳到如上路徑的model文件夾下,執(zhí)行atc模型轉(zhuǎn)換命令。


準(zhǔn)備單算子模型,執(zhí)行命令:

atc --singleop=out/op_models/op_list.json --soc_version=Ascend310 --output=out/op_models


準(zhǔn)備測試圖片,將其上傳到data文件夾下:

https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg

https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog2_1024_683.jpg

編譯運行

我們的開發(fā)環(huán)境和運行環(huán)境操作架構(gòu)一樣使用如下配置:

export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest

export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub

切換到樣例目錄,創(chuàng)建目錄用于存放編譯文件:

mkdir -p build/intermediates/host

執(zhí)行編譯命令:

cd build/intermediates/host

cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE

make

編譯成功后,切換到out路徑,運行樣例:


如圖,代表樣例運行成功了!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容