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, scaricando automaticamente i provider di esecuzione più recenti compatibili con l'hardware del dispositivo.

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

Prerequisiti

  • .NET 6 o versione successiva
  • Riferirsi a un TFM specifico per Windows 10 come net6.0-windows10.0.19041.0 o versione successiva

Passaggio 1: Installare o aggiornare Windows App SDK

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

Vedi Usare Windows App SDK in un progetto esistente per aggiungere Windows App SDK al progetto o se stai già usando Windows App SDK, aggiorna i pacchetti.

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