Windows利用MMDeploy部署OpenMMLab 模型并使用Python进行部署

2023-12-03 20:04

本文主要是介绍Windows利用MMDeploy部署OpenMMLab 模型并使用Python进行部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

一、准备工作

二、安装 MMDeploy

总结


前言

近期在用OpenMMLab构建模型,然后需要使用MMDeploy对模型进行部署。虽然官方文档提供了详细的说明,但是写的太繁琐了,而且在实际部署过程中,发现并不是所有步骤和内容都需要,因此,自己通过测试,记录一下如何利用MMDeploy部署OpenMMLab 模型。


一、准备工作

在利用MMDeploy部署模型之前,需要安装好CUDA、CUDNN。对于端到端的模型转换和推理,MMDeploy 依赖 Python 3.6+ 以及 PyTorch 1.8+。

第一步:从官网下载并安装 Miniconda

第二步:创建并激活 conda 环境

conda create --name mmdeploy python=3.8 -y
conda activate mmdeploy

第三步: 参考官方文档并安装 PyTorch。本文主要是在GPU下测试,因此,安装脚本为:

pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu118

二、安装 MMDeploy

第一步:通过 MIM 安装 MMCV

pip install -U openmim
mim install "mmcv>=2.0.0rc2"

第二步: 安装 MMDeploy 和 推理引擎

主要执行以下命令:

# 1. 安装 MMDeploy 模型转换工具(含trt/ort自定义算子)
pip install mmdeploy==1.3.0
# 2. 支持 onnxruntime-gpu tensorrt 推理
pip install mmdeploy-runtime-gpu==1.3.0
# 3. onnxruntime-gpu
pip install onnxruntime-gpu==1.8.1

第三步: 准备mmdeploy和mmpretrain

1.克隆mmdeploy仓库

git clone -b main https://github.com/open-mmlab/mmdeploy.git

这里主要为了使用configs文件,所以没有加--recursive来下载submodule,也不需要编译mmdeploy

2.安装mmpretrain

git clone -b main https://github.com/open-mmlab/mmpretrain.git
cd mmpretrain
pip install -e .

3.准备一个PyTorch的模型文件当作我们的示例

这里选择了resnet18_8xb32_in1k_20210831-fbbb1da6.pth,对应的训练config为resnet18_8xb32_in1k.py

此时,文件夹目录为:

4.在构建python 转换代码时,官方给出的代码会出现无法找到deploy_cfg文件的问题,所以我这里使用了绝对目录,只需要将absolute_path修改为自己得文件路径即可。

from mmdeploy.apis import torch2onnx
from mmdeploy.backend.sdk.export_info import export2SDKabsolute_path = "自己电脑上的路径"img = absolute_path + "mmpretrain/demo/demo.JPEG"
work_dir = absolute_path + "work_dir/onnx/resnet"
save_file = absolute_path + "end2end.onnx"
deploy_cfg = absolute_path + "mmdeploy/configs/mmpretrain/classification_onnxruntime_dynamic.py"
model_cfg = absolute_path + "mmpretrain/configs/resnet/resnet18_8xb32_in1k.py"
model_checkpoint = absolute_path + "resnet18_8xb32_in1k_20210831-fbbb1da6.pth"
device = "cpu"# 1. Convert model to ONNX
torch2onnx(img, work_dir=work_dir, save_file=save_file,deploy_cfg=deploy_cfg, model_cfg=model_cfg,device=device, model_checkpoint=model_checkpoint)# 2. Extract pipeline info for sdk use (dump-info)
export2SDK(deploy_cfg=deploy_cfg, model_cfg=model_cfg, work_dir=work_dir, device=device, pth=model_checkpoint)

5.推理代码如下。

# Copyright (c) OpenMMLab. All rights reserved.
import argparseimport cv2
from mmdeploy_runtime import Classifierabsolute_path = "自己电脑上的路径"
model_path = absolute_path + 'work_dir/onnx/resnet/'
img_path = absolute_path + "mmpretrain/demo/bird.JPEG"def parse_args():parser = argparse.ArgumentParser(description='show how to use sdk python api')parser.add_argument('--device_name', default="cpu", help='name of device, cuda or cpu')parser.add_argument('--model_path', default=model_path, help='path of mmdeploy SDK model dumped by model converter')parser.add_argument('--image_path', default=img_path, help='path of an image')args = parser.parse_args()return argsdef main():args = parse_args()img = cv2.imread(args.image_path)classifier = Classifier(model_path=args.model_path, device_name=args.device_name, device_id=0)result = classifier(img)for label_id, score in result:print(label_id, score)if __name__ == '__main__':main()

总结

通过对官方文档的测试,发现也不是所有的内容都需要的。尤其是当仅仅使用python进行推理的情况下,是不需要下载mmdeploy-1.3.0-windows-amd64.zipmmdeploy-1.3.0-windows-amd64-cuda11.8.zip的。

这篇关于Windows利用MMDeploy部署OpenMMLab 模型并使用Python进行部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/450705

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推