Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Konzeptionelle Anleitungen finden Sie unter Ausführen von ONNX-Modellen mit Windows ML.For conceptual guidance, see Run ONNX models with Windows ML).
Sie können sich die APIs im Microsoft.WindowsAppSDK.ML NuGet-Paket als Obermenge dieser beiden Gruppen vorstellen:
- Windows ML-APIs. Windows ML-APIs im Microsoft.Windows.AI.MachineLearning-Namespace , z. B. die ExecutionProviderCatalog-Klasse und die zugehörigen Methoden (die Windows-Runtime-APIs sind).
- ONNX-Runtime-APIs. Windows ML-Implementierungen (im Microsoft.WindowsAppSDK.ML NuGet-Paket) bestimmter APIs aus der ONNX-Runtime (ORT). Dokumentation finden Sie in den ONNX-Runtime-API-Dokumenten. Beispiel: die OrtCompileApi-Struktur. Codebeispiele, die diese APIs verwenden, und weitere Links zur Dokumentation finden Sie im Lernprogramm "Verwenden von Windows ML zum Ausführen des ResNet-50-Modelllernprogramms ".
Das Microsoft.WindowsAppSDK.ML NuGet-Paket
Die Microsoft Windows ML-Runtime stellt APIs für maschinelles Lernen und KI-Vorgänge in Windows-Anwendungen bereit. Das Microsoft.WindowsAppSDK.ML NuGet-Paket stellt die Windows ML-Runtime-Dateien .winmd für die Verwendung in C#- und C++-Projekten bereit.
Die pywinrt Python-Wheels
Die Microsoft Windows ML-Runtime nutzt das Pywinrt-Projekt , um Python-Zugriff auf dieselben Windows ML-APIs bereitzustellen. Der Paketname ist winui3-Microsoft.Windows.AI.MachineLearning. Für die Verwendung des Windows App SDK in Python sind zusätzliche Pakete erforderlich. Ausführliche Informationen finden Sie im Thema "Ausführen von ONNX-Modellen mit Windows ML ".
Windows ML-APIs
Api-Referenzdokumentation und Codebeispiele finden Sie im Namespace "Microsoft.Windows.AI.MachineLearning ".
Implementierungshinweise
Die Windows ML-Runtime ist in das Windows App SDK integriert und basiert auf den Bereitstellungs- und Bootstrappingmechanismen:
- Ermittelt automatisch Ausführungsanbieter, die mit aktueller Hardware kompatibel sind.
- Verwaltet die Paketlebensdauer und -updates
- Behandelt die Paketregistrierung und -aktivierung
- Unterstützt verschiedene Versionen von Ausführungsanbietern
Frameworkabhängige Bereitstellung
Windows ML wird als frameworkabhängige Komponente bereitgestellt. Dies bedeutet, dass Ihre App eine der folgenden Aktionen ausführen muss:
- Verweisen Sie auf das Hauptpaket des Windows App SDK NuGet, indem Sie einen Verweis auf
Microsoft.WindowsAppSDK(empfohlen) hinzufügen. - Oder verweisen Sie auf beide
Microsoft.WindowsAppSDK.MLundMicrosoft.WindowsAppSDK.Runtime
Weitere Informationen zum Bereitstellen von Windows App SDK-Anwendungen finden Sie in der Dokumentation zum Verpacken und Bereitstellen von Windows-Apps .
Verwenden der ONNX-Runtime mit Windows ML
Verwenden Sie für C++-Anwendungen nach dem Registrieren von Ausführungsanbietern die ONNX-Runtime-C-API direkt, um Sitzungen zu erstellen und die Ableitung auszuführen.
Verwenden Sie für C#-Anwendungen die ONNX-Runtime direkt für die Ableitung mithilfe des Microsoft.ML.OnnxRuntime Namespaces.
Verwenden Sie für Python-Anwendungen das ONNX-Runtime-Rad onnxruntime-windowsml für die Ableitung.
Python-Notizen
Initialisieren des Windows App SDK
Alle Windows ML-Aufrufe sollten erfolgen, nachdem das Windows App SDK initialisiert wurde. Dies kann mit dem folgenden Code erfolgen:
from winui3.microsoft.windows.applicationmodel.dynamicdependency.bootstrap import (
InitializeOptions,
initialize
)
with initialize(options = InitializeOptions.ON_NO_MATCH_SHOW_UI):
# Your Windows ML code here
Die Registrierung erfolgt außerhalb von Windows ML
Die ONNX-Laufzeit ist so konzipiert, dass die Python- und nativen Umgebungen getrennt sind. Und systemeigene Registrierungsaufrufe im selben Prozess funktionieren für die Python-Umgebung nicht. Daher sollte die Registrierung von Ausführungsanbietern direkt mit der Python-API erfolgen.
Entfernen Sie die eingebettete vcruntime von pywinrt
Das pywinrt-Projekt enthält eine msvcp140.dll im winrt-runtime-Paket. Dies kann mit anderen Paketen in Konflikt geraten. Entfernen Sie diese DLL, um dieses Problem zu vermeiden und installieren Sie die fehlenden vcruntime-Bibliotheken mit der vc redistributable