Onnx невозможно прочитать с помощью Microsoft.ML в Windows 10 (19045.5854).C#

Место общения программистов C#
Ответить
Anonymous
 Onnx невозможно прочитать с помощью Microsoft.ML в Windows 10 (19045.5854).

Сообщение Anonymous »

Все, что я здесь описываю, отлично работает на моем компьютере под управлением Windows 11 (версия 10.0.26200). Однако на компьютере с Windows 10 (10.0.19045) это не работает. Это клиентский компьютер, который я не могу обновить. Я не понимаю, что я могу сделать.
Минимальный воспроизводимый пример:
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
)
2/ Попробуйте открыть его с помощью C#:

Код: Выделить всё

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
Вот полный файл .csproj (я добавил , даже если мне это не нужно было на моем компьютере, чтобы файл onnxruntime.dll в конечном итоге был создан, поскольку в ошибке упоминается onnxruntime).

Код: Выделить всё


Exe
net9.0
true
win-x64








Чтобы уточнить, для переноса проекта на другой компьютер я использую команду dotnetPublish -c Release и копирую всю папку с именем public.
На компьютере, где он не работает, когда я запускаю, где onnxruntime.dll, я получаю два файла onnxruntime.dll, первый рядом с моим .exe, второй в Система32. Этот порядок кажется правильным, поскольку предполагает использование порядка, созданного C#.
--
Использование зависимостей в программном обеспечении моего клиента не показывает ни одного .dll, который не найден.

Подробнее здесь: https://stackoverflow.com/questions/798 ... 19045-5854
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»