尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
ONNX 运行时报错 ORT_RUNTIME_EXCEPTION Ort::Exception 未经处理的异常
1.运行报错前段时候推理时遇到一个非常奇怪的bugONNX模型在运行时会报ORT_RUNTIME_EXCEPTION的异常2.错误排查继续运行断点看到是在Session.Run()的时候报错。断点逐语句跟踪没有更多详情的信息,重新看了好几遍代码后都没有看出任何问题。于是去看其他能正常推理的代码 参数和流程都一致不知道哪里导致的问题。只能推断Session对象是全局变量类的构造函数中初始化后在其它地方调用Session.Run()方法引起。// summary /// ONNX模型的初始化。 /// /summary /// param namemodelFile模型文件的绝对路径可空如果为空则从当前目录查找默认文件名是model.onnx。/param /// param namethreadNum启用线程数/param ONNXDetect::ONNXDetect(std::string modelName, int threadNum) { string modelPathStr; if (!FindModel(modelName, modelPathStr)) throw exception(未找到模型文件); ////初始化环境 Ort::SessionOptions sessionOptions; sessionOptions.SetIntraOpNumThreads(threadNum); ////启用所有可能的优化。 sessionOptions.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_ENABLE_ALL); envOrt::Env(ORT_LOGGING_LEVEL_ERROR, test); //string 转 wchart_t; wchar_t* wc new wchar_t[modelPathStr.size()]; //wc指向的内存区域存储这wchar_t类型的 string。 swprintf(wc, modelPathStr.size() 1, L%S, modelPathStr.c_str()); //注意大写 //初始化session对象。 session new Ort::Session(env, wc, sessionOptions); } ///运行推理 vectorValue ONNXDetect::Detect(Mat src) { //预处理。 PreProcessRBC(src, inputData); arrayint64_t, 4 input_shape{ 1, 3, inputHeight, inputWidth }; MemoryInfo allocator_info MemoryInfo::CreateCpu(OrtDeviceAllocator, OrtMemTypeCPU); Value input Value::CreateTensorfloat(allocator_info, inputData.data(), inputData.size(), input_shape.data(), input_shape.size()); //运行推理 vectorValue output session-Run(RunOptions{ nullptr }, inputNames, input, inputBatch, outputNames, outputBatch); return output; }花了点时间终于逐步对比排查发现是初始化Session的变量Env对象的问题不知为何如果env设置为局部变量Session对象为全局变量env初始化Session就会异常。3.解决方法方法1Env对象的的初始化在这里是局部变量需要把这个对象设置为全局变量。方法2不把这个对象设置为全局变量只在头文件.h中定义一个空的Env对象也能正常运行。希望对遇到相同问题的人有帮助。
RELATED

相关推荐

生产级Agent(22):策略即代码与Policy Simulation

生产级Agent(22):策略即代码与Policy Simulation

文章摘要 前二十一篇已经把生产级 Agent 的运行、权限、审计、回放、SLO 和多租户隔离逐层搭起来。 到了这一阶段,平台已经有越来越多“规则”: 哪些模型能用 哪些Tool能调 哪些租户能访问哪些数据 什么动作需要审批 什么情况下要Fail Closed 哪个Artifa…

📅 2026/11/13 13:20:48
行业新风向,智能化汽车全面布局,Android车载走向未来化发展道路

行业新风向,智能化汽车全面布局,Android车载走向未来化发展道路

随着 5G 通信、人工智能、交互等底层技术的发展,汽车的产品定位开始发生变化,逐渐由交通工具向智能终端演变,汽车智能化将成为行业未来的长期趋势。 从最近能够的走势也能够感受到市场对这个车载行业的认可,最显著的表现就是多家互…

📅 2026/11/14 9:38:35
Linux日常开发常用命令、脚本

Linux日常开发常用命令、脚本

1.Linux服务器系统常用命令 启动防火墙: systemctl start firewalld 查询防火墙状态:systemctl status firewalld 停止防火墙: systemctl disable firewalld 禁用防火墙: systemctl stop firewalld 重启防火墙:firewal…

📅 2026/10/21 1:34:48
MORE NEWS

更多资讯

📰

桂林电工证哪里办?官方回应外省证书怎么转

桂林电工证哪里办?官方回应外省证书怎么转 之前考的证在外省能不能转过来?这个问题我见过太多人问,尤其是像你这种在外地打工、又想回老家发展的,更是操心。我今天就来聊聊 桂林电工证哪里办…

📰

天津哪可以考电工证千万别踩坑!新手如何避坑拿证上岗

天津哪可以考电工证千万别踩坑!新手如何避坑拿证上岗 你是不是也遇到过这种情况:刚找好工作,结果被告知必须要有电工证才能上岗?别慌,这正是很多人在找工作的“硬门槛”。如果你正在天津找工作,又急需电工证,那这篇文章就是你最需要的指南。别再走弯路…

📰

广州报考电工证的条件和值不值得考

广州报考电工证的条件和值不值得考 工地太忙根本没时间复习考试,这话听上去像极了咱们一线施工人员的日常。尤其是像你这样在焦作房建工程一线打拼的,天天赶工期、盯现场,哪还有空去研究电工证的事儿?但现实是, 广州报考电工证的条件 你得了解,…

📰

考电工证的用途是什么报名费多少钱

电工证到底有什么用?千万别踩坑,报名前必须知道 你是不是也遇到过这种情况?拿着电工证,却不知道能干啥,或者明明有证,却被公司说“不行”,甚至被中介骗钱?【考电工证的用途是什么】这问题,其实很多人都没搞清楚。尤其是在安阳这样的城市,房建工程行…

📰

特种工操作证应急厅千万别踩坑,怕考不过白交培训费?手把手教你避坑

特种工操作证应急厅千万别踩坑,怕考不过白交培训费?手把手教你避坑 怕考不过白交培训费?特种工操作证应急厅的报考流程看起来简单,实际一不小心就踩坑,培训费打水漂不说,还可能耽误工期。别急,今天就从漯河劳务班组负责人的角度,手把手教你如何顺利拿…

📰

建委电工证在哪考内部消息全公开 工地电工没时间复习怎么办

建委电工证在哪考内部消息全公开 工地电工没时间复习怎么办 工地太忙根本没时间复习考试,这几乎是每个一线电工的日常。尤其是新乡公路工程从业者,施工周期紧、任务重,想抽出时间备考建委电工证,真的太难了。不过别急,我们这里有一条 内部消息…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