问题标签 [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 回答
166 浏览

openvino - 使用 openvino 混合构建的 onnxruntime 发生错误“加载库失败”

我的环境是windows,我想用python用openvion推断onnxruntime。安装openvino后,我用openvino构建onnxruntime,我的构建命令是

没有错误hapend。但是当我导入 onnxruntime 并使用它进行推理时,发生了一个错误,即

而且推理速度很慢。谁能告诉我为什么?

0 投票
1 回答
355 浏览

python - 从 PyTorch 导出的 ONNX InferenceSession ONNX 模型失败

我正在尝试将自定义 PyTorch 模型导出到 ONNX 以执行推理,但没有成功......这里的棘手之处在于,我正在尝试使用示例中所示的基于脚本的导出器,以便从我的模型。

我可以毫无怨言地导出模型,但是在尝试启动时出现InferenceSession以下错误:

我试图确定该问题的根本原因,它似乎是通过使用torch.matmul()以下函数生成的(非常讨厌,因为我试图只使用 pytorch 运算符):

似乎torch.matmul不支持(根据文档)所以我尝试了一堆解决方法(例如A.matmul(X)torch.baddbmm)但我仍然遇到同样的问题......

有关如何解决此行为的任何建议都很棒:D 感谢您的帮助!

0 投票
1 回答
369 浏览

android-studio - 尝试将 ML onnx 模型整合到 Android App

我有一个训练有素的 onnx 模型,我想将它整合到一个 android 应用程序中。我实际上正在做一个 uni 项目,结合 ML 和 Android 开发。

经过长时间的研究,由于我不想使用 python 私有 REST API,我得出的结论是有两种方法可以从这里继续:我可以尝试将我的 onnx 模型转换为 TF 模型,然后生成通过 TFLite Converter API 构建 TFLite 模型,或者使用onnxruntime尝试一下。

我尝试了 TFLite 的第一种方法,使用了这篇文章的答案,因此代码如下:

但我被困在从 .onnx 到 .pb 的第一次转换中,因为我认为 onnx-tf 不支持动态尺寸(我的模型有)。我不断收到 "Input size (depth of inputs) must be accessible via shape inference,"RuntimeError: Node name is not unique in your model. Please recreate your model with unique node name.类似的错误。

我也尝试了onnxruntime,但我似乎无法设法“为具有 NNAPI 支持的 Android 创建最小构建”。我在构建时遇到此错误:

我是在一条完全错误的道路上吗?这是我第一次尝试将 ML 与 Android 结合起来,所以我没有这方面的经验。任何建议都会非常受欢迎。

0 投票
1 回答
41 浏览

azure-machine-learning-service - ubuntu 18.04 中的 onnx 模型未运行

我正在尝试使用 C#、Azure 自定义视觉和 ONNX 模型来实现自定义视觉解决方案。我的 API 代码在 Windows 操作系统上运行完美,但是当我尝试在 Ubuntu 18.04 上运行相同的代码时,出现以下错误。

我已经从 Azure ml 下载了经过训练的 ONNX 模型。

0 投票
1 回答
792 浏览

android-studio - 如何在 Android Studio 中使用带有 .ort 模型的 onnxruntime

我正在尝试创建一个包含机器学习模型的 Android 应用程序。我有一个 onnx 模型、一个 Python 脚本文件、两个带有标签名称的 json 文件,以及一些用于 mel 频谱图计算的 numpy 数据。

我尝试使用onnxruntime,并按照这些说明进行操作。 所以现在我已经从 onnx 模型和“支持 NNAPI 的 Android 的最小构建”中创建了 model.ort 文件,所以我有了 Build onnxruntime pkg。

由于我对此完全陌生,我该如何从这里继续?我如何“推断设备”? 在此处输入图像描述

而且,我是否必须将运行模型的 python 脚本转换为 Java?谢谢!

0 投票
1 回答
1329 浏览

python - 使用 C++ 解析 ONNX 模型。使用 c++ 从 onnx 模型中提取层、输入和输出形状

我正在尝试从 onnx 模型中提取输入层、输出层及其形状等数据。我知道有 python 接口可以做到这一点。我想做一些与这段代码类似的事情,但在 c++ 中。我还粘贴了链接中的代码。我已经在 python 中尝试过它,它对我有用。我想知道是否有 c++ API 可以做同样的事情。

另外我是c ++的新手,请帮助我。

0 投票
1 回答
210 浏览

docker - 将 onnxruntime 库添加到适用于 Linux 的 .Net Core Docker 容器

我正在尝试在 .NET 5.0 Docker 容器上部署游戏服务器以进行 Linux 部署。我当前的 Dockerfile 看起来像这样,到目前为止它运行良好。我的代码被打包到 Darkrift_Server_Local/Plugins 文件夹中的 dll 中。Darkrift.Server.Console.dll 是加载插件并运行我的逻辑的第三方网络包装器:

现在我想在我的服务器上添加一个预训练的 ONNX 模型,供 AI 对手使用。我已将 Microsoft.ML.OnnxRuntime Nuget 包添加到我的项目中,当我在 Windows 10 上运行它时我的代码可以工作(使用 powershell 执行 Darkrift.Server.Console.dll)。

但是,我无法在 Docker 容器中完成这项工作,因为它无法找到 onnxruntime.dll 文件。具体错误如下:

System.TypeInitializationException:“Microsoft.ML.OnnxRuntime.NativeMethods”的类型初始化程序引发异常。

---> System.DllNotFoundException:无法加载共享库“onnxruntime”或其依赖项之一。

我尝试将构建期间生成的 onnxruntime.dll 文件复制到 Darkrift_Server_Local 文件夹中的各个位置,但它一直没有工作。我对 Docker 还很陌生,几年后又回到了 .NET,所以在弄清楚它应该如何工作时遇到了一些麻烦。将不胜感激这方面的任何方向。

编辑:回应评论。我正在使用带有 Release/Any CPU 的 VS2019 构建项目。包包含代码如下:

我还尝试使用 dotnet publish -c Release 并将在发布文件夹中创建的运行时文件夹复制到我的 Darkrift_Server_Local 文件夹中的各个位置 - 应该提到这一点。

0 投票
1 回答
195 浏览

machine-learning - 如何将 Python onnxruntime 代码转换为 Rust tract_onnx?

我正在尝试使用 tract_onnx 将使用 onnxruntime 的 Python 脚本转换为 Rust。我正在尝试实现的特定 POC 是来自 ONNX Model Zoorothe_vgg.py脚本。该脚本使用三个模型:

目前,我正在尝试第一个检测人脸的模型。我可以让示例 Python 代码工作:

我的 tract_onnx 翻译基于onnx-mobilenet-v2 示例。我的版本目前看起来像这样:

我在将调整大小的图像转换为张量时遇到了问题:

这是没有正确尺寸或每个尺寸的正确顺序的问题吗?我错过了什么吗?

我知道我还没有实现其他翻译,这是我的下一个问题:如何正确规范化image_mean、转置和扩展维度?

0 投票
0 回答
624 浏览

nlp - 如何使用 RoBERTa ONNX 量化模型执行批量推理?

我已将 RoBERTa PyTorch 模型转换为 ONNX 模型并对其进行量化。我能够从 ONNX 模型中获得单个输入数据点(每个句子)的分数。我想了解如何通过将多个输入传递给会话来使用 ONNX 运行时推理会话进行批量预测。下面是示例场景。

模型:roberta-quant.onnx,它是 RoBERTa PyTorch 模型的 ONNX 量化版本

用于将 RoBERTa 转换为 ONNX 的代码:

向 ONNXRuntime 推理会话输入样本:

使用 ONNXRuntime 推理会话为 400 个数据样本(句子)运行 ONNX 模型:

在上面的代码中,我依次循环遍历 400 个句子以获得分数“ ort_outputs”。请帮助我了解如何使用 ONNX 模型在此处执行批处理,我可以在其中发送多个句子的 and 并inputs_ids获取.attention_masksort_outputs

提前致谢!

0 投票
1 回答
400 浏览

gpu - Onnxruntime 与 PyTorch

我已经使用 PyTorch 在我的自定义数据集上训练了 YOLO-v3 tiny。为了比较推理时间,我在 CPU 上尝试了 onnxruntime 以及 PyTorch GPU 和 PyTorch CPU。平均运行时间约为:

onnxruntime cpu:110 毫秒 - CPU 使用率:60%
Pytorch GPU:50 毫秒
Pytorch CPU:165 毫秒 - CPU 使用率:40%
并且所有模型都使用批量大小 1。

但是,我不明白 onnxruntime 与 PyTorch CPU 相比如何更快,因为我没有使用 onnxruntime 的任何优化选项。我刚用这个:

有人可以向我解释为什么没有任何优化它会更快吗?以及为什么在使用 onnxruntime 时 CPU 使用率更高。有什么办法可以让它保持下去吗?

提前致谢。