1 Star 0 Fork 11

jkException / PaddleVideo

forked from PaddlePaddle / PaddleVideo 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
readme.md 2.00 KB
一键复制 编辑 原始数据 按行查看 历史
无语 提交于 2022-05-24 23:31 . rename model_file -> onnx_file

paddle2onnx 模型转化与预测

本章节介绍 PP-TSN 模型如何转化为 ONNX 模型,并基于 ONNX 引擎预测。

1. 环境准备

需要准备 Paddle2ONNX 模型转化环境,和 ONNX 模型预测环境。

Paddle2ONNX 支持将 PaddlePaddle 模型格式转化到 ONNX 模型格式,算子目前稳定支持导出 ONNX Opset 9~11,部分Paddle算子支持更低的ONNX Opset转换。 更多细节可参考 Paddle2ONNX

  • 安装 Paddle2ONNX
python3.7 -m pip install paddle2onnx
  • 安装 ONNXRuntime
# 建议安装 1.9.0 版本,可根据环境更换版本号
python3.7 -m pip install onnxruntime==1.9.0

2. 模型转换

  • PP-TSN inference模型下载

    # 下载inference模型到PaddleVideo/inference/ppTSN/ 目录下
    mkdir -p ./inference
    wget -P ./inference/ https://videotag.bj.bcebos.com/PaddleVideo-release2.3/ppTSN.zip
    
    # 解压inference模型
    pushd ./inference
    unzip ppTSN.zip
    popd
  • 模型转换

    使用 Paddle2ONNX 将 Paddle inference模型转换为 ONNX 格式模型:

    paddle2onnx \
    --model_dir=./inference/ppTSN \
    --model_filename=ppTSN.pdmodel \
    --params_filename=ppTSN.pdiparams \
    --save_file=./inference/ppTSN/ppTSN.onnx \
    --opset_version=10 \
    --enable_onnx_checker=True

执行完毕后,可以发现 ./inference/ppTSN 目录下生成了一个 ONNX 格式的模型文件 ppTSN.onnx

3. onnx 预测

接下来就可以用 ONNX 格式模型进行预测,其用法与paddle 预测模型类似 执行如下命令:

python3.7 deploy/paddle2onnx/predict_onnx.py \
--input_file data/example.avi \
--config configs/recognition/pptsn/pptsn_k400_videos.yaml \
--onnx_file=./inference/ppTSN/ppTSN.onnx

结果如下:

Current video file: data/example.avi
        top-1 class: 5
        top-1 score: 0.9998553991317749

可以验证该结果与Paddle inference的预测结果完全一致

Python
1
https://gitee.com/jkException/PaddleVideo.git
git@gitee.com:jkException/PaddleVideo.git
jkException
PaddleVideo
PaddleVideo
develop

搜索帮助