Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
В настоящее время API среды выполнения машинного обучения Windows является экспериментальным и не поддерживается для использования в производственных средах. Приложения, тестирующие этот API, не должны публиковаться в Microsoft Store.
В этом разделе показано, как настроить собственный проект на C++ для использования API среды выполнения и создать экземпляр IWinMLRuntime. Перейдите к запуску модели с помощью API среды выполнения машинного обучения Windows для загрузки модели, тензорной привязки и инференса.
Prerequisites
- Версия Windows, поддерживаемая
Microsoft.Windows.AI.MachineLearningпакетом. См. требования к развертыванию Windows ML. - Visual Studio 2022 или более поздней версии с рабочей нагрузкой Разработка классических приложений на C++.
- Нативный консольный проект C++.
-
Экспериментальная версия пакета NuGet
2.7.2021-experimentalMicrosoft.Windows.AI.MachineLearning. - Для примера кода на этих страницах, C++20 и пакет NuGet Microsoft.Windows.CppWinRT.
Note
C++20 и C++/WinRT являются требованиями к этим примерам документации, а не API среды выполнения. API среды выполнения — это собственный ABI в стиле COM, который также можно использовать из C или C++ с помощью raw COM, WRL, WIL или другого вспомогательного средства COM в зависимости от языка этого приложения.
Цель выполнения CPU — это базовый путь. Доступность GPU и NPU зависит от устройства, возможностей платформы и исполняемой среды, установленной для вашего приложения.
Настройка встроенного восстановления NuGet
Для собственных проектов Visual C++ требуется идентификатор целевой платформы NuGet, поэтому восстановление пакетов выбирает собственные ресурсы Windows. Добавьте эту группу свойств в верхней части .vcxproj файла перед первым Microsoft.Cpp.* импортом:
<PropertyGroup Label="NuGet">
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<NuGetTargetMoniker>native,Version=v0.0</NuGetTargetMoniker>
<NuGetTargetPlatformIdentifier>Windows</NuGetTargetPlatformIdentifier>
<NuGetTargetPlatformVersion>$(WindowsTargetPlatformVersion)</NuGetTargetPlatformVersion>
</PropertyGroup>
Установите пакет Microsoft.Windows.AI.MachineLearning с помощью Управление пакетами NuGet или PackageReference. Чтобы собрать примеры на этих страницах, также установите Microsoft.Windows.CppWinRT и установите для стандарта языка C++ значение ISO C++20 Standard (/std:c++20). Пакет машинного обучения Windows предоставляет заголовки среды выполнения, библиотеки импорта и автономные библиотеки DLL; C++/WinRT предоставляет winrt::com_ptr, winrt::check_hresult, and <winrt/base.h> и удобства, используемые только примером кода.
Параметры CMake и развертывания см. в разделе Автономная установка.
Инициализировать среду выполнения
Замените main.cpp следующим кодом:
// Copyright (C) Microsoft Corporation. All rights reserved.
#include <Windows.h>
#include <winrt/base.h>
#include <WinMLRuntime.h>
#pragma comment(lib, "windowsapp.lib")
int wmain()
{
winrt::com_ptr<IWinMLRuntime> runtime;
winrt::check_hresult(WinMLCreateRuntime(
__uuidof(IWinMLRuntime),
runtime.put_void()));
return 0;
}
Сборка для архитектуры, которая соответствует файлам пакета, например Release|x64. Успешная сборка подтверждает, что восстановление NuGet обнаружило заголовки среды выполнения и библиотеку импорта и скопировало необходимые библиотеки DLL рядом с исполняемым файлом.