Начало работы с Машинным обучением Windows

Important

Последняя документация по Машинному обучению Windows см. в статье "Что такое Windows ML". В этой документации описываются API- интерфейсы, которые находятся в пространстве имен Microsoft.Windows.AI.MachineLearning , который поставляется в пакете SDK для приложений Windows. Эти API заменяют те, которые описаны здесь, которые находятся в пространстве имен Windows.AI.MachineLearning и были отправлены в 2018 году.

В приложении существует несколько способов использования Машинного обучения Windows. На самом же этапе вам просто потребуется несколько простых шагов.

  1. Получите обученную модель Обмена нейронной сетью (ONNX) или преобразуйте модели, обученные в других фреймворках машинного обучения, в ONNX с ONNXMLTools.

  2. Добавьте файл модели ONNX в приложение или сделайте его доступным другим способом на целевом устройстве.

  3. Интегрируйте модель в код приложения, а затем создайте и разверните приложение.

Среда обучения, добавление ссылки на модель, приложение, Windows ML

Решения WinML встроенные против решения WinML с использованием NuGet

В таблице ниже представлены аспекты доступности, распространения, поддержки языков, обслуживания и перспективной совместимости для пакета In-Box и NuGet для Windows ML.

Properties In-Box NuGet
Availability Windows 10, версия 1809 или более поздняя. Windows 8.1 или более поздней версии
Distribution Встроенный в пакет SDK для Windows Упаковка и распространение в рамках приложения
Servicing Под управлением Майкрософт (автоматические преимущества для клиентов) Developer-driven
Forward compatibility Автоматическое обновление с новыми функциями Разработчику необходимо вручную обновить пакет

При запуске приложения с помощью встроенного решения среда выполнения Машинного обучения Windows (которая содержит подсистему вывода модели ONNX) оценивает обученную модель на устройстве Windows 10 (или Windows Server 2019 при целевом развертывании сервера). Windows ML обрабатывает аппаратную абстракцию, позволяя разработчикам использовать широкий спектр аппаратуры, включая процессоры, графические процессоры и, в будущем, ускорители ИИ. Аппаратное ускорение Windows ML основано на DirectML, высокопроизводительном и низкоуровневом API для выполнения выводов машинного обучения, которые являются частью семейства DirectX.

Слои Windows ML

Пакет nuget windows ml

Для пакета NuGet эти слои отображаются как двоичные файлы, показанные на схеме ниже. Машинное обучение Windows встроено в Microsoft.ai.machinelearning.dll. Она не содержит внедренную среду выполнения ONNX, а среда выполнения ONNX встроена в файл: onnxruntime.dll. Версия, включенная в пакеты NuGet WindowsAI, содержит EP DirectML, встроенный в неё. Последний двоичный файл, DirectML.dll, является фактическим кодом платформы DirectML и построен на основе драйверов Direct 3D и вычислительных драйверов, встроенных в Windows. Все три этих двоичных файла включены в выпуски NuGet для распространения вместе с приложениями.

Прямой доступ к onnxruntime.dll также позволяет ориентироваться на кроссплатформенные сценарии, получая одинаковое аппаратно независимое ускорение, которое масштабируется на всех устройствах Windows.

Другие решения машинного обучения от Майкрософт

Корпорация Майкрософт предлагает различные решения машинного обучения в соответствии с вашими потребностями. Эти решения выполняются в облаке, на площадке и локально на устройстве. Дополнительные сведения см. в разделе "Что такое варианты продукта машинного обучения от Майкрософт?"

Learn more

Если вы хотите использовать пакет NuGet для Windows ML, см. руководство. Перенос существующего приложения WinML в пакет NuGet.

Последние возможности и исправления Windows ML см. в наших заметках о выпуске.

Note

Используйте следующие ресурсы, чтобы получить помощь по Windows ML.

  • Чтобы задать или ответить на технические вопросы о Windows ML, используйте тег windows-machine-learning в Stack Overflow.
  • Чтобы сообщить об ошибке, отправьте сообщение о проблеме на сайте GitHub.