繁体   English   中英

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

[英]Run inference using Onnx model in python?

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

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

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

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

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

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

谢谢!

我想出了一种使用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)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM