Выполнить вывод, используя модель Onnx в Python?

Я пытаюсь проверить правильность моей модели.onnx, и мне нужно выполнить вывод, чтобы проверить вывод для того же.

Я знаю, что мы можем запустить проверку на.mlmodel с помощью coremltools в Python - в основном, загрузить модель и ввод и получить прогноз. Я пытаюсь сделать подобное для модели.onnx.

Я нашел инфраструктуру MXNet, но не могу понять, как импортировать модель - у меня просто есть файл.onnx, и MXNet требует некоторого дополнительного ввода помимо модели onnx.

Есть ли другой простой способ сделать это в Python? Я предполагаю, что это распространенная проблема, но не могу найти какие-либо соответствующие библиотеки / фреймворки, чтобы сделать это так же легко, как coremltools для.mlmodel.

Я не хочу конвертировать.onnx в другой тип модели (например, PyTorch), так как я хочу проверить модель.onnx как есть, не беспокоясь о правильности преобразования. Просто нужен способ загрузить модель и ввод, выполнить вывод и распечатать вывод.

Я впервые сталкиваюсь с этими форматами, поэтому любая помощь или понимание будут оценены.

Спасибо!

1 ответ

Решение

Я нашел способ сделать это с помощью 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 может быть только массивом или строкой. Вывод будет объектом типа Backend.Outputs. Мне удалось извлечь выходной массив NumPy из него.

Я смог выполнить логический вывод на процессоре, и, следовательно, не нуждался в установке Caffe2 с графическим процессором (требуются CUDA и CDNN).

Другие вопросы по тегам