首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ONNX C#:如何读取这个对象并提取概率值?

ONNX是一个开放的深度学习模型交换格式,它允许在不同的深度学习框架之间无缝交互和共享模型。在C#中,我们可以使用ONNX Runtime库来读取ONNX对象并提取概率值。

下面是使用C#读取ONNX对象并提取概率值的基本步骤:

  1. 安装ONNX Runtime库:首先需要在C#项目中安装ONNX Runtime库。可以通过NuGet包管理器来搜索并安装"Microsoft.ML.OnnxRuntime"包。
  2. 导入所需的命名空间:在C#代码中,导入ONNX Runtime库相关的命名空间,以便能够使用相关的类和方法。例如:
  3. 导入所需的命名空间:在C#代码中,导入ONNX Runtime库相关的命名空间,以便能够使用相关的类和方法。例如:
  4. 创建ONNX Runtime会话:使用ONNX Runtime库的InferenceSession类创建一个ONNX Runtime会话。可以通过传入ONNX模型文件的路径来加载模型,并创建会话对象。例如:
  5. 创建ONNX Runtime会话:使用ONNX Runtime库的InferenceSession类创建一个ONNX Runtime会话。可以通过传入ONNX模型文件的路径来加载模型,并创建会话对象。例如:
  6. 准备输入数据:根据ONNX模型的输入要求,准备好输入的数据。可以通过NamedOnnxValue类创建一个包含输入数据的对象。例如:
  7. 准备输入数据:根据ONNX模型的输入要求,准备好输入的数据。可以通过NamedOnnxValue类创建一个包含输入数据的对象。例如:
  8. 运行模型推理:使用会话对象的Run方法运行模型推理,得到输出结果。例如:
  9. 运行模型推理:使用会话对象的Run方法运行模型推理,得到输出结果。例如:
  10. 提取输出概率值:从结果中提取输出概率值。可以通过索引或名称来获取特定输出的概率值。例如,如果要获取第一个输出的概率值,可以使用以下代码:
  11. 提取输出概率值:从结果中提取输出概率值。可以通过索引或名称来获取特定输出的概率值。例如,如果要获取第一个输出的概率值,可以使用以下代码:

通过以上步骤,我们就可以在C#中读取ONNX对象并提取概率值了。

关于ONNX和ONNX Runtime的更详细信息,您可以参考以下链接:

  • ONNX官方网站:https://onnx.ai/
  • ONNX Runtime官方文档:https://onnxruntime.ai/
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

构造、读取、调试,带你系统探究 ONNX 模型

之后,我们会用 ONNX API 构造和读取模型。最后,我们会利用 ONNX 提供的子模型提取功能,学习如何调试 ONNX 模型。...这说明我们的模型等价于执行 a * x + b 这个计算 读取修改 ONNX 模型 通过用 API 构造 ONNX 模型,我们已经彻底搞懂了 ONNX 由哪些模块组成。...现在,让我们看看该如何读取现有的 ".onnx" 文件并从中提取模型信息。...同理,用上面的 onnx.load 读取 ONNX 模型时,我们收获的也是一个 ModelProto 的对象。输出这个对象后,我们应该得到和之前完全相同的输出。...这多见于深度学习框架模型和 ONNX 模型的精度对齐中,因为只要能够输出中间节点的,就能定位到精度出现偏差的算子。我们来看看如何用子模型提取实现这一任务。

