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.
En este tema se muestra cómo instalar y usar Windows ML para detectar, descargar y registrar proveedores de ejecución (CSP) para usarlos con onnx Runtime incluido con Windows ML. Windows ML controla la complejidad de la administración de paquetes y la selección de hardware, descargando automáticamente los proveedores de ejecución más recientes compatibles con el hardware del dispositivo.
Si aún no está familiarizado con el entorno de ejecución de ONNX, se recomienda leer los documentos de ONNX Runtime. En resumen, Windows ML proporciona una copia compartida de Windows en tiempo de ejecución de ONNX, además de la capacidad de descargar dinámicamente proveedores de ejecución (EP).
Prerrequisitos
- Versión de Windows compatible con Windows App SDK
- Requisitos previos específicos del idioma que se muestran a continuación
- .NET 6 o superior
- Tener como destino un TFM
net6.0-windows10.0.19041.0específico de Windows 10 como o superior
Paso 1: Instalar o actualizar el SDK de aplicaciones de Windows
Las API del catálogo de modelos se incluyen en la versión experimental de Windows App SDK 2.0.0 o posterior.
Consulte Usar el SDK de aplicaciones de Windows en un proyecto existente para obtener información sobre cómo agregar el SDK de aplicaciones de Windows al proyecto o si ya usa Windows App SDK, actualice los paquetes.
Paso 2: Descargar y registrar direcciones IP
La manera más sencilla de empezar es permitir que Windows ML detecte, descargue y registre automáticamente la versión más reciente de todos los proveedores de ejecución compatibles. Los proveedores de ejecución deben registrarse con el entorno de ejecución de ONNX dentro de Windows ML para poder usarlos. Y si aún no se han descargado, primero deben descargarse. La llamada EnsureAndRegisterCertifiedAsync() realizará ambas acciones en un solo paso.
using Microsoft.ML.OnnxRuntime;
using Microsoft.Windows.AI.MachineLearning;
// First we create a new instance of EnvironmentCreationOptions
EnvironmentCreationOptions envOptions = new()
{
logId = "WinMLDemo", // Use an ID of your own choice
logLevel = OrtLoggingLevel.ORT_LOGGING_LEVEL_ERROR
};
// And then use that to create the ORT environment
using var ortEnv = OrtEnv.CreateInstanceWithOptions(ref envOptions);
// Get the default ExecutionProviderCatalog
var catalog = ExecutionProviderCatalog.GetDefault();
// Ensure and register all compatible execution providers with ONNX Runtime
// This downloads any necessary components and registers them
await catalog.EnsureAndRegisterCertifiedAsync();
Sugerencia
En las aplicaciones de producción, encapsula la EnsureAndRegisterCertifiedAsync() llamada en un bloque try-catch para controlar posibles errores de red o descarga correctamente.
Pasos siguientes
Después de registrar proveedores de ejecución, está listo para usar las API en tiempo de ejecución de ONNX en Windows ML. Querrás...
- Selección de proveedores de ejecución : indique al entorno de ejecución qué proveedores de ejecución desea usar.
- Obtener los modelos : use el catálogo de modelos para descargar modelos dinámicamente o incluirlos localmente.
- Ejecución de la inferencia del modelo : compilación, carga e inferencia del modelo
Importante
Los proyectos de C# que usan las Microsoft.ML.OnnxRuntime.Tensors API deben hacer referencia manualmente al paquete NuGet System.Numerics.Tensors , versión 9.0.0 o posterior. Sin esta referencia de paquete NuGet, el código experimentará el siguiente error en tiempo de ejecución: Could not load file or assembly 'System.Numerics.Tensors, Version=9.0.0.0.
Consulte también
- Catálogo de modelos: descargar modelos dinámicamente de catálogos en línea
- Inicialización de proveedores de ejecución : formas adicionales de controlar la descarga de direcciones IP
- Distribuir la aplicación : información sobre cómo distribuir una aplicación mediante Windows ML
- Versiones de ONNX en Windows ML : información sobre qué versión de ONNX Runtime se incluye con Windows ML
- Tutorial: Tutorial completo de un extremo a otro con Windows ML con el modelo ResNet-50
- Ejemplos de código: nuestros ejemplos de código con Windows ML