“GetInputName“: 不是 “Ort::Session“ 的成员

2023-11-11

项目场景:

使用C++和ONNXruntime部署深度学习模型


问题描述

作者在尝试使用onnxruntime和C++部署深度学习模型推理的时候,按照官网的文档对于Ort::Session::Run的定义(如下),需要获得模型输入层与输出层的名字。

std::vector< Value > Ort::Session::Run	(	
                const RunOptions & 	run_options,
                const char *const * input_names,
                const Value * input_values,
                size_t 	input_count,
                const char *const * 	output_names,
                size_t 	output_count 
                )		

于是网上大部分的代码使用的方法是使用GetInputName()与GetOutputName()方法获得上述内容。 

但是在执行时会报错,如标题。


原因分析:

我继续查阅了官网对于这两个方法的描述

 可以发现这两个方法已经被弃用并替换成了GetInputNameAllocated()GetOutputNameAllocated()


解决方案:

以我的代码为例:

原代码如下:

vector<char*> input_names;
vector<char*> output_names;
vector<vector<int64_t>> input_node_dims;
vector<vector<int64_t>> output_node_dims;
for (int i = 0; i < numInputNodes; i++)
{
	input_names.push_back(ort_session->GetInputName(i, allocator));
	Ort::TypeInfo input_type_info = ort_session->GetInputTypeInfo(i);
	auto input_tensor_info = input_type_info.GetTensorTypeAndShapeInfo();
	auto input_dims = input_tensor_info.GetShape();
	input_node_dims.push_back(input_dims);
}
for (int i = 0; i < numOutputNodes; i++)
{
	output_names.push_back(ort_session->GetOutputName(i, allocator));
	Ort::TypeInfo output_type_info = ort_session->GetOutputTypeInfo(i);
	auto output_tensor_info = output_type_info.GetTensorTypeAndShapeInfo();
	auto output_dims = output_tensor_info.GetShape();
	output_node_dims.push_back(output_dims);
}

我的选择是将GetInputName()与GetOutputName()所在的行改为如下:

AllocatedStringPtr input_name_Ptr = ort_session->GetInputNameAllocated(i, allocator);
input_names.push_back(input_name_Ptr.get());

AllocatedStringPtr output_name_Ptr= ort_session->GetInputNameAllocated(i, allocator);
output_names.push_back(output_name_Ptr.get());

即可成功运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“GetInputName“: 不是 “Ort::Session“ 的成员 的相关文章

  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • AcEdJig类

    以多段线类举例 class AsdkPolyLineJig public AcEdJig public AsdkPolyLineJig constAcGePoint3d po AsdkPolyLineJig voiddoIt 操作画图的主流
  • mysql在Windows下使用mysqldump命令手动备份数据库和自动备份数据库

    手动备份 cmd控制台 先进入mysql所在的bin目录下 如 cd C Program Files MySQL MySQL Server 5 5 bin mysqldump u root p 数据库 表名1 表名2 gt 文件路径 比如
  • 个人理财 第七章 理财师的工作流程和方法 8.33%

    第七章 理财师的工作流程和方法
  • 堆排序与新元素插入(对应王道考研数据结构)

    文章目录 代码 主要针对王道的代码增加了新元素的插入 上浮 操作 测试1 对大 小 根堆插入 上浮 一个新元素 时间复杂度与树的高度h有关 根据完全二叉树的性质 O l o g 2
  • 16_C#正则表达式之06将邮箱中的名字替换成星号

    using System using System Collections Generic using System Linq using System Text using System Threading Tasks using Sys
  • gscale

    一 处理可变数量的输入和输出 利用nargin和nargout进行检测 T testhv 4 5 该函数体中使用nargin返回2 使用nargout返回1 函数nargchk可用于一个M函数体中 以检测传递函数的参量数目是否正确 msg
  • Linux脚本调试

    输出脚本运行每行的命令及状态 bash x 脚本名 或在脚本开头加上 bin bash x 仅对脚本中部分内容调试 set x set x bash 脚本名 运行脚本前先打印脚本 bash v 脚本名 或在脚本开头加上 bin bash v
  • String类

    String类 String 类的特点 字符串一旦初始化就不会被改变 1 获取 1 1 获取字符串中字符的个数 长度 int length 1 2 根据位置获取字符 char charAt int index 1 3 根据字符 串 获取在字
  • django返回html标签

    记录一下 使用from django utils html import format html return format html 例子 from django contrib import admin from models impo
  • python 多版本虚拟环境的安装以及常见报错的处理(解决python2.7 - pip wheel failed with error code 2 问题)

    安装 虚拟环境 注意虚拟环境的 包安装 不要加sudo sudo会装在全局 注意虚拟环境的 包安装 不要加sudo sudo会装在全局 注意虚拟环境的 包安装 不要加sudo sudo会装在全局 1 虚拟环境的创建和使用 项目1 gt 依赖
  • 【vscode】快捷键一键生成vue模板

    vscode 快捷键一键生成vue模板 点击File gt Preferences gt User Snippets 搜索框搜索vue 打开vue json 会有如下代码 可自行配置 可默认 Place your snippets for
  • Webkit for Android分析

    转自 http mogoweb net archives 182 网上有许多webkit的分析文章 其中针对android porting的一篇文章WebKit WebKit For Android 写的非常好 分析得非常深入 不过这篇文章
  • 二、svg文字之排版

    1 transform rotate 90 80 80 的使用
  • 【Segment Anything Model】一:SAM分割任何事物模型官网使用介绍

    点击订阅专栏 查看专栏列表和对应知识点 本文为seg SAM系列文章 在持续更新 文章目录 1 简明扼要 2 分割效果 3 开始探索 Segment Anything Model的核心愿景 Segment Anything Model已经实
  • [TPAMI‘21] Heatmap Regression via Randomized Rounding

    paper https arxiv org pdf 2009 00225 pdf code https github com baoshengyu H3R 总结 本文提出一套编解码方法 编码 random round整数化 激活点响应值表征
  • AI行业快报:人工智能最新最全资讯!

    大家好 我是写作机器人小智 这是我自己写的文章哦 所有AI行业快报1秒生成 AI行业动态 近日 阿联酋驻华大使与搜狗公司IoT事业部产品总监 就中阿人工智能发展 未来合作等话题展开了交流 期间 搜狗旅行翻译宝直接承担了同传的角色 搜狗旅行翻
  • Python3.8.1的安装和运行

    01Python 3 8 1的安装和运行 在Windows10系统下安装python 1 1访问www python org网站 在浏览器地址栏中输入www python org访问网站 1 2下载python版本 根据自己的需要或者喜好下
  • 无压力轻松使用Obsidian写newsletter

    quail平台特点 拥有四大特点 开源 人工智能增强 web3和加密货币集成 超越电子邮件 开源 每个人都应该可以访问驱动其工具的代码 通过我们的服务 您可以放心地了解背后发生的事情 人工智能增强 为了创建一个真正智能的工具 我们知道需要在
  • Android Fragment

    Android实习札记 4 Fragment 碎片 基本概念解析 转载请注明出处 coder pig Fragment相信大家都不会陌生吧 侧滑啦 抽屉效果啦 DialogFragment啊等等 一堆地方都会 用到Fragment 对于Fr
  • “GetInputName“: 不是 “Ort::Session“ 的成员

    项目场景 使用C 和ONNXruntime部署深度学习模型 问题描述 作者在尝试使用onnxruntime和C 部署深度学习模型推理的时候 按照官网的文档对于Ort Session Run的定义 如下 需要获得模型输入层与输出层的名字 st