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


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

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

Важные API: Windows.AI.MachineLearning

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

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

Они будут использоваться для загрузки, привязки и оценки моделей с помощью Windows ML.

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

В следующем видео показаны эти 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. Скачайте и установите расширение Visual Studio C++/WinRT (VSIX) из Visual Studio Marketplace.
    4. Добавьте свойство <CppWinRTEnabled>true</CppWinRTEnabled> в файл проекта .vcxproj.
      <Project ...>
          <PropertyGroup Label="Globals">
              <CppWinRTEnabled>true</CppWinRTEnabled>
      ...
      
    5. Для C++/WinRT требуются возможности стандарта C++17, поэтому в свойствах проекта установите стандарт языка C++ на ISO C++17 (/std:c++17).
    6. Задайте режим соответствия: Да (/permissive-) в свойствах проекта.
    7. Другим свойством проекта, которое следует учитывать, является общее > описание предупреждений C/C++ > как ошибок. Задайте для этого значение "Да" (/WX) или "Нет" (/WX-) для вкуса. Иногда исходные файлы, созданные средством cppwinrt.exe , создают предупреждения, пока не добавите к ним реализацию.
    8. VSIX также предоставляет нативную визуализацию отладки (natvis) в Visual Studio для проекционных объектов C++/WinRT, обеспечивая процесс, похожий на отладку в C#. Natvis является автоматическим для отладочных сборок. Вы можете выбрать релизные сборки, определив символ WINRT_NATVIS.
    9. Теперь проект должен быть настроен для C++/WinRT. Дополнительные сведения см. в статье C++/WinRT .

Замечание

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

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