API Машинного обучения Windows

Концептуальное руководство см. в разделе "Запуск моделей ONNX с помощью Windows ML").

API в пакете NuGet Microsoft.WindowsAppSDK.ML можно считать супермножеством этих двух наборов.

Пакет NuGet Microsoft.WindowsAppSDK.ML

Среда выполнения машинного обучения Microsoft Windows предоставляет API для операций машинного обучения и искусственного интеллекта в приложениях Windows. Пакет NuGet Microsoft.WindowsAppSDK.ML предоставляет файлы среды выполнения .winmd Windows ML для использования в проектах C# и C++.

Колеса Python pywinrt

Среда выполнения машинного обучения Microsoft Windows использует проект pywinrt для предоставления доступа Python к тем же API машинного обучения Windows. Имя пакета — winui3-Microsoft.Windows.AI.MachineLearning. Дополнительные пакеты необходимы для использования пакета SDK для приложений Windows в Python. Дополнительные сведения см. в разделе "Запуск моделей ONNX" с windows ML .

API Машинного обучения Windows

Справочная документация по API и примеры кода см. в пространстве имен Microsoft.Windows.AI.MachineLearning .

Заметки о реализации

Среда выполнения Машинного обучения Windows интегрирована с пакетом SDK для приложений Windows и использует механизмы развертывания и начальной загрузки:

  • Автоматически обнаруживает поставщики выполнения, совместимые с текущим оборудованием
  • Управление временем существования пакета и обновлениями
  • Обрабатывает регистрацию и активацию пакета
  • Поддерживает разные версии поставщиков выполнения

Развертывание, зависящее от платформы

Windows ML поставляется в качестве зависимого от платформы компонента. Это означает, что ваше приложение должно либо:

  • Ссылка на основной пакет NuGet пакета Sdk для приложений Windows, добавив ссылку на Microsoft.WindowsAppSDK (рекомендуется)
  • Или, ссылайся на оба Microsoft.WindowsAppSDK.ML и Microsoft.WindowsAppSDK.Runtime

Дополнительные сведения о развертывании приложений пакета SDK для Приложений Windows см. в документации по пакету и развертыванию приложений Windows .

Использование среды выполнения ONNX с Windows ML

Для приложений C++ после регистрации поставщиков служб используйте ONNX Runtime C API непосредственно для создания сеансов и выполнения инференции.

Для приложений C# используйте среду выполнения ONNX непосредственно для проведения вычислений с помощью Microsoft.ML.OnnxRuntime пространства имен.

Для приложений Python используйте колесо onnxruntime-windowsml среды выполнения ONNX для вывода.

Заметки Python

Инициализация пакета SDK для приложений Windows

Все вызовы Машинного обучения Windows должны выполняться после инициализации пакета SDK для приложений Windows. Это можно сделать с помощью следующего кода:

from winui3.microsoft.windows.applicationmodel.dynamicdependency.bootstrap import (
    InitializeOptions,
    initialize
)
with initialize(options = InitializeOptions.ON_NO_MATCH_SHOW_UI):
    # Your Windows ML code here

Регистрация происходит из Windows ML

Среда выполнения ONNX разработана таким образом, чтобы среды Python и собственные среды были разделены. Встроенные функции регистрации в том же процессе не будут работать в контексте Python. Таким образом, регистрация поставщиков выполнения должна выполняться непосредственно с ПОМОЩЬЮ API Python.

Удалите упакованный vcruntime из pywinrt

Проект pywinrt включает msvcp140.dll в пакет winrt-runtime. Это может конфликтовать с другими пакетами. Чтобы избежать этой проблемы, удалите библиотеку dll и установите отсутствующие библиотеки vcruntime с распространяемым пакетом VC.

См. также