mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-20 23:29:39 +08:00
Move ascend python demo
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
# PaddleClas 分类模型在华为昇腾NPU 上的部署
|
||||
目前 FastDeploy 已经支持在华为昇腾 NPU 上, 基于 PaddleLite 部署 PaddleClas 模型.
|
||||
目前 FastDeploy 已经支持在华为昇腾 NPU 上, 基于 Paddle Lite 部署 PaddleClas 模型.
|
||||
|
||||
## 详细部署文档
|
||||
|
||||
在华为昇腾NPU 上支持 Python 和 C++ 的部署。
|
||||
|
||||
- [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
|
||||
# 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
|
||||
```
|
||||
|
||||
运行完成后返回结果如下所示
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user