又色又爽的视频-天天插伊人-黄色短视频免费观看,中文字幕精品亚洲无线码二区,精品久久91,欧美色就是色

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

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

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

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

1. Paddle Lite在Atlas 200 DK上部署實戰; 

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

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

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

 

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

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


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

獲取模型

 

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

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

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

 

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

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

# 導出ResNet50_vd_ssld部署模型
# 1. 注意指定預訓練權重路徑時,不需要后輟
# 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

 

導出已經訓練好的模型

如果開發者已經有訓練好的飛槳模型,可以參考官方文檔中的方法(下方鏈接),調用模型保存接口導出模型結構以及權重。

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

 

 

 

將飛槳模型文件轉為ONNX格式

 

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

# 執行結果:
[INFO]  ONNX model saved in deploy/resnet50_vd_ssld/model.onnx

 

針對動態圖模型的方式,可以參考文檔:

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運行環境和開發環境

 

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

 

教程鏈接:

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

 

軟件包獲取地址:

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

 

 

 

使用ATC工具進行模型轉換

 

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

 

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

# 執行結果:
ATC run success, welcome to the next use.

 

 

 

 

將轉換后的*.om模型部署在Atlas200DK開發板上

 

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

 

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

 

C/C++應用開發:

應用開發教程:

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

示例程序:

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

 

Python應用開發:

pyACL應用開發教程:

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

 

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

https://github.com/PaddlePaddle/Paddle2ONNX

 

訂閱快訊

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