MMDeploy ユーザーガイド

MMDeploy ユーザーガイド

参考
MMlab公式ドキュメント
MMDeploy展開 実戦

1. 環境構築

1. mmdeployのconda環境を作成する

conda create --name mmdeploy python=3.8 -y
conda activate mmdeploy
# pytorch安装
conda install pytorch=={pytorch_version} torchvision=={torchvision_version} cudatoolkit={cudatoolkit_version} -c pytorch -c conda-forge    

2.MMCVをインストールする

pip install -U openmim
mim install mmcv-full

3. MMDeploy オペレーター ライブラリと推論 SDK をインストールします。
次のインストール手順でエクスポートによってインポートされた環境変数は、bashrc に書き込むか、ローカル スクリプトを作成して、前述したように、conda 仮想環境に入るたびに 1 回実行できます。後で。

# 安装 MMDeploy ONNX Runtime 自定义算子库和推理 SDK
wget https://github.com/open-mmlab/mmdeploy/releases/download/v0.8.0/mmdeploy-0.8.0-linux-x86_64-onnxruntime1.8.1.tar.gz
tar -zxvf mmdeploy-0.8.0-linux-x86_64-onnxruntime1.8.1.tar.gz
cd mmdeploy-0.8.0-linux-x86_64-onnxruntime1.8.1
pip install dist/mmdeploy-0.8.0-py3-none-linux_x86_64.whl
pip install sdk/python/mmdeploy_python-0.8.0-cp38-none-linux_x86_64.whl
cd ..
# 安装推理引擎 ONNX Runtime
pip install onnxruntime==1.8.1
wget https://github.com/microsoft/onnxruntime/releases/download/v1.8.1/onnxruntime-linux-x64-1.8.1.tgz
tar -zxvf onnxruntime-linux-x64-1.8.1.tgz
export ONNXRUNTIME_DIR=$(pwd)/onnxruntime-linux-x64-1.8.1
export LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$LD_LIBRARY_PATH
# 安装 MMDeploy TensorRT 自定义算子库和推理 SDK
wget https://github.com/open-mmlab/mmdeploy/releases/download/v0.8.0/mmdeploy-0.8.0-linux-x86_64-cuda11.1-tensorrt8.2.3.0.tar.gz
tar -zxvf mmdeploy-v0.8.0-linux-x86_64-cuda11.1-tensorrt8.2.3.0.tar.gz
cd mmdeploy-0.8.0-linux-x86_64-cuda11.1-tensorrt8.2.3.0
pip install dist/mmdeploy-0.8.0-py3-none-linux_x86_64.whl
pip install sdk/python/mmdeploy_python-0.8.0-cp38-none-linux_x86_64.whl
cd ..
# 安装推理引擎 TensorRT
# !!! 从 NVIDIA 官网下载 TensorRT-8.2.3.0 CUDA 11.x 安装包并解压到当前目录
pip install TensorRT-8.2.3.0/python/tensorrt-8.2.3.0-cp38-none-linux_x86_64.whl
pip install pycuda
export TENSORRT_DIR=$(pwd)/TensorRT-8.2.3.0
export LD_LIBRARY_PATH=${TENSORRT_DIR}/lib:$LD_LIBRARY_PATH
# !!! 从 NVIDIA 官网下载 cuDNN 8.2.1 CUDA 11.x 安装包并解压到当前目录
export CUDNN_DIR=$(pwd)/cuda
export LD_LIBRARY_PATH=$CUDNN_DIR/lib64:$LD_LIBRARY_PATH

4. MMDeploy プロジェクトをインストールしてコンパイルします。
注意下面的第二步

## 克隆 mmdeploy 仓库。转换时,需要使用 mmdeploy 仓库中的配置文件,建立转换流水线
git clone --recursive https://github.com/open-mmlab/mmdeploy.git
python -m pip install -r mmdeploy/requirements/runtime.txt  ## 注意,官方文档没有提到

## 编译Model Converter自定义算子库
cd mmdeploy
mkdir -p build && cd build
cmake -DCMAKE_CXX_COMPILER=g++ -DMMDEPLOY_TARGET_BACKENDS=trt -DONNXRUNTIME_DIR=${ONNXRUNTIME_DIR} ..  #服务器g++版本,9.4满足>7
make -j8 && make install

## 安装Model Converter
cd mmdeploy
pip install -e .

5.mmdetectionをインストールする

git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -v -e .
cd ..

2. モデル変換例

公式ドキュメントを参照してください。

# 执行转换命令,实现端到端的转换,以下是我的实例
python mmdeploy/tools/deploy.py mmdeploy/configs/mmdet/detection/detection_tensorrt_dynamic-320x320-1344x1344.py mmdetection/configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth mmdetection/demo/demo.jpg --work-dir checkpoints/mmdeploy_model/faster-rcnn --device cuda:1 --dump-info

3. トラブルシューティング

Q1 . ModuleNotFoundError: 'onnx'
A1という名前のモジュールがありません。

pip install onnx  -i https://pypi.douban.com/simple/

Q2 . ImportError: 'mmdeploy.apis' から名前 'create_calib_input_data' をインポートできません
A2 . 公式ドキュメントには記載されていないため、自分でインストールしてください

cd mmdeploy
python -m pip install -r mmdeploy/requirements/runtime.txt

Q3 . TensorRT は利用できません。最初に TensorRT をインストールして TensorRT カスタム ops をビルドしてください、または TRTBatchedNMS プラグインが見つかりません
A3 . カスタム オペレーター ライブラリがインストールされていません。ここでは trt バックエンドを選択します。参考: Compile Model Converter

# 先安装cmake>=3.14以上
wget https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0-linux-x86_64.tar.gz
tar -xzvf cmake-3.20.0-linux-x86_64.tar.gz
sudo ln -sf $(pwd)/cmake-3.20.0-linux-x86_64/bin/* /usr/bin/
# 编译自定义算子库
cd mmdeploy
mkdir -p build && cd build
cmake -DCMAKE_CXX_COMPILER=g++ -DMMDEPLOY_TARGET_BACKENDS=trt -DONNXRUNTIME_DIR=${ONNXRUNTIME_DIR} ..  #服务器g++版本,9.4满足>7
make -j8 && make install

Q4 . モデル変換スクリプトを実行すると、「mmdeploy」という名前のモジュールが見つかりませんというメッセージが表示されます。
A4 . mmdeploy を Python の検索パスに追加し、~/.bashrc に以下の内容を記述するか、スクリプト ファイルを記述して、openmmlab 仮想環境に入るたびに 1 回実行します。

#!/bin/bash
## onnxruntime
export ONNXRUNTIME_DIR=/workspace/Cuisc/onnxruntime-linux-x64-1.8.1
export LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$LD_LIBRARY_PATH

## TensorRT
export TENSORRT_DIR=/workspace/Cuisc/TensorRT-8.2.4.2
export LD_LIBRARY_PATH=${TENSORRT_DIR}/lib:$LD_LIBRARY_PATH

## CuDNN
export CUDNN_DIR=/workspace/Cuisc/cuda
export LD_LIBRARY_PATH=$CUDNN_DIR/lib64:$LD_LIBRARY_PATH

## MMDeploy
export PYTHONPATH=/workspace/Cuisc/mmdeploy:$PYTHONPATH

おすすめ

転載: blog.csdn.net/weixin_36354875/article/details/127500332