API de Windows ML

Para obtener instrucciones conceptuales, consulte Ejecución de modelos ONNX con Windows ML).

Puede considerar las API del paquete NuGet de Microsoft.WindowsAppSDK.ML como el superconjunto de estos dos conjuntos:

El paquete NuGet de Microsoft.WindowsAppSDK.ML

Microsoft Windows ML Runtime proporciona API para las operaciones de aprendizaje automático e inteligencia artificial en aplicaciones de Windows. El paquete NuGet de Microsoft.WindowsAppSDK.ML proporciona los archivos en tiempo de ejecución .winmd de Windows ML para usarlos en proyectos de C# y C++.

Las ruedas de Python pywinrt

Microsoft Windows ML Runtime aprovecha el proyecto pywinrt para proporcionar acceso a Python a las mismas API de Windows ML. El nombre del paquete es winui3-Microsoft.Windows.AI.MachineLearning. Se requieren paquetes adicionales para usar El SDK de aplicaciones de Windows en Python. Para obtener más información, consulte el tema Ejecución de modelos ONNX con Windows ML .

API de Windows ML

Para obtener documentación de referencia de API y ejemplos de código, consulte el espacio de nombres Microsoft.Windows.AI.MachineLearning .

Notas de implementación

El entorno de ejecución de Windows ML se integra con el SDK de aplicaciones de Windows y se basa en sus mecanismos de implementación y arranque:

  • Detecta automáticamente los proveedores de ejecución compatibles con el hardware actual
  • Administra la duración y las actualizaciones del paquete.
  • Controla el registro y la activación de paquetes.
  • Admite diferentes versiones de proveedores de ejecución

Implementación dependiente del marco

Windows ML se entrega como un componente dependiente del marco . Esto significa que la aplicación debe:

  • Haga referencia al paquete NuGet principal del SDK de aplicaciones de Windows agregando una referencia a Microsoft.WindowsAppSDK (recomendado)
  • O bien, haga referencia tanto a Microsoft.WindowsAppSDK.ML como a Microsoft.WindowsAppSDK.Runtime

Para obtener más información sobre la implementación de aplicaciones de Windows App SDK, consulte la documentación Sobre el paquete e implementación de aplicaciones de Windows .

Uso de ONNX Runtime con Windows ML

Para las aplicaciones de C++, después de registrar proveedores de ejecución, use la API de C en tiempo de ejecución de ONNX directamente para crear sesiones y ejecutar la inferencia.

En el caso de las aplicaciones de C#, use ONNX Runtime directamente para la inferencia mediante el espacio de nombres Microsoft.ML.OnnxRuntime.

En el caso de las aplicaciones de Python, use la rueda onnxruntime-windowsml del entorno de ejecución de ONNX para la inferencia.

Notas de Python

Inicialización del SDK de aplicaciones de Windows

Todas las llamadas a Windows ML deben producirse después de inicializar el SDK de aplicaciones de Windows. Esto se puede hacer con el código siguiente:

from winui3.microsoft.windows.applicationmodel.dynamicdependency.bootstrap import (
    InitializeOptions,
    initialize
)
with initialize(options = InitializeOptions.ON_NO_MATCH_SHOW_UI):
    # Your Windows ML code here

El registro se produce fuera de Windows ML

El entorno de ejecución de ONNX está diseñado de forma que los entornos nativos y Python sean independientes. Y las llamadas de registro nativas en el mismo proceso no funcionarán para el entorno de Python. Por lo tanto, el registro de proveedores de ejecución debe realizarse directamente con la API de Python.

Eliminar el vcruntime empaquetado de pywinrt

El proyecto pywinrt incluye un msvcp140.dll en el paquete winrt-runtime. Esto puede entrar en conflicto con otros paquetes. Quite este archivo DLL para evitar este problema e instale las bibliotecas vcruntime que faltan con vc redistributable.

Consulte también