yolov5-训练好的模型部署的几种方式-ONNX

本文介绍了如何将使用Python训练的YOLOv5模型转换为ONNX格式,并在C#环境中进行部署。通过加载ONNXRuntime库,详细阐述了在.NET上运行模型的步骤,包括CPU和GPU推测,并解决GPU推测时可能出现的cudnn错误。此外,还提到了DirectML推测速度可能更快。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ONNX,即 Open Neural Network Exchange ,是微软和 Facebook 发布的一个深度学习开发工具生态系统,旨在让 AI 开发人员能够随着项目发展而选择正确的工具。

ONNX 所针对的是深度学习开发生态中最关键的问题之一,在任意一个框架上训练的神经网络模型,无法直接在另一个框架上用。开发者需要耗费大量时间精力把模型从一个开发平台移植到另一个。因此,如何实现不同框架之间的互操作性,简化从研究到生产的路径,成为了重中之重。

三我们在实际的项目中,使用python环境训练出的权重文件(pt)需要应用到我们的上位机程序中(NET),上位机是使用C#开发的

在实际的探索过程中ONNX这种部署方式进入了我们的视野
在这里插入图片描述

在NuGet中,有几个onnx部署到NET环境中的库

### 如何在上位机项目中应用和集成深度学习框架及模型 #### 选择合适的深度学习框架 为了成功地将深度学习技术应用于上位机项目,首先要选择一个适合项目的深度学习框架。常用的框架有TensorFlow、PyTorch、Keras等。这些框架提供了丰富的API和支持工具,能够简化开发过程并提高效率。 对于特定硬件平台如Orange Pi 5 (RK3588s),可以考虑使用支持该平台的专用推理引擎,例如RKNN Toolkit[^2]。这有助于优化性能,并确保最佳运行效果。 #### 准备训练好的模型 一旦选择了合适框架,则需准备已经过充分训练且表现良好的模型。如果现有模型是以其他格式保存(比如ONNX),则可能需要将其转换为目标框架兼容的形式。由于ONNX作为一种通用交换格式,可以在不同框架间轻松迁移模型。 #### 构建预测管道 构建完整的预测流程涉及以下几个方面: - **加载预训练模型**:利用选定框架提供的接口读取之前保存下来的模型文件。 - **前处理输入数据**:根据模型需求调整图像尺寸、归一化像素值以及排列通道顺序等操作,使输入符合预期标准。 - **执行推断运算**:调用相应的方法完成实际计算工作,获取输出结果。 - **后处理输出信息**:解析原始输出得到易于理解和使用的结论;如果是分类任务可返回类别标签及其置信度分数;若是目标检测问题则提供边界框坐标及相关属性。 以下是Python环境下基于PyTorch的一个简单例子: ```python import torch from torchvision import transforms, models def load_model(model_path): model = models.resnet18(pretrained=False) checkpoint = torch.load(model_path,map_location=torch.device('cpu')) model.load_state_dict(checkpoint['model']) return model.eval() transform_pipeline = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), ]) image_tensor = transform_pipeline(image).unsqueeze_(0) with torch.no_grad(): output = loaded_model(image_tensor) _, predicted_class_idx = torch.max(output.data, 1) predicted_label = class_names[predicted_class_idx.item()] print(f'Predicted Label: {predicted_label}') ``` #### 性能优化策略 当面对资源受限的情况时,可以通过多种方式提升系统的响应速度与功耗特性: - 实施剪枝措施去除冗余权重节点以缩减规模; - 利用专门设计的轻量化网络架构替代传统大型复杂结构,在保持较高准确率的前提下显著减轻负担[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄晓魚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值