Исключение EntryPointNotFoundException: Не удается найти точку входа с именем «OrtGetApiBase» в библиотеке DLL «onnxruntime»

#c# #onnx #onnxruntime

Вопрос:

Я пытаюсь запустить модель sklearn onnx в среде C# 4.8 в Windows 10 Pro с VS 2019, я использовал следующий код, используя примеры в:

https://towardsdatascience.com/deploy-sci-kit-learn-models-in-net-core-applications-90e24e572f64

https://vkontech.com/making-predictions-in-c-with-a-pre-trained-tensorflow-model-via-onnx/

и

https://docs.microsoft.com/en-us/azure/machine-learning/how-to-use-automl-onnx-model-dotnet

Я импортировал с помощью nuget

 Install-Package Microsoft.ML.OnnxRuntime -Version 1.9.0
Install-Package Microsoft.ML.OnnxRuntime.Gpu -Version 1.9.0
Install-Package Microsoft.ML.OnnxTransformer -Version 1.6.0
Install-Package Microsoft.ML.OnnxRuntime.MKLML -Version 1.6.0
Install-Package Microsoft.ML -Version 1.5.5
 

когда я запускаю эту строку кода:

 InferenceSession session = new InferenceSession(modelPath);
 

Я получаю эту ошибку:

Система.Исключение инициализации типа: «Инициализатор типа для» Microsoft.ML.OnnxRuntime.NativeMethods» выдал исключение».

Исключение EntryPointNotFoundException: Не удается найти точку входа с именем «OrtGetApiBase» в библиотеке DLL «onnxruntime».

в:

 public SessionOptions()
    : base(IntPtr.Zero, true)
{
    NativeApiStatus.VerifySuccess(NativeMethods.OrtCreateSessionOptions(out handle));
}
 

Ответ №1:

Та же проблема уже должна быть решена здесь: https://github.com/microsoft/onnxruntime/issues/9260

Короче говоря, вам нужно загрузить пакет (onnxruntime.dll) в проект запуска для использования OrtGetApiBase.