Files
FastDeploy/examples/vision/detection/paddledetection/tvm/README.md
Zheng-Bicheng 643730bf5f [Hackathon 181] Add TVM support for FastDeploy on macOS (#1969)
* update for tvm backend

* update third_party

* update third_party

* update

* update

* update

* update

* update

* update

* update

* update

---------

Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
2023-05-25 19:59:02 +08:00

1.5 KiB
Raw Blame History

English | 简体中文

PaddleDetection TVM部署示例

在TVM上已经通过测试的PaddleDetection模型如下:

  • picodet
  • PPYOLOE

Paddle模型转换为TVM模型

由于TVM不支持NMS算子因此在转换模型前我们需要对PaddleDetection模型进行裁剪将模型的输出节点改为NMS节点的输入节点。 输入以下命令你将得到一个裁剪后的PPYOLOE模型。

git clone https://github.com/PaddlePaddle/Paddle2ONNX.git
cd Paddle2ONNX/tools/paddle
wget https://bj.bcebos.com/fastdeploy/models/ppyoloe_plus_crn_m_80e_coco.tgz
tar xvf ppyoloe_plus_crn_m_80e_coco.tgz
python prune_paddle_model.py --model_dir ppyoloe_plus_crn_m_80e_coco  \
                          --model_filename model.pdmodel \
                          --params_filename model.pdiparams \
                          --output_names  tmp_17 concat_14.tmp_0 \
                          --save_dir ppyoloe_plus_crn_m_80e_coco

裁剪完模型后我们就可以通过tvm python库实现编译模型这里为了方便大家使用提供了转换脚本。 输入以下命令你将得到转换过后的TVM模型。 注意FastDeploy在推理PPYOLOE时不关依赖模型还依赖yml文件因此你还需要将对应的yml文件拷贝到模型目录下。

python path/to/FastDeploy/tools/tvm/paddle2tvm.py --model_path=./ppyoloe_plus_crn_m_80e_coco/model \
                       --shape_dict="{'image': [1, 3, 640, 640], 'scale_factor': [1, 2]}"
cp ppyoloe_plus_crn_m_80e_coco/infer_cfg.yml tvm_save