使用onnxruntime_Gpu推理efficientnetV2的onnx格式的模型文件

文章介绍了如何在C++中利用onnxruntime进行efficientnetV2模型的分类推理,包括安装必要的packages,处理图像预处理,以及解决在onnxruntime新版API中遇到的GetInputName和GetOutputName方法弃用的问题。代码示例展示了模型加载、输入输出处理和推理过程。
摘要由CSDN通过智能技术生成

目录

【说明】

 【步骤】

Ⅰ安装onnxruntime所需要的packages

Ⅱ 等待安装完毕

【代码部分】 

【报错问题及解决办法】


【说明】

efficientnetV2是目前基于CNN网络的最强分类模型,我们使用该模型对我们的项目做分类,目前我们使用的是28类,发现其泛化能力比较弱,学习能力是比较强的。

efficientnetV2的pytorch代码是参考的霹雳吧啦Wz大佬的

关于分类的C++推理代码,借鉴了

C++使用onnxruntime/opencv对onnx模型进行推理(附代码)

因为有些函数被弃用等,对其也做了一些修改,更方便测试

 【步骤】

Ⅰ安装onnxruntime所需要的packages

打开VS2019->创建新项目->项目->管理NuGet程序包->搜索所需要的插件 

Ⅱ 等待安装完毕

【代码部分】 

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc_c.h>
#include <opencv2/dnn.hpp>
#include <opencv2/core/utils/logger.hpp>
#include <iostream>  
#include <onnxruntime_cxx_api.h>
#inc
### 如何在Java项目中使用ONNX Runtime GPU进行推理部署 为了在Java项目中成功配置并使用ONNX Runtime GPU版本进行推理,需遵循特定的环境设置流程以及依赖项管理。由于官方支持可能有限制,在ARM架构服务器上尤其如此[^1]。 #### 1. 安装必要的硬件驱动程序和库 确保已正确安装NVIDIA CUDA Toolkit与cuDNN库,并验证其兼容性。这些组件对于启用GPU加速至关重要。此外,还需确认操作系统内核参数已被适当调整以允许设备访问。 #### 2. 添加Maven依赖到pom.xml文件 通过引入`onnxruntime` Maven仓库中的相应工件来集成ONNX Runtime Java API。注意区分不同平台下的预构建二进制包;针对Linux-x86_64系统可采用如下方式: ```xml <dependency> <groupId>com.microsoft.onnxruntime</groupId> <artifactId>onnxruntime-linux-x86_64-gpu</artifactId> <version>1.13.0</version> </dependency> ``` 对于其他体系结构,则应查阅最新文档获取确切坐标[^3]。 #### 3. 初始化OnnxSession实例 创建用于加载模型定义及执行预测操作的核心类——`OrtEnvironment` 和 `OrtSession.SessionOptions` 对象。这里特别强调要指定使用哪个计算资源(即CPU还是GPU),这可以通过向会话选项传递额外属性实现: ```java // 创建全局唯一的 OrtEnvironment 实例 final var env = new OrtEnvironment.getEnvironment(); // 设置 SessionOption 使用 GPU 设备 var sessionOptions = (new OrtSession.SessionOptions()) .addConfigEntry("session.set_cuda_exclusive_device", "true"); try (var session = env.createSession(modelPath, sessionOptions)) { // 执行推理... } finally { env.release(); } ``` 上述代码片段展示了如何强制独占模式下占用单个GPU设备,从而避免多线程竞争带来的潜在问题[^2]。 #### 4. 处理异常情况 考虑到实际应用环境中可能出现的各种意外状况,建议开发者充分测试应用程序的行为表现,尤其是在切换至新硬件或软件栈之后。如果遇到类似于C#环境下描述过的崩溃现象,务必开启详细的日志记录以便排查原因。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值