当前位置:网站首页>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
边栏推荐
猜你喜欢

手把手教你Charles抓包工具使用

ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)解决办法

格拉姆角场GAF将时序数据转换为图像并应用于故障诊断

如何用matlab做高精度计算?【第一辑】

零分贝超静音无线鼠标!数量有限!!先到先得!!!【元旦专享】

Based on the EEMD + + MLR GRU helped time series prediction

软件:给大家推荐一款国产非常好用的效率软件uTools

Centos通过Docker搭建MySQL的PXC集群

EfficientNet解读:神经网络的复合缩放方法(基于tf-Kersa复现代码)

MAML principle explanation and code implementation
随机推荐
DOM的12中节点类型,通过关系或方法获取DOM节点,渲染到浏览器页面的一些特效功能,获取DOM节点来改变属性,点击图片,切换为所点击的图片为背景图,页面上的表单验证,点击底部导航栏切换界面
在线公众号文章内容转音频文件实用小工具
【音视频开发系列】fdk_aac 之 PCM 转 AAC
ResNet详解:ResNet到底在解决什么问题?
Database document generation tool V1.0
EfficientNet解读:神经网络的复合缩放方法(基于tf-Kersa复现代码)
系统流量预估、架构设计方案
pycharm专业版使用
matlab的2DCNN、1DCNN、BP、SVM故障诊断与结果可视化
指定区域内随机填充圆之matlab实现
MySQL外键(详解)
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
golang 的库引用方法
核心价值观编码器【matlab版】
Logical Address & Physical Address
Time Series Forecasting Based on Reptile Search RSA Optimized LSTM
原型图总结规范
Mac安装PHP开发环境
IDEA中创建编写JSP
数组的一些方法