关于mmdeploy在window上编译example的坑

第一个坑

这边简单阐述下我的操作

  1. 在GitHub官网下载了mmdeploy-1.3.1-windows-amd64预编译包
  2. 修改build_sdk.ps1脚本里的$OPENCV_DIR的路径
  3. 在PowerShell 7-preview (x64)中执行以下命令
    .\set_env.ps1 .\build_sdk.ps1
    然后就出现下面的问题,我在网上找了好久都没找到原因。
    在这里插入图片描述

原因

cmake路径在按照中文教程设置成了vs2019里自带的cmakeC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin
在这里插入图片描述
这个在我编译ppl.cv时,并没有问题,对应教程里的这部分
在这里插入图片描述

解决方法

最终,我把环境变量里的cmake路径改成了cmake安装后的路径C:\Program Files\CMake\bin,example编译完成,废了我好几个小时,生气。

第二个坑

在转换模型时,转为tensorrt时,这边的2onnx的device也要选择'cuda'
在这里插入图片描述

第三个坑

mmdeploy1.3.1在教程里,它推荐安装的onnxruntime=1.8.1,然后在转换模型时,就会报错,
在这里插入图片描述
在GitHub ISSUE里是可以搜到的 https://github.com/open-mmlab/mmdeploy/issues/2491
解决方法: pip install onnxruntime --upgrade

第四个坑

见 https://github.com/open-mmlab/mmdeploy/issues/2694
python sdk验证时,
在这里插入图片描述

  1. onnxruntime,没有结果,也不报错。

解决方法

替换调虚拟环境中对应包所在文件夹里的onnxruntime.dll
在这里插入图片描述

  1. tensorrt,就是报错,没有找到cuda,无语了。

有没有人知道是怎么解决的?评论区踢我一下。

在这里插入图片描述

第五个坑

好消息,是这个坑解决了,我在编译完example后,发现给的image_classification.exe在cmd运行没有输出结果,在vs里进行打断点也不行,每次进入调试,

### 将mmdeploy模型转换为ONNX格式 为了在Windows环境中将mmdeploy模型转换为ONNX格式,需遵循特定步骤并安装必要的依赖项。首先,确保已正确配置环境以支持此操作。 #### 安装必要工具和库 1. **Python版本**:建议使用Python 3.8或更高版本。 2. **MMDeploy及其依赖包**:通过pip命令可以轻松安装这些软件包。需要注意的是,某些CUDA和cuDNN版本可能影响兼容性[^1]。 ```bash pip install mmcv-full mmdet mmcls mmseg deploy ``` 3. **ONNX Runtime**:用于导出ONNX文件的支持库。 ```bash pip install onnxruntime ``` 4. **其他依赖**:依据具体需求还应考虑安装PyTorch和其他相关组件。 #### 准备工作目录结构 创建一个新的项目文件夹来组织所有的资源文件: ```plaintext project/ ├── checkpoints/ # 存放预训练权重 └── configs/ # 放置配置文件 ``` #### 修改配置文件 调整`configs/deploy.py`中的参数设置以便适应目标平台的要求。特别是要指定输入尺寸、类别数量等信息。 #### 执行转换脚本 编写一个简单的Python脚本来完成实际的转换过程。下面是一个例子说明如何实现这一点: ```python from mmdeploy.apis import torch_onnx_export import torch from mmdeploy.core import RewriterContext from mmdeploy.utils.config_utils import load_config # 加载原始检测器配置与检查点路径 detector_cfg_path = 'path/to/mmdetection/config' checkpoint_path = 'checkpoints/model.pth' cfg = load_config(detector_cfg_path) with RewriterContext(cfg=cfg, opset=11), torch.no_grad(): model = build_model_from_cfg(checkpoint_path) dummy_input = torch.randn(1, 3, input_height, input_width).cuda() output_file = "model.onnx" torch_onnx_export( model, dummy_input, output_file=output_file, export_params=True, keep_initializers_as_inputs=False, verbose=False, opset_version=11 ) print(f'Successfully exported ONNX model to {output_file}') ``` 这段代码展示了怎样利用`mmdeploy`提供的API接口来进行模型到ONNX格式的转换,并指定了输出文件名为`model.onnx`。
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值