【问题标题】:Run inference using Onnx model in python?在 python 中使用 Onnx 模型运行推理?
【发布时间】:2018-12-01 05:20:20
【问题描述】:

我正在尝试检查我的 .onnx 模型是否正确,并且需要运行推理来验证相同的输出。

我知道我们可以在 Python 中使用 coremltools 对 .mlmodel 运行验证 - 基本上是加载模型和输入并获得预测。我正在尝试为 .onnx 模型做类似的事情。

我找到了 MXNet 框架,但我似乎不明白如何导入模型 - 我只有 .onnx 文件,除了 onnx 模型之外,MXNet 还需要一些额外的输入。

在 Python 中还有其他简单的方法可以做到这一点吗?我猜这是一个常见问题,但似乎找不到任何相关的库/框架来像 coremltools for .mlmodel 那样轻松地做到这一点。

我不想将 .onnx 转换为另一种类型的模型(比如 PyTorch),因为我想按原样检查 .onnx 模型,而不用担心转换是否正确。只需要一种方法来加载模型和输入、运行推理并打印输出。

这是我第一次遇到这些格式,所以任何帮助或见解将不胜感激。

谢谢!

【问题讨论】:

    标签: python machine-learning predict onnx


    【解决方案1】:

    我想出了一个使用 Caffe2 的方法 - 只是发布以防将来有人尝试做同样的事情。

    主代码SN-P是:

    import onnx
    import caffe2.python.onnx.backend
    from caffe2.python import core, workspace
    
    import numpy as np
    
    # make input Numpy array of correct dimensions and type as required by the model
    
    modelFile = onnx.load('model.onnx')
    output = caffe2.python.onnx.backend.run_model(modelFile, inputArray.astype(np.float32))
    

    也很重要的是要注意,输入到run_model只能是numpy数组或字符串。输出将是后端的对象.Outputs类型。我能够从中提取输出 numpy 数组。

    我能够在 CPU 上执行推理,因此不需要使用 GPU 安装 Caffe2(需要 CUDA 和 CDNN)。

    【讨论】:

      猜你喜欢
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-20
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 2021-02-03
      相关资源
      最近更新 更多