Интеграция модели в приложения с использованием Windows ML

В этом руководстве описывается, как использовать API-интерфейсы Windows ML для интеграции модели в приложение Windows. Если вы предпочитаете использовать автоматический генератор кода Windows ML, ознакомьтесь с документацией по mlgen.

Важные API: Windows.AI.Machine Обучение

Мы рассмотрим базовые стандартные блоки Windows ML:

  • Модели
  • Сеансы
  • .
  • Привязки

С их помощью вы загрузите, привяжете и оцените модели в Windows ML.

Мы также рекомендуем ознакомиться с примерами приложений на сайте GitHub, где представлены полные примеры кода для Windows ML.

Следующее видео содержит краткую демонстрацию применения этих API.


Использование API-интерфейсов WinML в C++

Хотя API-интерфейсы WinML доступны для C++/CX и C++/WinRT мы рекомендуем использовать версию для C++/WinRT, так как она поддерживает более естественную разработку кода на C++ и позволяет более спокойно двигаться вперед. Приведенные ниже инструкции подходят под конкретные ситуации применения API-интерфейсов C++/WinRT.

  • Если вы нацелены на Windows 1803 или более ранних версий, см . руководство по переносу существующего приложения WinML в пакет NuGet.
  • Если вы создаете новое приложение C++, ознакомьтесь с руководством по созданию классического приложения Windows Машинное обучение (C++) и выполните действия по загрузке модели.
  • Если у вас есть существующее приложение C++ (которое еще не настроено для C++/WinRT), выполните следующие действия, чтобы настроить приложение для C++/WinRT:
    1. Убедитесь, что у вас установлена последняя версия Visual Studio 2019 (любого выпуска).
    2. Убедитесь, что у вас есть пакет SDK для Windows 10 версии 1803 или более поздней.
    3. Скачайте и установите расширение C++/WinRT для Visual Studio (VSIX) из Visual Studio Marketplace.
    4. Добавьте свойство в <CppWinRTEnabled>true</CppWinRTEnabled> vcxproj-файл проекта:
      <Project ...>
          <PropertyGroup Label="Globals">
              <CppWinRTEnabled>true</CppWinRTEnabled>
      ...
      
    5. Для C++/WinRT требуются некоторые компоненты стандарта C++17, поэтому в свойствах проекта нужно указать C/C++ > Язык > Стандарт языка C++ > Стандарт ISO C++17 (/std:c++17).
    6. Задайте режим соответствия: Да (/permissive-) в свойствах проекта.
    7. Еще одно важное свойство для проекта: C/C++ > Общие > Обрабатывать предупреждения как ошибки. Задайте для него значение Да (/WX) или Нет (/WX-) по своему желанию. Иногда исходные файлы, созданные инструментом cppwinrt.exe, выдают предупреждения до тех пор, пока вы не добавите в них свою реализацию.
    8. VSIX также поддерживает визуализацию встроенной отладки Visual Studio (natvis) проецированных типов C++/ WinRT, что обеспечивает возможности, аналогичные отладке на C#. Natvis автоматически используется для сборок отладки. Вы можете выбрать сборки выпуска, указав символ WINRT_NATVIS.
    9. Теперь проект настроен для работы с C++/WinRT. Дополнительные сведения см. в документации по C++/WinRT.

Примечание.

Используйте следующие ресурсы для получения справки по машинному обучению в Windows:

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