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 und lädt automatisch die neuesten Ausführungsanbieter herunter, die mit der Hardware Ihres Geräts kompatibel sind.

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

Voraussetzungen

  • .NET 6 oder höher
  • Festlegen eines windows 10-spezifischen TFM wie net6.0-windows10.0.19041.0 oder höher

Schritt 1: Installieren oder Aktualisieren des Windows App SDK

Die Modellkatalog-APIs sind in der experimentellen Version von Windows App SDK 2.0.0 oder höher enthalten.

Lesen Sie die Verwendung des Windows App SDK in einem vorhandenen Projekt , um das Windows App SDK zu Ihrem Projekt hinzuzufügen, oder wenn Sie bereits Windows App SDK verwenden, aktualisieren Sie Ihre Pakete.

Schritt 2: Herunterladen und Registrieren von EPs

Die einfachste Möglichkeit für die ersten Schritte besteht darin, Windows ML automatisch zu ermitteln, herunterzuladen und die neueste Version aller kompatiblen Ausführungsanbieter zu registrieren. 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. Der Anruf EnsureAndRegisterCertifiedAsync() führt beides in einem Schritt aus.

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

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. Ausführen der Modellferenz – Kompilieren, Laden und Ableiten des Modells

Von Bedeutung

C#-Projekte, die die Microsoft.ML.OnnxRuntime.Tensors APIs verwenden, müssen manuell auf das NuGet-Paket "System.Numerics.Tensors ", Version 9.0.0 oder höher, verweisen. Ohne diesen NuGet-Paketverweis tritt der folgende Laufzeitfehler auf: Could not load file or assembly 'System.Numerics.Tensors, Version=9.0.0.0

Siehe auch