在python中使用Onnx模型运行推理?

问题描述 投票:1回答:1

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

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

我找到了MXNet框架,但我似乎无法理解如何导入模型 - 我只有.onnx文件,MXNet需要一些额外的输入,除了onnx模型。

有没有其他简单的方法在Python中执行此操作?我猜这是一个常见的问题,但似乎无法找到任何相关的库/框架,就像.mlmodel的coremltools一样容易。

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

这是我第一次遇到这些格式,所以任何帮助或见解都会受到赞赏。

谢谢!

python machine-learning predict onnx
1个回答
2
投票

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

主要代码段是:

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数组或一个字符串。输出将是Backend.Outputs类型的对象。我能够从中提取输出numpy数组。

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

© www.soinside.com 2019 - 2024. All rights reserved.