当前位置:网站首页>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
边栏推荐
- 核心价值观编码器【matlab版】
- 目标检测中的先验框(Anchor)
- DOM的12中节点类型,通过关系或方法获取DOM节点,渲染到浏览器页面的一些特效功能,获取DOM节点来改变属性,点击图片,切换为所点击的图片为背景图,页面上的表单验证,点击底部导航栏切换界面
- Mac安装PHP开发环境
- QT signals 保存到 QMap
- 【C# - 爬虫】使用Selenium实现爬虫,获取近七天天气信息(包含完整代码)
- 电脑软件:推荐一款磁盘空间分析工具——WizTree
- Unable to preventDefault inside passive event listener due to target being treated as passive. See
- 微软电脑管家2.0公测版体验
- Centos通过Docker搭建MySQL的PXC集群
猜你喜欢
Interpretation of EfficientNet: Composite scaling method of neural network (based on tf-Kersa reproduction code)
【C# - 爬虫】使用Selenium实现爬虫,获取近七天天气信息(包含完整代码)
基于子空间结构保持的迁移学习方法MLSSM
unicloud 腾讯云 上传文件 Have no access right to the storage uniapp
Online public account article content to audio file practical gadget
手把手教你Charles抓包工具使用
2DCNN, 1DCNN, BP, SVM fault diagnosis and result visualization of matlab
MySQL外键(详解)
matlab让我的旧手机起死回生
A semi-supervised Laplace skyhawk optimization depth nuclear extreme learning machine for classification
随机推荐
golang chan
matlab让我的旧手机起死回生
窥探晶体世界的奥秘 —— 230种空间群晶体结构模型全在这里
Interpretation of EfficientNet: Composite scaling method of neural network (based on tf-Kersa reproduction code)
Unable to preventDefault inside passive event listener due to target being treated as passive. See
“需求370解决解决爬取章节之后主题讨论评论消失问题”工作总结
Gramm Angle field GAF time-series data into the image and applied to the fault diagnosis
SQL去重的三种方法汇总
Computer software: recommend a disk space analysis tool - WizTree
花了近70美元入手的学生版MATLAB体验到底如何?
网络技巧:教你给路由器装上电池,断电照样可以上网!
【C# - 方法封装】数据转换
硬件知识:RTMP和RTSP传统流媒体协议介绍
golang rtsp拉流测试
误差指标分析计算之matlab实现【开源1.0.0版】
Based on the EEMD + + MLR GRU helped time series prediction
matlab封闭曲线拟合 (针对一些列离散点)
MySQL复制表结构、表数据的方法
Detailed explanation of DenseNet and Keras reproduction code
QT signals 保存到 QMap