Минимальный воспроизводимый пример:
1/ создайте файл ONNX с помощью Python и pytorch:
Код: Выделить всё
class MyModel(nn.Module):
def __init__(self):
super(MyModel, self).__init__()
def forward(self, *inputs):
concatenated = torch.cat(inputs, dim=-1)
return concatenated
model: MyModel = MyModel()
torch.onnx.export(
model,
(torch.ones(1, 342), torch.ones(1, 342)),
"model.onnx",
export_params=True
)
Код: Выделить всё
using Microsoft.ML;
using System;
const string modelPath = "./model.onnx";
MLContext mlContext = new MLContext();
mlContext.Transforms.ApplyOnnxModel(modelPath);
Console.WriteLine("HelloWorld!");
Console.ReadLine();
Код: Выделить всё
Unhandled exception. System.TypeInitializationException: The type initializer for 'Microsoft.ML.OnnxRuntime.NativeMethods' threw an exception.
---> System.DllNotFoundException: Unable to load DLL 'onnxruntime' or one of its dependencies
Код: Выделить всё
Exe
net9.0
true
win-x64
На компьютере, где он не работает, когда я запускаю, где onnxruntime.dll, я получаю два файла onnxruntime.dll, первый рядом с моим .exe, второй в Система32. Этот порядок кажется подходящим, поскольку предполагает использование порядка, созданного C#.
Подробнее здесь: https://stackoverflow.com/questions/798 ... 19045-5854
Мобильная версия