问题标签 [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.
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 模型期望的第二个输入是什么(我知道模型只需要图像来对其进行分类,所以需要的第二个输入是什么)
python - 在 ONNX 中构建模型
是否可以在不使用不同的深度学习框架(例如 PyTorch、TensorFlow 等)的情况下在 ONNX 中构建模型?
在 PyTorch 中,我会写一个这样的模型:
什么相当于在 ONNX 中定义相同的模型?我了解如何导出模型,但我想在不使用外部库的情况下使用 ONNX。
python - 在 python 输入不兼容问题中使用 ONNX 模型运行推理?
我是编程初学者,我正在尝试运行“tinyyolov2-8.onnx”模型,我在输入格式方面苦苦挣扎,任何人都可以建议如何为这个模型输入格式。代码如下,
c# - C# 中 OnnxRuntime 张量的高效位图
我正在使用 Microsoft OnnxRuntime 来检测和分类图像中的对象,我想将其应用于实时视频。为此,我必须将每一帧转换为 OnnxRuntime 张量。现在我已经实现了一个大约需要 300 毫秒的方法:
我需要此代码尽可能快地运行,因为我将检测器的输出边界框表示为视频顶部的一层。有谁知道进行这种转换的更快方法?
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() 更改张量输入,但这对更改后的模型没有影响。
只是想知道这是否可以修复,任何帮助将不胜感激。谢谢!
python - Ubuntu 16.04 上的 onnxruntime 问题
我正在尝试使用 onnxruntime 在 Ubuntu 16.04 上的 ONNX 模型上运行推理。但是导入语句给了我这个错误:
在线搜索后,我尝试在警告中提到的 .so 上使用 execstack -c 。但我收到此消息,问题仍然存在:
我真的很感激一些解决这个问题的建议。
PS我什至尝试安装onnxruntime-gpu(我有CUDA 10.0)但我得到了同样的错误。
onnxruntime - 如何在 Linux 上为 onnxruntime 生成 C API
我正在尝试从 Linux 上的源代码构建 onnxruntime。根据这个指令,我已经成功构建了 python 轮子和共享库。但我还没有看到 C API 的标头。
有一个构建选项--build_csharp
似乎可以启用 C#/C 包。我尝试添加此选项,但出现以下错误。
我安装了 dotnet-sdk-3.1 但仍然出现此错误。请问如何在Linux上正确生成onnxruntime C API?谢谢!
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 之间的值:
这使得看起来模型权重没有正确加载。
我们发现了什么
根据梭子鱼手册转换为 ONNX 时,我们发现如果我们在转换之前没有在 PyTorch 网络中将模型设置为推理模式(链接),这些相同的、不正确的结果是由 Python 中的 ONNXRuntime 生成的。换句话说,看起来这种推理模式保存在 ONNX 模型中,并且在 Python 中被 ONNXRuntime 识别,但在梭子鱼中却没有。
我们的问题
一般来说:
- 我们如何在 Unity 中的梭子鱼中获得这个模型,以产生与 Python 中的 ONNXRuntime/PyTorch 相同的结果?
并且可能:
- 推理模式如何嵌入到 ONNX 文件中,以及如何在 ONNXRuntime 与梭子鱼中使用?
deep-learning - 在 onnx-runtime 的帮助下推断 LSTM 模型时出错。无效参数错误
我已将 LSTM 模型从 pytorch 导出到 onnx 。该模型采用长度为 200 的序列。它的隐藏状态大小为 256 ,层数 = 2。前向函数将输入大小 (batchs , sequencelength) 以及由隐藏状态和单元状态组成的元组作为输入。使用 onnx 运行时推断模型时出现错误。隐藏状态和单元状态维度相同。
c++ - 如何修复 Onnxruntime session->Run 问题?
我正在尝试为 onnxruntime 编写一个包装器。该模型接收一个张量作为输入,一个张量作为输出。在 session->Run 期间,onnxruntime 库内部出现分段错误。下载的库和从源代码构建的库都会引发相同的错误。
这是错误:
这是BT:
下载的库停在onnxruntime::logging::LoggingManager::Log
. 这是一些包装代码。加载模型:
session
是包装器的字段:
ByteBuffer
:
实际上包装器是通用的,但是这段代码得到了同样的错误。
我不明白的一件奇怪的事情。在错误期间,我看到:
创建记录器时,它*(logging_manager_->sink_)
也是{_vptr.ISink = 0x0}
.