3.9K11
  • 通过强化学习和官方API制作《星露谷物语》的自动钓鱼mod

    我的目标是编写一个能读取钓鱼小游戏状态完美玩游戏的代理。目标的结果是使用官方 Stardew Valley 的 modding API 用 C# 编写一个自动钓鱼的mod。...经过一些迭代后,可以使用 ONNX 生成一个序列化模型,然后从 C# 端加载模型,并在每一帧中接收钓鱼小游戏的状态作为输入,(希望)在每一帧上输出正确的动作。...然后使用这些数据在 Python 端训练新模型,生成一个新的 ONNX格式模型,该模型将每 1000 帧左右重新加载一次,然后使用新模型继续玩游戏生成数据来训练新模型。...从 C # 中读取 ONNX 模型 C# 端唯一真正的 ML 代码是 ONNX 进行推理(预测),它定义了张量类型和会话的对象,可以发送张量输入并从序列化的 ONNX 模型获取张量输出。...这个gif是未训练完成的演示 下面是我们训练的结果,效果还不错 资源和引用 非常感谢 Stardew Valley 的mod社区帮助让我更好地理解游戏:) C# mod 和 Python 训练的所有代码都可以在这里找到

    76110

    使用 ML.NET 再现 《华强买瓜》

    以及后来的基于python著名的神经网络框架tensorflow迁移的tensorflow.net亦或者是pytorch迁移的torchsharp来实现C#版本的深度学习,但是毕竟C#确实天生并不适合用来搞机器学习...下载地址:https://t.ly/0cUt super-resolution模型 下载地址:https://t.ly/rnsi(需要解压提取内部的onnx文件) 操作流程 1、首先我们将目标视频(我这里就用...将新的图片合并成新的视频 首先先看看成品(这里我转换成gif方便演示): 原版视频《华强买瓜》 1280*720 迁移后的抽象艺术版本 224*224 超分辨放大后的版本 672*672 接着我们看看如何一步一步来实现这个流程的...选择file-open,然后选择第一个模型udnie-9.onnx,点击input,可以看到右边已经展示出了这个模型的输入和输出项,接着我们创建类的时候,这里需要这一些数字。...) * 255, 0, 255) 81 ); 82 } 83 /// 84 /// 双三次插提取

    55210

    基于TNN在Android手机上实现图像分类

    下面三个就是TNN的JNI接口,通过这个接口完成模型加载,预测,当不使用的时候和可以调用deinit()清空对象。...HEIGHT); int l = getMaxResult(results); return new float[]{l, results[l] * 0.01f};}这里创建一个获取最大概率...,并把下标返回的方法,其实就是获取概率最大的预测标签。...拿到图片路径之后,调用TFLiteClassificationUtil类中的predictImage()方法预测获取预测,在页面上显示预测的标签、对应标签的名称、概率和预测时间。...核心代码如下,创建一个子线程,子线程中不断从摄像头预览的AutoFitTextureView上获取图像,执行预测,并在页面上显示预测的标签、对应标签的名称、概率和预测时间。

    1.7K20

    实践演练Pytorch Bert模型转ONNX模型及预测

    ONNX作为中间层,的一头对接不同的机器学习模型框架,另外一头对接的是不同的编程语言(C++、Java、C#、Python……)、不同OS(windows、Linux……)、不同算力设备(CPU、CUDA...Runtime做预测好了,经过前面的步骤,顺利的话,已经得到一个onnx的模型文件model.onnx了,现在我们可以加载这个模型执行预测任务。... – 输出的名字,可以为Noneinput_feed – 字典类型 { 输入参数名: 输入参数的 }run_options – 有默认,可以忽略它的返回是一个list,list里面的可以理解成是这段预测文本与每种分类的概率...get_inputs()返回一个list,list中NodeArg类型的对象这个对象有一个name变量表示参数的名称。...print('%s is %s' % (t, res))最终输出:天问一号着陆火星一周年 is science性能对比模型转换为ONNX模型后,性能表现如何呢?

    2.9K90

    二维已经 OUT 了?3DPose 实现三维人体姿态识别真香 | 代码干货

    ONNX Runtime库 ONNX Runtime库是一个用于ONNX(Open Neural Network Exchange)模型推理的引擎。...它是一个提供多维数组对象的Python库,除此之外,还包含了多种衍生的对象(比如掩码式数组(masked arrays)或矩阵)以及一系列的为快速计算数组而生的例程,包括数学运算,逻辑运算,形状操作,排序...而深度学习模型操作过程相对简单且对特征的表示能力强大,对输入信息自动进行特征提取而无需人为手动提取特征。...通过找到第j个关节的28个特征图,找到最大的索引来获取个点坐标。并把坐标按照一定比例缩放。使得图像变形较为符合人体规律。...for j in range(0, 24):     # 找到第j个关节的28个特征图,找到最大的索引     joint_heat = heatMap3D[j * 28:(j + 1) * 28,

    1.3K20

    使用C#也能网页抓取

    这个包支持CSS选择器并且可以模拟网络浏览器。虽然ScrapySharp被认为是一个强大的C#包,但程序员使用它进行维护的概率并不是很高。...06.解析HTML:获取书籍链接 在这部分代码中,我们将从网页中提取所需的信息。在这个阶段,文档现在是一个类型的对象HtmlDocument。这个类公开了两个函数来选择元素。...对于这个例子——C#网络爬虫——我们将从这个页面中抓取所有书籍的详细信息。 首先,需要对其进行解析,以便可以提取到所有书籍的链接。...我们可以写一个foreach循环,并从每个链接一个一个地获取href。我们只需要解决一个小问题——那就是页面上的链接是相对链接。因此,在我们抓取这些提取的链接之前,需要将它们转换为绝对URL。...在foreach循环中,我们将所有链接添加到此对象返回它。 现在,就可以修改Main()函数了,以便我们可以测试到目前为止编写的C#代码。

    6.4K30

    .NET周报 【5月第4期 2023-05-27】

    C#/.NET】使用ASP.NET Core对象池 https://www.cnblogs.com/xuyd/p/17438313.html 使用对象池的好处主要是减少初始化/资源分配,提高性能。...C# 面向对象教程合集 https://www.cnblogs.com/BoiledYakult/p/17422301.html 作者本人编写的C#面向对象的教程,现在更新了三个章节。...其是一种简单的创建型模式,它通过一个工厂类来创建对象,客户端只需要知道如何使用工厂类,而不需要知道对象的实现细节。工厂类负责创建对象的整个生命周期,并且负责处理与具体实现有关的逻辑。...它支持 C# 10 和 11 等新语言功能,包含各种改进和修复。...【英文】[C#] C# 中的 async/await 是如何工作的? - 尼诺的花园。

    17830

    .NET周刊【5月第3期 2024-05-19】

    提供的代码示例展示了如何创建设置一个学生业务对象,包括 SQL 查询设置和实体属性的定义。...文章展示了 C#如何编写和安装拦截器,通过调用管道把拦截器串联起来,以便对请求和响应进行处理。作者在结语中鼓励持续实践以提高能力,开放性地邀请读者交流。...文章从一个实际案例出发,展示了一个模型验证导致的错误,解决了这个问题。方法是在对应的处理器(Handler)中使用 ModelState.Clear()清空模型状态。...文章展示了如何使用 OpenVINO™ C# API 搭配 PP-YOLOE 模型进行对象检测,具体介绍了依赖安装、项目输出细节。.../c691e858e3fa44 如何在语义内核中连接 Phi-3 Mini ONNX 模型 https://towardsdev.com/how-to-connect-phi-3-mini-onnx-model-in-semantic-kernel-fc96b758129f

    10100

    PyTorch 深度学习实用指南:6~8

    “图 6.5”显示了如何对像素集应用卷积运算以预测中心像素。 与其他模型相比,自回归模型的主要优点是联合概率学习技术易于处理,可以使用梯度下降进行学习。 没有近似,也没有解决方法。....jpg)] 图 6.8:没有卷积卷积的 WaveNet 架构 来源: 《WaveNet:原始音频的生成模型》,Aaron van den Oord 等 “图 6.8”显示了 WaveNet 在进行新预测时如何提取有关上下文的信息...我们从存储库中提取了一些经验。 然后,我们将所有状态,动作和奖励转换为批量。 我们通过policy_net传递状态获得相应的。...我们使用request对象的get_json函数从request对象获取主体POST参数。 然后,将通过 HTTP 传入的字符串数据转换为整数。 这个整数是我们从前端传递的数字。...模型的输出是运行max确定哪个索引具有最大,然后将其转换为可读输出的概率分布。 为生产准备的服务器 这是关于如何使用 Flask 将 PyTorch 模型部署到服务器的非常基本的演练。

    1.1K20

    在 ML.NET 中使用Hugginface Transformer

    ML.NET 加载 ONNX 模型 在使用ML.NET 加载ONNX 模型之前,我们需要检查模型找出其输入和输出。 我们使用Netron。我们只需选择创建的模型,整个图形就会出现在屏幕上。...这个完整的过程可以应用于任何ONNX模型,而不仅仅是从Huggingface创建的模型。 完成此操作后,我们可以继续进行实际的 ML.NET 代码。首先,在我们的 .NET 项目中安装必要的包。...我不会评论在C#中操作和使用矩阵所需的努力。 因此,在.NET中使用Huggingface Transformers的第一个挑战是,您需要构建自己的分词器。这也意味着你需要注意词汇。...调用预测引擎对象的预测方法时发生异常。...总结 在本文中,我们看到了如何弥合技术之间的差距,使用 ML.NET 在C#中构建最先进的NLP解决方案。

    1.1K10

    pyTorch入门(四)——导出Minist模型,C++ OpenCV DNN进行识别

    这个暂时不是本篇要解决的问题,我们先看看怎么实现的导出模型和推理。...训练->onnx模型->C++ OpenCV DNN推理(附源码地址)》有说过,那里面是先训练完后直接导出了,而traintoonnx.py中则是前面训练已经保存好模型了,这里我们直接加载模型读取,然后再进行导出...02 导出ONNX模型在使用OpenCV推理时,x.view不能用 这个是比较关键的,原来的我们的训练模型中,在前向传播里面用的都是x.view这个,如下图 导出ONNX在OpenCV中推理时直接报错了...# 思路 1 读取图像,做灰度处理,高斯模糊,二化 2 形态学操作,使用膨胀(防止轮廓查找有问题) 3 轮廓查找,根据顺序排序截图图像 4 排序后的图像进行处理缩放为(28X28) 5 使用DNN传入处理后的图像进行推理...minMaxLoc提取到最大,判断推理的数字。

    86110

    NVIDIA HugeCTR,GPU 版本参数服务器 --(1)

    为了实现这个目标,推荐系统首先必须估计特定用户点击项目的可能性。此任务通常称为 CTR 估计。 如何估算点击率?这里没有巫术,一般是获取包含 用户-物品 交互的富数据集,使用它来训练 ML 模型。...例如,如果用户 A 从一系列书籍中购买或点击了几本传记,那么模型为传记分配高概率是有意义的。 CTR 的系统结构大致如下: 下图展示了CTR推理流程。...它还显示了如何减少每个插槽的输入特征跨两个插槽连接。...我们修改了我们的criteo2hugectr工具以支持 Criteo 数据集的密钥集提取。...为了有效地把数据获取这个长延迟隐藏起来,HugeCTR 有一个多线程数据读取器,其可以将数据获取与实际模型训练重叠起来。

    1.2K20

    【AI工具】 一款多SOTA模型集成的高精度自动标注工具(直接安装使用,附源码)

    支持文本检测、识别和KIE(关键信息提取)标注。 支持检测-分类级联模型进行细粒度分类。 支持一键人脸和关键点检测功能。...出于这个原因,Segment Anything 是自动标记的一个很好的候选框,即使是从未见过的新对象。 使用步骤 选择左侧的Brain按钮以激活自动标记。...Segment Anything 将自动分割对象。 – 清除:清除所有自动分段标记。 – 完成对象(f):当完成当前标记后,我们可以及时按下快捷键f,输入标签名称保存对象。...文本检测标签 当用户创建新对象切换到编辑模式时,可以更新对象的文本。 文本分组 想象一下,当使用 KIE(键信息提取)时,需要将文本分组到不同的字段中,包含标题和。...我们主要讲解下如何加载自定义模型,这将使你能够使用自己的模型进行自动标记。如果你有一个已根据自己的数据训练过的自定义模型希望将其用于自动标记,这将非常有用。

    80730

    【Python案例】短视频转动漫效果

    示例效果如下: [短视频转动漫效果] 1 视频转动漫整体实现思路 整个实现流程如下: 读取视频帧 将每一帧图像转为动漫帧 将转换后的动漫帧转为视频 难点在于如何将图像转为动漫效果。...2 图像转动漫 为了让读者不关心深度学习模型,已经为读者准备好了转换后的onnx类型模型。接下来按顺序介绍运行onnx模型流程。...2.2 运行模型 先导入onnxruntime库,创建InferenceSession对象,调用run函数。..." MODEL = "models/anime_2.onnx" sess = rt.InferenceSession(MODEL) inp_name = sess.get_inputs()[0].name...2.3 单帧效果展示 [效果1] [效果2] [效果3] 3 视频帧读取与视频帧写入 这里使用Opencv库,提取视频中每一帧调用回调函数将视频帧回传。

    2.7K106
    领券