Freigeben über


Erste Schritte mit Windows ML

In diesem Thema erfahren Sie, wie Sie Windows ML installieren und verwenden, um Ausführungsanbieter (EPs) für die Verwendung mit der ONNX-Runtime zu ermitteln, herunterzuladen und zu registrieren, die mit Windows ML ausgeliefert wird. Windows ML behandelt die Komplexität der Paketverwaltung und der Hardwareauswahl, sodass Sie die neuesten Ausführungsanbieter herunterladen können, die mit der Hardware Ihrer Benutzer kompatibel sind.

Wenn Sie mit der ONNX-Runtime noch nicht vertraut sind, empfehlen wir, die ONNX-Runtime-Dokumente zu lesen. Kurz gesagt bietet Windows ML eine Kopie der ONNX-Runtime sowie die Möglichkeit, Ausführungsanbieter (EPs) dynamisch herunterzuladen.

Voraussetzungen

  • .NET 8 oder höher, um alle Windows ML-APIs zu verwenden
    • Mit .NET 6 können Sie Ausführungsanbieter mithilfe der Microsoft.Windows.AI.MachineLearning APIs installieren, aber Sie können die Microsoft.ML.OnnxRuntime APIs nicht verwenden.
  • Festlegen eines Windows 10-spezifischen TFM wie net8.0-windows10.0.19041.0 oder höher

Schritt 1: Installieren oder Aktualisieren von Windows ML

Windows ML ist im Windows App SDK 1.8.1 oder höher enthalten.

Die einfachste Möglichkeit zur Verwendung von Windows ML besteht darin, das Microsoft.WindowsAppSDK.ML NuGet-Paket zu installieren, das standardmäßig eine eigenständige Bereitstellung verwendet. Weitere Informationen zu Bereitstellungsoptionen finden Sie unter Bereitstellen Ihrer App .

dotnet add package Microsoft.WindowsAppSDK.ML

Schritt 2: Herunterladen und Registrieren von EPs

Die einfachste Möglichkeit, loszulegen, besteht darin, Windows ML automatisch die neueste Version aller kompatiblen Ausführungsprovider ermitteln, herunterladen und registrieren zu lassen. Ausführungsanbieter müssen bei der ONNX-Runtime innerhalb von Windows ML registriert werden, bevor Sie sie verwenden können. Und wenn sie noch nicht heruntergeladen wurden, müssen sie zuerst heruntergeladen werden. Ein Aufruf von EnsureAndRegisterCertifiedAsync() erledigt beides in einem Schritt.

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

Tipp

Sie können manchmal eine bessere Leistung in ONNX Runtime erzielen, indem Sie Thread-Spinning aktivieren. Weitere Informationen finden Sie unter Threadspinnverhalten in Windows ML .

Tipp

Schließen Sie in Produktionsanwendungen den EnsureAndRegisterCertifiedAsync() Anruf in einen Try-Catch-Block ein, um potenzielle Netzwerk- oder Downloadfehler ordnungsgemäß zu verarbeiten.

Nächste Schritte

Nach der Registrierung von Ausführungsanbietern können Sie die ONNX-Runtime-APIs in Windows ML verwenden! Sie möchten...

  1. Auswählen von Ausführungsanbietern – Teilen Sie der Laufzeit mit, welche Ausführungsanbieter Sie verwenden möchten.
  2. Abrufen Ihrer Modelle – Verwenden des Modellkatalogs, um Modelle dynamisch herunterzuladen oder lokal einzuschließen
  3. Modellinferenz ausführen – Kompilieren, Laden und Inferenz des Modells

Siehe auch