• MMDeploy部署实战系列【第三章】:MMdeploy pytorch模型转换onnx,tensorrt


    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    参数描述:

    • 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模型对应的部署配置文件

    1. 在 configs/ 文件夹中找到模型对应的代码库文件夹。 例如,转换一个yolov3模型您可以查找到 configs/mmdet 文件夹。
    2. 根据模型的任务类型在 configs/codebase_folder/ 下查找对应的文件夹。 例如yolov3模型,您可以查找到 configs/mmdet/detection 文件夹。
    3. 在 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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    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
    
    • 1

    脚本:转换为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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    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
    
    • 1

    脚本:转换为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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    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
    
    • 1

    脚本:转换为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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    使用 Databend 加速 Hive 查询
    【 web网页设计期末课程大作业】基于HTML+CSS+JavaScript智慧路灯综合管理系统
    ChatGPT 体验和思考
    【Linux】基础IO,软硬链接,动静态库
    用于构建用户界面的JavaScript库--->React
    期货开户公司的选择和作用
    电子邮件发送接收原理(附 go 语言实现发送邮件)
    图像识别学习笔记
    确保云原生部署中的网络安全
    23款奔驰GLC260L升级小柏林音响 全新15个扬声器
  • 原文地址:https://blog.csdn.net/qq_39435411/article/details/126010407