Delen via


Aan de slag met Windows ML

In dit onderwerp wordt beschreven hoe u Windows ML installeert en gebruikt om uitvoeringsproviders (EPs) te detecteren, downloaden en registreren voor gebruik met de ONNX Runtime die wordt geleverd met Windows ML. Windows ML verwerkt de complexiteit van pakketbeheer en hardwareselectie, waarbij automatisch de meest recente uitvoeringsproviders worden gedownload die compatibel zijn met de hardware van uw apparaat.

Als u nog niet bekend bent met de ONNX Runtime, raden we u aan de ONNX Runtime-documenten te lezen. Kortom, Windows ML biedt een gedeelde versie van de ONNX Runtime, plus de mogelijkheid om uitvoeringsproviders (EPs) dynamisch te downloaden.

Vereiste voorwaarden

  • .NET 6 of hoger
  • Gericht op een Windows 10-specifieke TFM zoals net6.0-windows10.0.19041.0 of hoger

Stap 1: de Windows App SDK installeren of bijwerken

De modelcatalogus-API's zijn opgenomen in de experimentele versie van Windows App SDK 2.0.0 of hoger.

Zie de Windows App SDK in een bestaand project gebruiken voor het toevoegen van de Windows App SDK aan uw project, of als u al Windows App SDK gebruikt, uw pakketten bijwerken.

Stap 2: EPs downloaden en registreren

De eenvoudigste manier om aan de slag te gaan, is door Windows ML automatisch de nieuwste versie van alle compatibele uitvoeringsproviders te laten detecteren, downloaden en registreren. Uitvoeringsproviders moeten worden geregistreerd bij de ONNX Runtime in Windows ML voordat u ze kunt gebruiken. En als ze nog niet zijn gedownload, moeten ze eerst worden gedownload. Aanroepen EnsureAndRegisterCertifiedAsync() doen beide in één stap.

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

Aanbeveling

In productietoepassingen verpakt u de EnsureAndRegisterCertifiedAsync() aanroep in een try-catch-blok om potentiële netwerk- of downloadfouten probleemloos af te handelen.

Volgende stappen

Nadat u uitvoeringsproviders hebt geregistreerd, kunt u de ONNX Runtime-API's in Windows ML gebruiken. U wilt...

  1. Uitvoeringsproviders selecteren - Geef aan welke uitvoeringsproviders u wilt gebruiken
  2. Uw modellen ophalen - Modelcatalogus gebruiken om modellen dynamisch te downloaden of lokaal op te nemen
  3. Modeldeductie uitvoeren : uw model compileren, laden en deductie

Zie ook