Поделиться через


Начало работы с Windows ML

В этом разделе показано, как установить и использовать Windows ML для обнаружения, скачивания и регистрации поставщиков выполнения (EPS) для использования с средой выполнения ONNX, поставляемой с Windows ML. Windows ML обрабатывает сложность управления пакетами и выбора оборудования, позволяя скачать последние поставщики выполнения, совместимые с оборудованием пользователей.

Если вы еще не знакомы со средой выполнения ONNX, рекомендуем ознакомиться с документацией по среде выполнения ONNX. Короче говоря, Windows ML предоставляет копию среды выполнения ONNX, а также возможность динамического скачивания поставщиков выполнения (EPS).

Предпосылки

  • .NET 8 или более поздней версии для использования всех API машинного обучения Windows
    • С помощью .NET 6 можно установить поставщиков выполнения с помощью Microsoft.Windows.AI.MachineLearning API, но использовать Microsoft.ML.OnnxRuntime API нельзя.
  • Ориентация на конкретный TFM для Windows 10, например net8.0-windows10.0.19041.0 или более поздней версии.

Шаг 1. Установка или обновление Windows ML

Windows ML включается в пакет SDK для приложений Windows 1.8.1 или более поздней версии.

Самый простой способ использовать Windows ML — установить Microsoft.WindowsAppSDK.ML пакет NuGet, который использует автономное развертывание по умолчанию. Дополнительные сведения о параметрах развертывания см. в статье "Развертывание приложения ".

dotnet add package Microsoft.WindowsAppSDK.ML

Шаг 2. Скачивание и регистрация EPS

Самый простой способ начать работу — разрешить Windows ML автоматически обнаруживать, скачивать и регистрировать последнюю версию всех совместимых поставщиков выполнения. Прежде чем использовать их, поставщики выполнения должны быть зарегистрированы в среде выполнения ONNX в Windows ML. И если они еще не скачаны, их необходимо сначала скачать. Вызов EnsureAndRegisterCertifiedAsync() выполняет оба из этих действий на одном шаге.

using Microsoft.ML.OnnxRuntime;
using Microsoft.Windows.AI.MachineLearning;

// First we create a new instance of EnvironmentCreationOptions
EnvironmentCreationOptions envOptions = new()
{
    logId = "WinMLDemo", // Use an ID of your own choice
    logLevel = OrtLoggingLevel.ORT_LOGGING_LEVEL_ERROR
};

// And then use that to create the ORT environment
using var ortEnv = OrtEnv.CreateInstanceWithOptions(ref envOptions);

// Get the default ExecutionProviderCatalog
var catalog = ExecutionProviderCatalog.GetDefault();

// Ensure and register all compatible execution providers with ONNX Runtime
// This downloads any necessary components and registers them
await catalog.EnsureAndRegisterCertifiedAsync();

Подсказка

Иногда можно повысить производительность в среде выполнения ONNX, включив вращение потока. Дополнительные сведения см. в разделе о поведении вращения потоков в Windows ML.

Подсказка

В рабочих приложениях оберните вызов функции EnsureAndRegisterCertifiedAsync() в блок try-catch для обработки потенциальных сбоев сети или загрузки.

Дальнейшие шаги

После регистрации поставщиков выполнения вы будете готовы использовать API среды выполнения ONNX в Windows ML! Вы захотите...

  1. Выбор поставщиков выполнения — сообщите среде выполнения, какие поставщики выполнения вы хотите использовать
  2. Получение моделей . Использование каталога моделей для динамической загрузки моделей или их локального включения
  3. Запуск моделирования - Компилируйте, загружайте и запускайте моделирование модели

См. также