当前位置:网站首页>MMDeploy部署实战系列【第三章】:MMdeploy pytorch模型转换onnx,tensorrt
MMDeploy部署实战系列【第三章】:MMdeploy pytorch模型转换onnx,tensorrt
2022-08-04 05:38:00 【gy-77】
MMDeploy部署实战系列【第三章】:MMdeploy pytorch模型转换onnx,tensorrt
️ ️ ️ 这个系列是一个随笔,是我走过的一些路,有些地方可能不太完善。如果有那个地方没看懂,评论区问就可以,我给补充。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
目录:
0️⃣ mmdeploy源码安装 (转换faster rcnn r50/yolox为tensorrt,并进行推理)_gy77
内容:一文包含了在Linux系统下安装mmdeploy模型转换环境,模型转换为TensorRT,在Linux,Windows下模型推理,推理结果展示。
1️⃣ MMDeploy部署实战系列【第一章】:Docker,Nvidia-docker安装_gy77
内容:docker/nvidia-docker安装,docker/nvidia-docker国内源,docker/nvidia-docker常用命令。
2️⃣ MMDeploy部署实战系列【第二章】:mmdeploy安装及环境搭建_gy77
内容:mmdeploy环境安装三种方法:源码安装,官方docker安装,自定义Dockerfile安装。
3️⃣ MMDeploy部署实战系列【第三章】:MMdeploy pytorch模型转换onnx,tensorrt_gy77
内容:如何查找pytorch模型对应的部署配置文件,模型转换示例:mmcls:resnext50,mmdet:yolox-s,faster rcnn50。
4️⃣ MMDeploy部署实战系列【第四章】:onnx,tensorrt模型推理_gy77
内容:在linux,windows环境下推理,Windows下推理环境安装,推理速度对比,显存对比,可视化展示。
5️⃣ MMDeploy部署实战系列【第五章】:Windows下Release x64编译mmdeploy(C++),对TensorRT模型进行推理_gy77
内容:Windows下环境安装编译环境,编译c++ mmdeploy,编译c++ mmdeploy demo,运行实例。
6️⃣ MMDeploy部署实战系列【第六章】:将编译好的MMdeploy导入到自己的项目中 (C++)_gy77
内容:Windows下环境导入我们编译好的mmdeploy 静态/动态库。
下面是正文:
MMdeploy官方教程:如何转换模型 — mmdeploy 0.5.0 文档
我要用到的是mmclassification转换到tensorrt。
python ./tools/deploy.py \
${
DEPLOY_CFG_PATH} \
${
MODEL_CFG_PATH} \
${
MODEL_CHECKPOINT_PATH} \
${
INPUT_IMG} \
--test-img ${
TEST_IMG} \
--work-dir ${
WORK_DIR} \
--calib-dataset-cfg ${
CALIB_DATA_CFG} \
--device ${
DEVICE} \
--log-level INFO \
--show \
--dump-info
参数描述:
- deploy_cfg : MMDeploy 中用于部署的配置文件路径。
- model_cfg : OpenMMLab 系列代码库中使用的模型配置文件路径。
- checkpoint : OpenMMLab 系列代码库的模型文件路径。
- img : 用于模型转换时使用的图像文件路径。
- –test-img : 用于测试模型的图像文件路径。默认设置成None。
- –work-dir : 工作目录,用来保存日志和模型文件。
- –calib-dataset-cfg : 此参数只有int8模式下生效,用于校准数据集配置文件。若在int8模式下未传入参数,则会自动使用模型配置文件中的’val’数据集进行校准。
- –device : 用于模型转换的设备。 默认是cpu。
- –log-level : 设置日记的等级,选项包括’CRITICAL’, ‘FATAL’, ‘ERROR’, ‘WARN’, ‘WARNING’, ‘INFO’, ‘DEBUG’, ‘NOTSET’。 默认是INFO。
- –show : 是否显示检测的结果。
- –dump-info : 是否输出 SDK 信息。
如何查找pytorch模型对应的部署配置文件
- 在 configs/ 文件夹中找到模型对应的代码库文件夹。 例如,转换一个yolov3模型您可以查找到 configs/mmdet 文件夹。
- 根据模型的任务类型在 configs/codebase_folder/ 下查找对应的文件夹。 例如yolov3模型,您可以查找到 configs/mmdet/detection 文件夹。
- 在 configs/codebase_folder/task_folder/ 下找到模型的部署配置文件。 例如部署yolov3您可以使用 configs/mmdet/detection/detection_onnxruntime_dynamic.py。
模型转换示例
0️⃣ 转换命令
python ./tools/deploy.py \
configs/mmdet/detection/detection_tensorrt_dynamic-320x320-1344x1344.py \
$PATH_TO_MMDET/configs/yolo/yolov3_d53_mstrain-608_273e_coco.py \
$PATH_TO_MMDET/checkpoints/yolo/yolov3_d53_mstrain-608_273e_coco.pth \
$PATH_TO_MMDET/demo/demo.jpg \
--work-dir work_dir \
--show \
--device cuda:0
1️⃣ 分类resnext50 tensorrt转换脚本
进入mmdeploy docker容器
docker run --gpus all -it -p 8080:8080 -v /home/xbsj/gaoying/mmdeploy_out/:/root/workspace/mmdeploy_out mmdeploy:2104
脚本:转换为onnx文件和tensorrt文件
git clone https://gitee.com/monkeycc/mmclassification.git
cd mmclassification
pip install -e .
mkdir checkpoints
cd checkpoints
wget https://download.openmmlab.com/mmclassification/v0/resnext/resnext50_32x4d_b32x8_imagenet_20210429-56066e27.pth -O resnext50_32x4d_b32x8_imagenet.pth
cd ../../mmdeploy
python tools/deploy.py configs/mmcls/classification_tensorrt_dynamic-224x224-224x224.py ../mmclassification/configs/resnext/resnext50_32x4d_b32x8_imagenet.py ../mmclassification/checkpoints/resnext50_32x4d_b32x8_imagenet.pth ../mmclassification/demo/demo.JPEG --work-dir ../mmdeploy_out/mmcls/resnext50_trt --device cuda:0 --dump-info
2️⃣ 检测yolox-s tensorrt转换脚本(失败)
进入mmdeploy docker容器
docker run --gpus all -it -p 8080:8080 -v /home/xbsj/gaoying/mmdeploy_out/:/root/workspace/mmdeploy_out mmdeploy:2104
脚本:转换为onnx文件和tensorrt文件
cd mmdetection/checkpoints
wget https://download.openmmlab.com/mmdetection/v2.0/yolox/yolox_s_8x8_300e_coco/yolox_s_8x8_300e_coco_20211121_095711-4592a793.pth -O yolox_s_8x8_300e_coco.pth
cd ../../mmdeploy
python tools/deploy.py configs/mmdet/detection/detection_tensorrt_dynamic-320x320-1344x1344.py ../mmdetection/configs/yolox/yolox_s_8x8_300e_coco.py ../mmdetection/checkpoints/yolox_s_8x8_300e_coco.pth ../mmdetection/demo/demo.jpg --work-dir ../mmdeploy_out/mmdet/yolox_l_tensorrt/ --device cuda:0 --dump-info
3️⃣ 检测faster rcnn r50 tensorrt转换脚本
进入mmdeploy docker容器
docker run --gpus all -it -p 8080:8080 -v /home/xbsj/gaoying/mmdeploy_out/:/root/workspace/mmdeploy_out mmdeploy:2104
脚本:转换为onnx文件和tensorrt文件
git clone https://gitee.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -e .
mkdir checkpoints
cd checkpoints
wget https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
mv faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth faster_rcnn_r50_fpn_1x_coco.pth
cd ../../mmdeploy
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pycuda
python tools/deploy.py configs/mmdet/detection/detection_tensorrt_dynamic-320x320-1344x1344.py ../mmdetection/configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py ../mmdetection/checkpoints/faster_rcnn_r50_fpn_1x_coco.pth ../mmdetection/demo/demo.jpg --work-dir ../mmdeploy_out/mmdet/faster_rcnn_r50_trt/ --device cuda:0 --dump-info
边栏推荐
猜你喜欢
随机推荐
Time Series Forecasting Based on Reptile Search RSA Optimized LSTM
SQL存储过程详解
golang rtsp拉流测试
科研绘图图表类型种类繁多,本文告诉你如何选择!
set集合
布隆过滤器
mysql锁机制
RHCE之路----全
JVM工具之 JPS
matlab封闭曲线拟合 (针对一些列离散点)
什么是多态。
Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
curl (7) Failed connect to localhost8080; Connection refused
电脑软件:推荐一款磁盘空间分析工具——WizTree
mysql:列类型之float、double
秒杀系统设计
IDEA中创建编写JSP
U-Net详解:为什么它适合做医学图像分割?(基于tf-Kersa复现代码)
核心价值观编码器【matlab版】
golang 坐标格式 转换 GCJ02ToWGS84