问题标签 [onnx]

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 投票
2 回答
1254 浏览

c# - 无法使 ONNX 模型的输入列名工作

我正在使用 ML.NET 导入 ONNX 模型来进行对象检测。作为记录,我从 Microsoft 的 CustomVision.ai 站点导出了模型。

我检查了 Netron 中的模型文件,它清楚地显示输入节点被命名为“data”,输出被命名为“model_outputs0”。

但是,当我尝试运行这行代码来应用 ONNX 模型时

我收到以下错误:

找不到输入列“数据”参数名称:inputSchema

这清楚地表明它找不到数据的输入列,即使我清楚地看到这是 Netron 中的名称,如您所见:

在此处输入图像描述

现在,这是我真的不明白的部分。当我尝试其他输出名称时,它有一个不同的错误,基本上告诉我它实际上应该是数据:

参数名称:输入张量,image,ONNX模型中不存在。可用的输入名称是 [data]。实际价值是形象。

0 投票
3 回答
3299 浏览

python - 将 LSTM Pytorch 模型转换为 ONNX 时遇到问题

我正在尝试将我的 LSTM 异常检测 Pytorch 模型导出到 ONNX,但我遇到了错误。请看下面我的代码。

注意:我的数据形状为 [2685, 5, 6]。这是我定义模型的地方:

我可以训练它并很好地测试它。但是导出的时候问题来了:

但我有以下错误:

这是什么意思?我应该怎么做才能正确导出?

0 投票
1 回答
3078 浏览

pytorch - ONNX 和 pytorch 的输出不同

我尝试将我的 pytorch Resnet50 模型转换为 ONNX 并进行推理。转换过程没有错误,但是onnxruntime的onnx模型的最终结果与pytorchorigin模型的结果有很大的差距。
什么是可能的解决方案?

ONNX 版本:1.5.0
pytorch 版本:1.1.0
CUDA:9.0
系统:Ubuntu 18.06
Python:3.5

这是转换代码

这是结果检查代码

检查代码的输出(有一些警告,但我认为没关系)是

0 投票
1 回答
7187 浏览

python - 将冻结图从 .pb 转换为 .onnx

我有一个 TensorFlow 图冻结为.pb,我想将其转换为.onnx格式。我目前正在尝试使用 mmconvert (来自微软的MMdnn),显然我做错了(见下面的代码)。是否有任何其他推荐的方法将 a 转换.pb为a .onnx?谢谢。

这是我正在使用的命令:

这给出了错误

0 投票
0 回答
866 浏览

python - 从 TensorFlow 到 ONNX - 保存/冻结图形或转换 pkl?

关于从 TensorFlow 到 ONNX 的最佳方式的新手问题:下面列出的两者之间更好(和/或更简单)的方式是什么?

  1. 冻结/保存网络 --> 存储一个 .pb 文件 --> 将 .pb 转换为 .onnx (我正在努力解决这个问题)

  2. 将 .pkl 快照转换为 .onnx。我还没有找到任何材料,所以欢迎任何提示!

0 投票
4 回答
1559 浏览

python-3.x - onnx 图,如何获得输出尺寸?

如何在 onnx 神经网络中获取输出层的维度?

我可以得到 onnx 图,但没有输出维度:

Terveisin,马库斯

0 投票
2 回答
637 浏览

c++ - 如何在 C++ 中的 ArmNN for Linux 中加载 base onnx 模型

我正在尝试创建一个基于 ArmNN 的 C++ 独立应用程序,该应用程序在 ONNX 模型上运行。首先,我下载了一些标准模型进行测试,在尝试加载模型时,我看到一个崩溃提示“Tensor numDimensions must be greater than 0”。

奇怪的是,我调用的加载模型的函数只需要一个参数,即模型名称。我没有地方可以指定尺寸等等。可能我在这里做错了什么?或者这不是加载模型的方式?

