Compartir a través de


Integración de un modelo en la aplicación con Windows ML

En esta guía, trataremos cómo usar las API de Windows ML para integrar un modelo en tu aplicación de Windows. Como alternativa, si quieres utilizar el generador de código automático de Windows ML, consulta mlgen.

API importantes: Windows.AI.MachineLearning

Trataremos los bloques de creación básicos de Windows ML, que son:

  • Modelos
  • Sesiones
  • Dispositivos
  • Enlaces

Los usarás para cargar, enlazar y evaluar los modelos con Windows ML.

También se recomienda echar un vistazo a nuestras aplicaciones de ejemplo en GitHub para ver ejemplos de código de Windows ML de un extremo a otro.

En el vídeo siguiente se incluye una demostración breve de estas API en acción.


Uso de las API de WinML en C++

Aunque las API de WinML están disponibles en C++/CX y C++/WinRT, se recomienda usar la versión C++/WinRT, ya que permite una codificación de C++ más natural y es donde se centrarán la mayoría de los esfuerzos de desarrollo en el futuro. Puedes seguir las instrucciones que se indican a continuación y que pertenecen a tu situación concreta para usar las API de C++/WinRT:

  • Si tienes como destino Windows 1803 o versiones anteriores, consulta el Tutorial: Migración de una aplicación WinML existente al paquete NuGet.
  • Si estás creando una nueva aplicación C++, consulta el Tutorial: Creación de una aplicación de escritorio de Windows Machine Learning (C++) y sigue los pasos hasta Cargar el modelo.
  • Si tienes una aplicación de C++ existente (que aún no está configurada para C++/WinRT), sigue estos pasos para configurar la aplicación para C++/WinRT:
    1. Asegúrate de tener instalada la versión más reciente de Visual Studio 2019 (cualquier edición).
    2. Asegúrate de tener el SDK para Windows 10, versión 1803 o posterior.
    3. Descarga e instala la Extensión de Visual Studio (VSIX) de C++/WinRT desde Visual Studio Marketplace.
    4. Agrega la propiedad <CppWinRTEnabled>true</CppWinRTEnabled> al archivo .vcxproj del proyecto:
      <Project ...>
          <PropertyGroup Label="Globals">
              <CppWinRTEnabled>true</CppWinRTEnabled>
      ...
      
    5. Dado que C++/WinRT requiere las características del estándar C++17, establezca C/C++ > Lenguaje > Estándar de lenguaje C++ > Estándar ISO C++17 (/std:c++17) en las propiedades del proyecto.
    6. Configura el modo de Conformidad Sí (/permissive-) en las propiedades del proyecto.
    7. Otra propiedad de proyecto que se debe tener en cuenta es C/C++ > General > Tratar advertencias como errores. Establécela en Sí (/WX) o No (/WX-) según te parezca. A veces, los archivos de origen generados por la herramienta cppwinrt.exe generan advertencias hasta que les agregas tu implementación.
    8. La extensión VSIX también te ofrece visualización de depuración nativa de Visual Studio (natvis) de tipos proyectados de C++/ WinRT, lo que proporciona una experiencia similar a la depuración de C#. Natvis es automático para compilaciones de depuración. Puedes participar en las compilaciones de versiones si defines el símbolo WINRT_NATVIS.
    9. El proyecto ahora debe estar configurado para C++/WinRT. Para obtener más información, consulta C++/WinRT.

Nota:

Use los siguientes recursos para obtener ayuda con Windows ML:

  • Para formular o responder a preguntas técnicas sobre Windows Machine Learning, utilice la etiqueta windows-machine-learning en Stack Overflow.
  • Para notificar un error, registre un problema en GitHub.