日韩专区一区,亚洲va综合va国产va中文,黄色精品国产,欧美黑人一级视频

部署“槳”壇 | 通過Paddle2ONNX在Atlas 200 DK上部署模型

部署“槳”壇 | 通過Paddle2ONNX在Atlas 200 DK上部署模型

部署“槳”壇 | 通過Paddle2ONNX在Atlas 200 DK上部署模型

本期【洞見AI硬件,部署講壇】主要分享基于飛槳的昇騰310及相關(guān)硬件的多方案部署教程,包括:

1. Paddle Lite在Atlas 200 DK上部署實戰(zhàn); 

2. 通過Paddle2ONNX在Atlas 200 DK上部署模型; 

3. 基于EasyDL的全流程模型開發(fā)和Atlas 200 DK部署。

本篇教程以Atlas 200 DK為例,介紹 如何將飛槳模型,借助Paddle2ONNX模型轉(zhuǎn)換工具轉(zhuǎn)換為ONNX模型并通過華為CANN部署。

 

通過Paddle2ONNX在昇騰310相關(guān)硬件(本教程用的是Atlas 200 DK)上部署飛槳模型,整體可分為兩部分操作:

將PaddlePaddle模型導出為ONNX格式,涉及模型的獲取以及使用Paddle2ONNX工具進行轉(zhuǎn)換兩個步驟。


使用華為ATC工具生成在昇騰硬件上的部署模型,并通過AscendDL提供的接口開發(fā)推理程序。

獲取模型

 

用戶可以使用套件中的預訓練模型或使用自己訓練好的模型。

獲取套件中的預訓練模型(以分類模型為例)

本教程中我們以PaddleClas的ResNet50_vd_ssld分類模型為例演示后續(xù)流程;如果需要其它套件中的模型,在此步驟中可以參考相應套件中的export方法導出飛槳模型。

 

導出模型的流程如下:
# 在Github上克隆/下載 PaddleClas
git clone https://github.com/PaddlePaddle/PaddleClas.git
cd PaddleClas
git checkout release/2.3

# 下載ResNet50_vd_ssld預訓練權(quán)重
# 存放在當前目錄
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/legendary_models/ResNet50_vd_ssld_pretrained.pdparams

# 導出ResNet50_vd_ssld部署模型
# 1. 注意指定預訓練權(quán)重路徑時,不需要后輟
# 2. 模型導出保存在deploy/resnet50_vd_ssld目錄中
python tools/export_model.py  \
-c ppcls/configs/ImageNet/ResNet/ResNet50_vd.yaml \
 -o Global.pretrained_model=./ResNet50_vd_ssld_pretrained \
 -o Global.save_inference_dir=./deploy/resnet50_vd_ssld

 

導出已經(jīng)訓練好的模型

如果開發(fā)者已經(jīng)有訓練好的飛槳模型,可以參考官方文檔中的方法(下方鏈接),調(diào)用模型保存接口導出模型結(jié)構(gòu)以及權(quán)重。

https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/02_paddle2.0_develop/08_model_save_load_cn.html

 

 

 

將飛槳模型文件轉(zhuǎn)為ONNX格式

 

ONNX是針對機器學習所設(shè)計的開源文件格式,用于存儲訓練好的模型。Paddle2ONNX支持飛槳框架2.X版本的動態(tài)圖與靜態(tài)圖模型的導出,本例中我們選用的模型為靜態(tài)圖模型,安裝并使用Paddle2ONNX的命令行轉(zhuǎn)換工具轉(zhuǎn)換模型格式:
pip install paddle2onnx
# 執(zhí)行如下命令轉(zhuǎn)換模型
# 1. --model_dir指定模型文件所在目錄路徑
# 2. --model_filename和--params_filename參考模型目錄下的模型文件名
# 3. --save_file 指定ONNX模型保存的路徑
# 4. 很多情況下,為了成功轉(zhuǎn)換模型,我們還需指定更高版本的--opset_version,默認為9

paddle2onnx --model_dir deploy/resnet50_vd_ssld/ \
            --model_filename inference.pdmodel \
            --params_filename inference.pdiparams \
            --save_file deploy/resnet50_vd_ssld/model.onnx \
            --opset_version 10

# 執(zhí)行結(jié)果:
[INFO]  ONNX model saved in deploy/resnet50_vd_ssld/model.onnx

 

針對動態(tài)圖模型的方式,可以參考文檔:

https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/02_paddle2.0_develop/09_model_to_onnx_cn.html#cn-model-to-onnx

使用ATC工具生成部署模型

 

 

 

 

搭建華為Atlas 200 DK運行環(huán)境和開發(fā)環(huán)境

 

請參考華為官方教程獲取CANN軟件包,并配置開發(fā)及運行環(huán)境。在開發(fā)端,需要安裝toolkit組件來使用ATC工具進行模型導入;在運行端,請參照教程安裝完整開發(fā)環(huán)境。

 

教程鏈接:

https://support.huaweicloud.com/environment-deployment-Atlas200DK202/atlased_04_0001.html

 

軟件包獲取地址:

https://www.hiascend.com/zh/software/cann/community-history

 

 

 

使用ATC工具進行模型轉(zhuǎn)換

 

在完成環(huán)境配置后,即可將ONNX模型導入至ATC工具中,并生成轉(zhuǎn)換后的*.om文件用于后續(xù)的部署。

 

此處仍以ResNet50_vd_ssld模型為例,具體轉(zhuǎn)換命令如下:
# 如源模型為動態(tài)shape,例如當前模型輸入shape為[-1, 3, 224, 224]
# 需通過input_shape指定固定的大小進行轉(zhuǎn)換
atc  --model=deploy/resnet50_vd_ssld/model.onnx \    
--framework=5 \    
--output=./ascend_resnet50 \    
--soc_version=Ascend310 \    
--input_shape=x:1,3,224,224

# 執(zhí)行結(jié)果:
ATC run success, welcome to the next use.

 

 

 

 

將轉(zhuǎn)換后的*.om模型部署在Atlas200DK開發(fā)板上

 

轉(zhuǎn)換后的*.om模型可以通過AscendCL提供的C/C++或Python接口開發(fā)應用來實現(xiàn)推理功能,此部分內(nèi)容可參考華為的應用開發(fā)教程及相關(guān)示例內(nèi)容。

 

在AscendCL的官方示例中,提供了同步/異步推理,包含圖片/視頻編解碼以及圖像前后處理的多種場景下的Demo。如果開發(fā)者想通過官方示例學習接口使用或進行示例改造,可以先挑選最基礎(chǔ)的同步接口單Batch推理示例resnet50_imagenet_classification來熟悉推理流程與接口使用,再選取符合自己應用場景的示例進行改造。應用開發(fā)流程和示例鏈接如下:

 

C/C++應用開發(fā):

應用開發(fā)教程:

https://support.huaweicloud.com/devg-cpp-Atlas200DK202/atlasdevelopment_01_0001.html

示例程序:

https://support.huaweicloud.com/devg-cpp-Atlas200DK202/atlasdevelopment_01_0011.html

 

Python應用開發(fā):

pyACL應用開發(fā)教程:

https://support.huaweicloud.com/devg-Python-Atlas200DK202/atlaspython_01_0009.html

 

想要了解更多關(guān)于Paddle2ONNX的支持的模型和使用,歡迎點擊項目Github鏈接:

https://github.com/PaddlePaddle/Paddle2ONNX

 

訂閱快訊

通過快訊訂閱,您將及時收到我們的信息更新通知。