Freigeben über


Erste Schritte mit Windows Machine Learning

Important

Die neueste Dokumentation zu Windows Machine Learning finden Sie unter "Was ist Windows ML". In dieser Dokumentation werden APIs beschrieben, die sich im Microsoft.Windows.AI.MachineLearning-Namespace befinden, der im Windows App SDK enthalten ist. Diese APIs ersetzen die hier dokumentierten, die sich im Windows.AI.MachineLearning-Namespace befinden und 2018 ausgeliefert wurden.

Es gibt verschiedene Möglichkeiten, Windows Machine Learning in Ihrer App zu verwenden. Im Kern benötigen Sie nur ein paar einfache Schritte.

  1. Rufen Sie ein trainiertes ONNX-Modell (Open Neural Network Exchange) ab, oder konvertieren Sie Modelle, die in anderen ML-Frameworks trainiert wurden, in ONNX mit ONNXMLTools.

  2. Fügen Sie der Anwendung die ONNX-Modelldatei hinzu, oder stellen Sie sie auf dem Zielgerät auf andere Weise zur Verfügung.

  3. Integrieren Sie das Modell in Ihren Anwendungscode, erstellen und stellen Sie die Anwendung bereit.

Schulungsumgebung, Modellreferenz hinzufügen, Anwendung, Windows ML

In-Box- und NuGet WinML-Lösungen

In der folgenden Tabelle werden die Verfügbarkeit, Verteilung, Sprachunterstützung, Wartung und die vorwärtige Kompatibilität des In-Box- und NuGet-Pakets für Windows ML hervorgehoben.

Properties In-Box NuGet
Availability Windows 10, Version 1809 oder höher Windows 8.1 oder höher
Distribution Integriert in das Windows SDK Packen und Verteilen als Teil Ihrer Anwendung
Servicing Microsoft-gesteuert (Kunden profitieren automatisch) Developer-driven
Forward compatibility Automatisches Roll Forward mit neuen Features Entwickler müssen das Paket manuell aktualisieren.

Wenn Ihre Anwendung mit der in-Box-Lösung ausgeführt wird, wertet die Windows ML-Runtime (die das ONNX Model Inference Engine enthält) das trainierte Modell auf dem Windows 10-Gerät aus (oder Windows Server 2019, wenn sie auf eine Serverbereitstellung ausgerichtet ist). Windows ML übernimmt die Hardwareabstraktion, sodass Entwickler auf eine breite Palette von Hardware abzielen können – einschließlich CPUs, GPUs und zukünftig KI-Beschleuniger. Die Windows ML-Hardwarebeschleunigung basiert auf DirectML, einer leistungsstarken API mit niedriger Ebene für die Ausführung von ML-Rückschlüssen, die Teil der DirectX-Familie sind.

Windows ML-Ebenen

Windows ml Nuget-Paket

Für das NuGet-Paket werden diese Ebenen als Binärdateien im folgenden Diagramm angezeigt. Windows ML ist in die „Microsoft.ai.machinelearning.dll“ integriert. Sie enthält keine eingebettete ONNX-Laufzeit, sondern die ONNX-Laufzeit ist in die Datei integriert: onnxruntime.dll. Die in den WindowsAI NuGet-Paketen enthaltene Version enthält ein in ihr eingebettetes DirectML-EP. Die endgültige Binärdatei, DirectML.dll, ist der tatsächliche Plattformcode als DirectML und basiert auf den in Windows integrierten Direct 3D- und Computetreibern. Alle drei dieser Binärdateien sind in den NuGet-Versionen enthalten, die Sie zusammen mit Ihren Anwendungen verteilen können.

Der direkte Zugriff auf die onnxruntime.dll ermöglicht es Ihnen auch, plattformübergreifende Szenarien zu adressieren und gleichzeitig die gleiche hardwareagnostische Beschleunigung zu erhalten, die auf allen Windows-Geräten skaliert wird.

Andere Machine Learning-Lösungen von Microsoft

Microsoft bietet eine Vielzahl von Machine Learning-Lösungen an, die Ihren Anforderungen entsprechen. Diese Lösungen werden in der Cloud, lokal und lokal auf dem Gerät ausgeführt. Weitere Informationen finden Sie unter "Was sind die Produktoptionen für maschinelles Lernen von Microsoft?"

Learn more

Wenn Sie das Windows ML NuGet-Paket verwenden möchten, lesen Sie das Lernprogramm: Portieren einer vorhandenen WinML-App zu NuGet-Paket.

Die neuesten Windows ML-Features und -Fixes finden Sie in unseren Versionshinweisen.

Note

Verwenden Sie die folgenden Ressourcen, wenn Sie Hilfe mit Windows ML benötigen:

  • Wenn Sie technische Fragen zu Windows ML stellen oder beantworten möchten, verwenden Sie das Tag windows-machine-learning auf Stack Overflow.
  • Um einen Fehler zu melden, geben Sie bitte einen Fehlerbericht auf unserem GitHub ab.