Move ascend python demo

This commit is contained in:
yunyaoXYY
2022-12-20 12:14:16 +00:00
parent e0f91719f4
commit 4373450019
5 changed files with 9 additions and 77 deletions

View File

@@ -1,9 +1,9 @@
# PaddleClas 分类模型在华为昇腾NPU 上的部署
目前 FastDeploy 已经支持在华为昇腾 NPU 上, 基于 PaddleLite 部署 PaddleClas 模型.
目前 FastDeploy 已经支持在华为昇腾 NPU 上, 基于 Paddle Lite 部署 PaddleClas 模型.
## 详细部署文档
在华为昇腾NPU 上支持 Python 和 C++ 的部署。
- [C++部署](./cpp)
- [Python部署](./python)
- [Python部署](../python)

View File

@@ -1,32 +0,0 @@
# PaddleClas 华为昇腾 NPU Python 部署示例
本目录下提供的 `infer.py`,可以帮助用户快速完成 PaddleClas 模型在华为昇腾NPU上的部署.
本例在鲲鹏920+Atlas 300I Pro的硬件平台下完成测试.(目前暂不支持 X86 CPU的Linux系统部署)
## 部署准备
### 华为昇腾 NPU 部署环境编译准备
- 1. 软硬件环境满足要求以及华为昇腾NPU的部署编译环境的准备请参考[FastDeploy 华为昇腾NPU部署环境编译准备](../../../../../../docs/cn/build_and_install/huawei_ascend.md.md)
## 在 华为昇腾NPU 上部署ResNet50_Vd分类模型
请按照以下步骤完成在 华为昇腾NPU 上部署 ResNet50_Vd 模型:
1. 完成[华为昇腾NPU 部署环境编译准备](../../../../../../docs/cn/build_and_install/huawei_ascend.md.md)
2. 运行以下命令完成部署:
```bash
# 下载模型
wget https://bj.bcebos.com/paddlehub/fastdeploy/ResNet50_vd_infer.tgz
tar -xvf ResNet50_vd_infer.tgz
# 下载图片
wget https://gitee.com/paddlepaddle/PaddleClas/raw/release/2.4/deploy/images/ImageNet/ILSVRC2012_val_00000010.jpeg
# 运行程序
python infer.py --model ResNet50_vd_infer --image ILSVRC2012_val_00000010.jpeg
```
部署成功后输出结果如下:
```bash
ClassifyResult(
label_ids: 153,
scores: 0.685547,
)
#此结果出现后,前后还会出现一些华为昇腾自带的log信息,属正常现象.
```

View File

@@ -1,42 +0,0 @@
from pickletools import optimize
import fastdeploy as fd
import cv2
import os
def parse_arguments():
import argparse
import ast
parser = argparse.ArgumentParser()
parser.add_argument(
"--model", required=True, help="Path of PaddleClas model.")
parser.add_argument(
"--image", type=str, required=True, help="Path of test image file.")
parser.add_argument(
"--topk", type=int, default=1, help="Return topk results.")
return parser.parse_args()
def build_option():
option = fd.RuntimeOption()
option.use_ascend()
return option
args = parse_arguments()
# 配置runtime加载模型
runtime_option = build_option()
model_file = os.path.join(args.model, "inference.pdmodel")
params_file = os.path.join(args.model, "inference.pdiparams")
config_file = os.path.join(args.model, "inference_cls.yaml")
model = fd.vision.classification.PaddleClasModel(
model_file, params_file, config_file, runtime_option=runtime_option)
# 预测图片分类结果
im = cv2.imread(args.image)
result = model.predict(im, args.topk)
print(result)

View File

@@ -27,6 +27,8 @@ python infer.py --model ResNet50_vd_infer --image ILSVRC2012_val_00000010.jpeg -
python infer.py --model ResNet50_vd_infer --image ILSVRC2012_val_00000010.jpeg --device ipu --topk 1
# XPU推理
python infer.py --model ResNet50_vd_infer --image ILSVRC2012_val_00000010.jpeg --device xpu --topk 1
# 华为昇腾NPU推理
python infer.py --model ResNet50_vd_infer --image ILSVRC2012_val_00000010.jpeg --device ascend --topk 1
```
运行完成后返回结果如下所示

View File

@@ -17,7 +17,8 @@ def parse_arguments():
"--device",
type=str,
default='cpu',
help="Type of inference device, support 'cpu' or 'gpu' or 'ipu'.")
help="Type of inference device, support 'cpu' or 'gpu' or 'ipu' or 'xpu' or 'ascend' ."
)
parser.add_argument(
"--use_trt",
type=ast.literal_eval,
@@ -38,6 +39,9 @@ def build_option(args):
if args.device.lower() == "xpu":
option.use_xpu()
if args.device.lower() == "ascend":
option.use_ascend()
if args.use_trt:
option.use_trt_backend()
return option