【问题标题】:ONNX runtime is throwing TypeError when loading an onnx model加载 onnx 模型时,ONNX 运行时抛出 TypeError
【发布时间】:2020-12-01 06:33:26
【问题描述】:

我已将 saveModel 格式转换为 onnx 模型,但在通过 onnxruntime 加载时

import onnxruntime as rt
sess = rt.InferenceSession('model.onnx')

它抛出了以下错误:

onnxruntime.capi.onnxruntime_pybind11_state.InvalidGraph: [ONNXRuntimeError] : 10 : INVALID_GRAPH : Load model from /mnt/model/io_files/convert/1606801475/model.onnx failed:This is an invalid model. Type Error: Type 'tensor(float)' of input parameter (const_fold_opt__342) of operator (Slice) in node (StatefulPartitionedCall/mobilenet_1.00_224/reshape_1/strided_slice) is invalid.

我使用的 savedModel 是来自 tensorflow 网站的 Keras 预训练 MobileNet:https://www.tensorflow.org/guide/saved_model

我看到 netron 中的参数是浮动的,但我无法解决和理解这个问题。

以下是 netron 的片段:

【问题讨论】:

    标签: keras python-3.6 tensorflow2.0 onnx onnxruntime


    【解决方案1】:

    看起来像 Keras->ONNX 转换器中的一个错误。

    starts Slice 的输入必须是 int32 或 int64:https://github.com/onnx/onnx/blob/master/docs/Operators.md#Slice

    您可以尝试使用onnx Python 接口对模型进行修补:加载模型,找到节点,更改输入类型。但如果模型有这个问题,Keras->ONNX 转换器可能没有经过很好的测试,可能还有其他问题。

    你能找到一个等效的 PyTorch 模型吗? PyTorch->ONNX 转换器应该会好很多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 2020-03-31
      • 2023-03-09
      • 2020-11-23
      相关资源
      最近更新 更多