我已经编译了支持 ONNX 的 armnn,详见此处。build 和 include 文件夹已复制到我试图运行代码的 ARM linux 机器上。我正在使用 Makefile 来编译和运行它。

我目前使用的模型是从这里下载的。

最初我在 ArmNN 主分支上,在搜索此错误消息时,我遇到了 ArmNN 发行说明,其中提到相同的错误已在 19.05 版中修复。所以我切换到标记 v19.05 并从头开始重建所有内容并尝试再次运行该应用程序,但同样的错误不断弹出。

这是 C++ 代码 -

Makefile 看起来像这样 -

预期输出 - 代码应按预期加载模型并执行干净退出。

实际错误信息 -

下面提供了一个 gdb 回溯 -

0 投票
2 回答
2721 浏览

arm - 交叉编译 c++-File:文件格式无法识别

我尝试从 linux-ubuntu-vm 交叉编译用于 arm 处理器的 c++ 代码。

正常的编译工作没有错误。当我尝试以下命令时,出现错误:

arm-linux-gnueabihf-g++ main.cpp onnx.proto3.pb.cc -o readonnxpkg-config --cflags --libs protobuf

--> /usr/local/lib/libprotobuf.so: 文件无法识别: 文件格式无法识别 collect2: 错误: ld 返回 1 退出状态

如何为 Intel Cyclone V (Linux Angstrom) 编译我的代码?

文件 /usr/local/lib/libprotobuf.so

--> /usr/local/lib/libprotobuf.so:到 libprotobuf.so.20.0.0 的符号链接

0 投票
1 回答
244 浏览

c++ - 绑定模型不评估图像。其背后的可能原因是什么?

我正在关注 cpp教程。我已经用自己的模型替换了模型,并替换了输入和输出张量,herehere。模型具有约束力,但在评估步骤中突然中止。

据我所知,我的代码和模型没有任何问题。我试图将输入图像更改为各种尺寸和颜色模式(灰度和 rgb),但没有任何效果。

所做的更改:

控制台输出: https ://imgur.com/wKd9RXK

错误:

https://imgur.com/hl4osmI

[文本形式的控制台输出]

在“默认”设备上加载模型文件“D:\Projects\Windows-Machine-Learning-master\Samples\SqueezeNetObjectDetection\Desktop\cpp\Debug\wifi3.onnx”

以 531 个刻度加载的模型文件

正在加载图像...

捆绑...

现在...

运行模型...

为什么

错误消息:

调试错误!

程序:.../CPP.exe

abort() 已被调用

型号链接:https ://www.dropbox.com/s/fudgynpislpsyta/wifi3.onnx?dl=0

调试器输出:

在 SqueezeNetObjectDetectionCPP.exe 中的 0x75013442 处引发异常:Microsoft C++ 异常:内存位置 0x006FF5C8 处的 winrt::hresult_error。发生了

0 投票
0 回答
138 浏览

python - keras 和 mlmodel 结果的变化

我为下一个单词预测做了一个 keras 模型。当我将其导出到 mlmodel 并将其用于文本预测时,keras 和 mlmodel 的结果各不相同。我曾经使用 Netron 来可视化模型。我意识到某些层的权重在转换过程中发生了变化。但我为此参考了官方的 coreml 文档。你能帮我解决这个问题吗?提前致谢。

当我看到权重和预测的差异时,我尝试使用 onnx 将 keras 转换为 onnx,将 onnx 转换为 mlmodel。但是在将 onnx 模型转换为 mlmodel 时出现了这个错误:“类型不支持的 ONNX 操作:Cast、Gather、Shape、Identity”。

这是我的 LSTM 模型:

预测功能:

keras 到 coreml 的转换代码:

结果完全不同。例如:对于输入:“I read”,keras 模型预测“it,book,this”,而 mlmodel 预测“thought,had,was”。

这些是我的 keras 和 mlmodel 的嵌入层的权重。 Keras 模型 ML 模型