Instalación e implementación de Windows ML

Windows ML se distribuye como parte del SDK de aplicaciones de Windows y admite dos modos de implementación: dependientes del marco (recomendado) y independientes. Elija en función del tamaño, la actualización y los requisitos de dependencia de la aplicación.

Para obtener más información sobre Windows ML, consulte ¿Qué es Windows ML?

Inicio rápido

Esta es la versión breve de cómo instalar Windows ML en el proyecto:

Para dependiente del entorno (recomendado), instale:

Para autocontenido (aumenta el tamaño de la aplicación en ~41 MB)::

  • Para las aplicaciones destinadas a Windows 10 compilación 18362 o posterior, instale Microsoft.Windows. IA. MachineLearning
  • O bien, para las aplicaciones destinadas a Windows 10 compilación 17763 o posterior, instale Microsoft. WindowsAppSDK.ML
  • No instale Microsoft.WindowsAppSDK.Runtime ni el paquete principal de Microsoft.WindowsAppSDK

Para obtener más información sobre cada opción, consulte las secciones siguientes.

Requisitos

Note

Con .NET 6, puede usar el Microsoft.Windows.AI.MachineLearning espacio de nombres para instalar proveedores de ejecución, pero Microsoft.ML.OnnxRuntime las API no están disponibles. Actualice a .NET 8 para acceder a la superficie completa de la API de Windows ML.

Qué hay en Windows ML

Windows ML se compone de estos archivos binarios:

Binary Descripción Tamaño aprox.
Microsoft.Windows.AI.MachineLearning.dll API de Windows ML (ExecutionProviderCatalog, etc.) ~1 MB
onnxruntime.dll El motor de ejecución de ONNX ~20 MB
DirectML.dll DirectML: el proveedor de ejecución de GPU incluido ~20 MB
Total ~41 MB

Los proveedores de ejecución de proveedores (QNN, VitisAI, OpenVINO, NvTensorRtRtx, MIGraphX) no forman parte de Windows ML. Se obtienen por separado, ya sea a través de ExecutionProviderCatalog en tiempo de ejecución o agrupándolos usted mismo. Consulte Accelerate AI models (Aceleración de modelos de IA).

Elección de un modo de implementación

Al usar Windows ML, puedes elegir entre dos modos de implementación: dependientes del marco (recomendado) y autocontenidos.

Dependiente del marco (recomendado) Autónomo
Idiomas compatibles C#, C++/WinRT, Python C#, C++/WinRT, C/C++
Tipos de empaquetado admitidos Desempaquetado y empaquetado (MSIX) Desempaquetado y empaquetado (MSIX)
Implementación empresarial Admitido Admitido
Tamaño de la aplicación Más pequeño: los archivos binarios de Windows ML son compartidos en todo el sistema Mayor tamaño: Los archivos binarios de Windows ML están incluidos en tu aplicación (~41 MB)
Actualizaciones de Windows ML Automático: los usuarios obtienen actualizaciones a través del mantenimiento del SDK de aplicaciones de Windows Manual: se envía una nueva versión cuando se elige
Dependencia de entorno de ejecución instalado Sí: el entorno de ejecución de SDK de Aplicaciones para Windows debe estar presente No: todas las dependencias están en el paquete de la aplicación
Paquete NuGet (C#/C++) Microsoft.WindowsAppSDK.ML + Microsoft.WindowsAppSDK.Runtime Microsoft.Windows.AI.MachineLearning o Microsoft.WindowsAppSDK.ML
Más adecuado para Aplicaciones que requieren un tamaño mínimo de descarga e instalación; Aplicaciones que se envían a través de Microsoft Store Control de versiones estricto

Las aplicaciones dependientes del marco dependen del entorno de ejecución del SDK de aplicaciones de Windows que se instala en el equipo del usuario. Consulte Arquitectura de implementación para aplicaciones dependientes del marco para obtener más información.

En el proyecto, instale o actualice los siguientes paquetes NuGet:

Note

Como alternativa, instale o actualice el paquete NuGet principal Microsoft.WindowsAppSDK a la versión 1.8.1 o superior, que incluye Windows ML y todas las demás API de SDK de Aplicaciones para Windows, con dependencias de marco por defecto.

Además, en su archivo .csproj, asegúrese de que WindowsAppSDKSelfContained esté sin especificar (no esté presente), o que sea false, para que use la implementación dependiente del entorno.

Por último, consulte Arquitectura de implementación para aplicaciones dependientes del marco para obtener información sobre cómo implementar el entorno de ejecución de SDK de Aplicaciones para Windows en los dispositivos del usuario junto con la aplicación.

Instalación independiente

Las aplicaciones independientes agrupan todos los archivos binarios de Windows ML directamente en la aplicación. No se requiere ninguna dependencia externa en tiempo de ejecución, pero la aplicación será mayor. Este es el valor predeterminado cuando hace referencia a Microsoft.Windows.AI.MachineLearning o Microsoft.WindowsAppSDK.ML sin hacer referencia al paquete principal Microsoft.WindowsAppSDK o Microsoft.WindowsAppSDK.Runtime. Consulte Guía de implementación para aplicaciones autocontenidas para obtener más información.

En el proyecto, instale o actualice los siguientes paquetes NuGet:

  • Para las aplicaciones destinadas a Windows 10 compilación 18362 o posterior:
  • O bien, para las aplicaciones destinadas a Windows 10 compilación 17763 o posterior:
    • Instale Microsoft. WindowsAppSDK.ML(esto agrega las API y archivos binarios de Windows ML, el valor predeterminado es independiente y agrega compatibilidad con RegFree WinRT para 17763)
  • No instale Microsoft.WindowsAppSDK.Runtime(esto habilitaría el modo dependiente del marco... quítelo si actualmente lo tiene instalado)
  • No instale el paquete NuGet Microsoft.WindowsAppSDK principal (esto habilitaría el modo dependiente del marco... quítelo si actualmente lo tiene instalado)
  • No dude en instalar otros paquetes de componentes de SDK de Aplicaciones para Windows como Microsoft.WindowsAppSDK.AI, siempre y cuando no instale el runtime o el paquete principal.

Note

Si debe usar el paquete NuGet principal Microsoft.WindowsAppSDK, actualícelo a la versión 1.8.1 o posterior, que incluye Windows ML y todas las demás API de SDK de Aplicaciones para Windows. Además, en su .csproj, establezca WindowsAppSDKSelfContained a true para habilitar el modo independiente.

Paso siguiente

Consulte también