Condividi tramite


Introduzione a Windows ML

Questo argomento illustra come installare e usare Windows ML per individuare, scaricare e registrare provider di esecuzione (EPS) da usare con onNX Runtime fornito con Windows ML. Windows ML gestisce la complessità della gestione dei pacchetti e della selezione hardware, consentendo di scaricare i provider di esecuzione più recenti compatibili con l'hardware degli utenti.

Se non si ha già familiarità con il runtime ONNX, è consigliabile leggere la documentazione sul runtime ONNX. In breve, Windows ML fornisce una copia del runtime ONNX, oltre alla possibilità di scaricare dinamicamente provider di esecuzione (EPS).

Prerequisiti

  • .NET 8 o versione successiva per usare tutte le API di Windows ML
    • Con .NET 6 è possibile installare provider di esecuzione usando le Microsoft.Windows.AI.MachineLearning API, ma non è possibile usare le Microsoft.ML.OnnxRuntime API.
  • Riferirsi a un TFM specifico per Windows 10 come net8.0-windows10.0.19041.0 o versione successiva

Passaggio 1: Installare o aggiornare Windows ML

Windows ML è incluso in Windows App SDK 1.8.1 o versione successiva.

Il modo più semplice per usare Windows ML consiste nell'installare il Microsoft.WindowsAppSDK.ML pacchetto NuGet, che usa la distribuzione autonoma per impostazione predefinita. Per altre informazioni sulle opzioni di distribuzione, vedere Distribuire l'app .

dotnet add package Microsoft.WindowsAppSDK.ML

Passaggio 2: Scaricare e registrare gli EP

Il modo più semplice per iniziare è consentire a Windows ML di individuare, scaricare e registrare automaticamente la versione più recente di tutti i provider di esecuzione compatibili. I provider di esecuzione devono essere registrati con il runtime ONNX all'interno di Windows ML prima di poterli usare. E se non sono ancora stati scaricati, devono essere scaricati per primi. La chiamata EnsureAndRegisterCertifiedAsync() eseguirà entrambe queste operazioni in un unico passaggio.

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();

Suggerimento

A volte è possibile ottenere prestazioni migliori in ONNX Runtime abilitando la rotazione dei thread. Per altre informazioni , vedi Comportamento di rotazione dei thread in Windows ML .

Suggerimento

Nelle applicazioni di produzione, incapsulare la chiamata EnsureAndRegisterCertifiedAsync() in un blocco try-catch per gestire correttamente eventuali errori di rete o di download.

Passaggi successivi

Dopo aver registrato i provider di esecuzione, è possibile usare le API di runtime ONNX all'interno di Windows ML. Ti converrà...

  1. Selezionare i provider di esecuzione : indicare al runtime quali provider di esecuzione si vuole usare
  2. Ottenere i modelli : usare il catalogo dei modelli per scaricare in modo dinamico i modelli o includerli in locale
  3. Eseguire l'inferenza del modello - Compilare, caricare e inferenza del modello

Vedere anche