Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
La API de tiempo de ejecución de ML de Windows es actualmente experimental y no se admite para su uso en entornos de producción. Las aplicaciones que prueban esta API no deben publicarse en el Microsoft Store.
En este tema se explica cómo configurar un proyecto nativo de C++ para utilizar la API de tiempo de ejecución y crear una IWinMLRuntimeinstancia. Continúe para ejecutar un modelo con la Windows ML Runtime API para la carga de modelos, la vinculación de tensores y la inferencia.
Prerequisites
- Una versión de Windows compatible con el
Microsoft.Windows.AI.MachineLearningpaquete. Consulte requisitos de implementación de Windows ML. - Visual Studio 2022 o posterior con la carga de trabajo Desarrollo de escritorio con C++.
- Un proyecto de consola de C++ nativo.
- Versión experimental
2.7.2021-experimentalde Microsoft.Windows.AI.MachineLearning NuGet package. - Para el código de ejemplo de estas páginas, se requiere C++20 y el paquete NuGet Microsoft.Windows.CppWinRT.
Note
C++20 y C++/WinRT son requisitos de estos ejemplos de documentación, no de la API en tiempo de ejecución. La API en tiempo de ejecución es una ABI nativa de estilo COM que también se puede consumir desde C o C++ mediante COM sin procesar, WRL, WIL u otro asistente COM según los requisitos del lenguaje de esa aplicación.
El objetivo de ejecución de la CPU es la ruta base. La disponibilidad de GPU y NPU depende del dispositivo, las funcionalidades de la plataforma y el back-end de ejecución instalado para tu aplicación.
Configurar la restauración nativa de NuGet
Los proyectos nativos de Visual C++ necesitan un moniker de destino de NuGet para que la restauración de paquetes seleccione los recursos de Windows nativos. Agregue este grupo de propiedades cerca de la parte superior del .vcxproj archivo, antes de la primera Microsoft.Cpp.* importación:
<PropertyGroup Label="NuGet">
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<NuGetTargetMoniker>native,Version=v0.0</NuGetTargetMoniker>
<NuGetTargetPlatformIdentifier>Windows</NuGetTargetPlatformIdentifier>
<NuGetTargetPlatformVersion>$(WindowsTargetPlatformVersion)</NuGetTargetPlatformVersion>
</PropertyGroup>
Instale el Microsoft.Windows.AI.MachineLearning paquete mediante Administrar paquetes NuGet o PackageReference. Para compilar los ejemplos de estas páginas, instale también Microsoft.Windows.CppWinRT y establezca Estándar del lenguaje C++ en Estándar ISO C++20 (/std:c++20). El paquete de Windows ML proporciona los encabezados de Runtime, las bibliotecas de importación y los archivos DLL autocontenidos; C++/WinRT proporciona las utilidades winrt::com_ptr, winrt::check_hresult y <winrt/base.h> usadas solo por el código de ejemplo.
Para ver las opciones de despliegue y CMake, consulte Instalación independiente.
Inicializar el tiempo de ejecución
Reemplaza main.cpp por el código siguiente:
// 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;
}
Compile para la arquitectura que coincida con los recursos del paquete, como Release|x64. Una compilación correcta confirma que la restauración de NuGet encontró los encabezados en tiempo de ejecución y la biblioteca de importación y copió los archivos DLL necesarios junto al ejecutable.