问题标签 [onnxruntime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
296 浏览

python - 将输入输入到 resnet18 onnx 模型(Resnet18 部署用于视频文件中的对象检测)

我已经使用此链接中 github 中的代码构建并保存了一个训练有素的 resnet18 模型

代码可以通过指定训练目录和网络模型类型来运行。

选择并训练模型 resnet18.onnx 对 4 种类型的细胞进行分类。

我正在为这个项目使用 Nvidia jetson (ubuntu)。

现在我需要使用从上面的代码(resnet18.onnx)生成的训练模型使用以下代码片段对视频中的对象进行分类,其中一个小框和预测值显示在视频中检测到的单元格上。

当我使用 resnet18.onnx 运行上述代码时收到的错误消息是

置信度,框 = ort_session.run(无,{input_name:img})

ort_session.run 预期 2 得到 1

onnx 模型期望的第二个输入是什么(我知道模型只需要图像来对其进行分类,所以需要的第二个输入是什么)

0 投票
1 回答
89 浏览

python - 在 ONNX 中构建模型

是否可以在不使用不同的深度学习框架(例如 PyTorch、TensorFlow 等)的情况下在 ONNX 中构建模型?

在 PyTorch 中,我会写一个这样的模型:

什么相当于在 ONNX 中定义相同的模型?我了解如何导出模型,但我想在不使用外部库的情况下使用 ONNX。

0 投票
1 回答
1899 浏览

python - 在 python 输入不兼容问题中使用 ONNX 模型运行推理?

我是编程初学者,我正在尝试运行“tinyyolov2-8.onnx”模型,我在输入格式方面苦苦挣扎,任何人都可以建议如何为这个模型输入格式。代码如下,

0 投票
1 回答
1187 浏览

c# - C# 中 OnnxRuntime 张量的高效位图

我正在使用 Microsoft OnnxRuntime 来检测和分类图像中的对象,我想将其应用于实时视频。为此,我必须将每一帧转换为 OnnxRuntime 张量。现在我已经实现了一个大约需要 300 毫秒的方法:

我需要此代码尽可能快地运行,因为我将检测器的输出边界框表示为视频顶部的一层。有谁知道进行这种转换的更快方法?

0 投票
1 回答
1091 浏览

python-3.x - Onnx-to-keras 和 Keras2onnx 将 ONNX 模型输入层更改为 Nx1x200x200,而不是原来的 1x1x200x200

目前,我正在尝试将一个导入Keras,以便在大小为1x1x200x200ONNX model的灰度图像数据集上运行训练。

但是,当我使用将我的 onnx 模型转换为 Keras 时

模型的输入层更改为?x1x200x200作为.h5 model.

当转换回 .onnx 文件时,输入层已更改为 Nx1x200x200。

这在尝试训练模型时有效,但在使用 ONNX 运行时将训练的神经网络部署到 C Plus Plus 代码时,更改的输入层会导致错误。

这是因为N被读取为导致溢出的 -1 维层。

C++ 代码适用于原始模型,其中输入层预计将接收 1x1x200x200 图像

我已经尝试在 numpy 数组张量上使用 reshape() 更改张量输入,但这对更改后的模型没有影响。

只是想知道这是否可以修复,任何帮助将不胜感激。谢谢!

0 投票
1 回答
433 浏览

python - Ubuntu 16.04 上的 onnxruntime 问题

我正在尝试使用 onnxruntime 在 Ubuntu 16.04 上的 ONNX 模型上运行推理。但是导入语句给了我这个错误:

在线搜索后,我尝试在警告中提到的 .so 上使用 execstack -c 。但我收到此消息,问题仍然存在:

我真的很感激一些解决这个问题的建议。

PS我什至尝试安装onnxruntime-gpu(我有CUDA 10.0)但我得到了同样的错误。

0 投票
1 回答
863 浏览

onnxruntime - 如何在 Linux 上为 onnxruntime 生成 C API

我正在尝试从 Linux 上的源代码构建 onnxruntime。根据这个指令,我已经成功构建了 python 轮子和共享库。但我还没有看到 C API 的标头。

有一个构建选项--build_csharp似乎可以启用 C#/C 包。我尝试添加此选项,但出现以下错误。

我安装了 dotnet-sdk-3.1 但仍然出现此错误。请问如何在Linux上正确生成onnxruntime C API?谢谢!

0 投票
1 回答
752 浏览

unity3d - 使用梭子鱼在 Unity 中运行 Onnx 模型的意外模型输出

语境

我正在尝试使用 ONNX 格式的预训练模型对 Unity 中的图像数据进行推断。该模型作为名为 modelAsset 的资产链接到 Unity 中的执行组件。我为此使用梭子鱼 1.0.0 版并执行模型如下:

进入输入张量(模型只有 1 个)的数据是 h * w 的图像数据,具有 3 个通道,RGB 值介于 -0.5 和 0.5 之间。该模型有多个输出,我在上面显示的最后一行中检索到这些输出。

预期行为

使用相同的输入数据,PyTorch 模型和转换后的 ONNX 模型在 Python(ONNXRuntime 和 PyTorch)中生成与 Unity 中梭子鱼相同的输出数据。

问题

在 python 中,ONNX 和 PyTorch 模型都产生相同的输出。但是,在梭子鱼中运行的相同 ONNX 模型会产生不同的输出。不同之处主要在于我们期望热图,但梭子鱼在这些模式中始终产生介于 0.001 和 -0.0004 之间的值: 数据模式 Barracuda 输出

这使得看起来模型权重没有正确加载。

我们发现了什么

根据梭子鱼手册转换为 ONNX 时,我们发现如果我们在转换之前没有在 PyTorch 网络中将模型设置为推理模式(链接),这些相同的、不正确的结果是由 Python 中的 ONNXRuntime 生成的。换句话说,看起来这种推理模式保存在 ONNX 模型中,并且在 Python 中被 ONNXRuntime 识别,但在梭子鱼中却没有。

我们的问题

一般来说:

  • 我们如何在 Unity 中的梭子鱼中获得这个模型,以产生与 Python 中的 ONNXRuntime/PyTorch 相同的结果?

并且可能:

  • 推理模式如何嵌入到 ONNX 文件中,以及如何在 ONNXRuntime 与梭子鱼中使用?
0 投票
1 回答
1016 浏览

deep-learning - 在 onnx-runtime 的帮助下推断 LSTM 模型时出错。无效参数错误

我已将 LSTM 模型从 pytorch 导出到 onnx 。该模型采用长度为 200 的序列。它的隐藏状态大小为 256 ,层数 = 2。前向函数将输入大小 (batchs , sequencelength) 以及由隐藏状态和单元状态组成的元组作为输入。使用 onnx 运行时推断模型时出现错误。隐藏状态和单元状态维度相同。

0 投票
1 回答
967 浏览

c++ - 如何修复 Onnxruntime session->Run 问题?

我正在尝试为 onnxruntime 编写一个包装器。该模型接收一个张量作为输入,一个张量作为输出。在 session->Run 期间,onnxruntime 库内部出现分段错误。下载的库和从源代码构建的库都会引发相同的错误。

这是错误:

这是BT:

下载的库停在onnxruntime::logging::LoggingManager::Log. 这是一些包装代码。加载模型:

session是包装器的字段:

ByteBuffer

实际上包装器是通用的,但是这段代码得到了同样的错误。

我不明白的一件奇怪的事情。在错误期间,我看到:

创建记录器时,它*(logging_manager_->sink_)也是{_vptr.ISink = 0x0}.