Compartir a través de


Introducción a Windows ML

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.0 especí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...

  1. Selección de proveedores de ejecución : indique al entorno de ejecución qué proveedores de ejecución desea usar.
  2. Obtener los modelos : use el catálogo de modelos para descargar modelos dinámicamente o incluirlos localmente.
  3. 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