ONNX 网络是否可以与 onnxruntime 不兼容?

问题描述

我无法在 ONNX 模型上运行推理,方法是对 this Windows ML tutorial 进行(微小的)调整,或者在他们的 ONNX Runtime 之后实现我自己的 MNIST Tutorial 代码。据我了解,Windows ML 使用了 ONNX 运行时,所以这两种努力可能最终都在同一个地方......并且可能出于相同的原因产生相同的底层异常。

抛出的异常要么无法理解(在异常处理期间抛出的第二个异常通过外观...)或根本无法识别。这让我怀疑网络本身是否在某种意义上有问题或不兼容。该网络是通过采用保存的 Tensorflow/Keras 模型并运行此转换来生成的:

python -m tf2onnx.convert --saved-model MyNet --output MyNet.onnx --inputs-as-nchw mobilenetv2_1_00_224_input:0

结果是一个Netron 渲染的网络,具有以下输入和输出阶段:

enter image description here

这个网络是否有任何明显与 ONNX Runtime 不兼容的地方?关于如何克服其中一个/两个例外的任何建议?

解决方法

事实证明,在我尝试调整 Windows ML 示例时,我的输出形状是错误的 - 在该示例中,输出形状是 1 x 1000 x 1 x 1。我已经复制/粘贴了这个,只是修改了 1000以适应。显然,上面的网络需要一个 1 x 10 的形状......

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...