mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-21 07:40:37 +08:00
Move ascend python demo
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
# PaddleClas 分类模型在华为昇腾NPU 上的部署
|
# PaddleClas 分类模型在华为昇腾NPU 上的部署
|
||||||
目前 FastDeploy 已经支持在华为昇腾 NPU 上, 基于 PaddleLite 部署 PaddleClas 模型.
|
目前 FastDeploy 已经支持在华为昇腾 NPU 上, 基于 Paddle Lite 部署 PaddleClas 模型.
|
||||||
|
|
||||||
## 详细部署文档
|
## 详细部署文档
|
||||||
|
|
||||||
在华为昇腾NPU 上支持 Python 和 C++ 的部署。
|
在华为昇腾NPU 上支持 Python 和 C++ 的部署。
|
||||||
|
|
||||||
- [C++部署](./cpp)
|
- [C++部署](./cpp)
|
||||||
- [Python部署](./python)
|
- [Python部署](../python)
|
||||||
|
@@ -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信息,属正常现象.
|
|
||||||
```
|
|
@@ -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)
|
|
@@ -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
|
python infer.py --model ResNet50_vd_infer --image ILSVRC2012_val_00000010.jpeg --device ipu --topk 1
|
||||||
# XPU推理
|
# XPU推理
|
||||||
python infer.py --model ResNet50_vd_infer --image ILSVRC2012_val_00000010.jpeg --device xpu --topk 1
|
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
|
||||||
```
|
```
|
||||||
|
|
||||||
运行完成后返回结果如下所示
|
运行完成后返回结果如下所示
|
||||||
|
@@ -17,7 +17,8 @@ def parse_arguments():
|
|||||||
"--device",
|
"--device",
|
||||||
type=str,
|
type=str,
|
||||||
default='cpu',
|
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(
|
parser.add_argument(
|
||||||
"--use_trt",
|
"--use_trt",
|
||||||
type=ast.literal_eval,
|
type=ast.literal_eval,
|
||||||
@@ -38,6 +39,9 @@ def build_option(args):
|
|||||||
if args.device.lower() == "xpu":
|
if args.device.lower() == "xpu":
|
||||||
option.use_xpu()
|
option.use_xpu()
|
||||||
|
|
||||||
|
if args.device.lower() == "ascend":
|
||||||
|
option.use_ascend()
|
||||||
|
|
||||||
if args.use_trt:
|
if args.use_trt:
|
||||||
option.use_trt_backend()
|
option.use_trt_backend()
|
||||||
return option
|
return option
|
||||||
|
Reference in New Issue
Block a user