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.
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:
- API de Windows ML. API de Windows ML en el espacio de nombres Microsoft.Windows.AI.MachineLearning , como la clase ExecutionProviderCatalog y sus métodos (que son API de Windows Runtime).
- APIs en tiempo de ejecución de ONNX. Implementaciones de Windows ML (en el paquete NuGet Microsoft.WindowsAppSDK.ML ) de determinadas API del entorno de ejecución de ONNX (ORT). Para obtener documentación, consulte la documentación de la API en tiempo de ejecución de ONNX. Por ejemplo, la estructura OrtCompileApi. Para obtener ejemplos de código que usan estas API y más vínculos a la documentación, consulte el tutorial Uso de Windows ML para ejecutar el tutorial del modelo ResNet-50 .
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.MLcomo aMicrosoft.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.