Windows Machine Learning ist eine leistungsstarke API für maschinelles Lernen, die von ONNX-Laufzeit und DirectML betrieben wird.
Die Windows ML-API ist eine Windows-Laufzeitkomponente und für leistungsstarke Anwendungen mit geringem Latenz wie Frameworks, Spielen und andere Echtzeitanwendungen sowie für Anwendungen mit hoher Ebene geeignet.
Dieses Repo enthält Proben und Tools für maschinelles Lernen von Windows, die zeigen, wie Szenarien für maschinelles Lernen in Windows -Anwendungen erstellt werden.
Weitere Informationen zu Windows ML, einschließlich Schritt-für-Schritt-Tutorials und Anleitungen, besuchen Sie die Windows ML-Dokumentation.
| Beispiel/Werkzeug | Status |
|---|---|
| Alle Proben | |
| Winmlrunner | |
| Winml Dashboard |
Voraussetzungen
Windows ML bietet maschinelles Lernen über das Inbox Windows SDK sowie ein umverteilbares Nuget -Paket. Die folgende Tabelle zeigt die Verfügbarkeit, Verbreitung, Sprachunterstützung, Wartung und Vorwärtskompatibilitätsaspekte des In-Box- und Nuget-Pakets für Windows ML.
| In-Box | Nuget | |
|---|---|---|
| Verfügbarkeit | Windows 10 - Build 17763 (RS5) oder neuer Weitere detaillierte Informationen zum Versionsunterstützung finden Sie in unseren Dokumenten. | Windows 8.1 oder neuer HINWEIS : Einige APIs (dh: VideoFrame) sind bei älteren Osen nicht verfügbar. |
| Windows SDK | Windows SDK - Build 17763 (RS5) oder neuer | Windows SDK - Build 17763 (RS5) oder neuer |
| Verteilung | In Fenster eingebaut | Paket und verteilen Sie als Teil Ihrer Anwendung |
| Wartung | Microsoft-Driven (Kunden profitieren automatisch) | Entwicklergetrieben |
| Nach vorne | Die Kompatibilität rollt automatisch mit neuen Funktionen voran | Der Entwickler muss das Paket manuell aktualisieren |
Erfahren Sie hier mehr.
In diesem Abschnitt finden Sie verschiedene Modellmuster für eine Vielzahl von Szenarien in den verschiedenen Windows -ML -API -Angeboten.
Bildklassifizierung
Eine Subdomain des Computer Vision, in dem ein Algorithmus ein Bild betrachtet und es ein Tag aus einer Sammlung vordefinierter Tags oder Kategorien zuweist, auf denen es trainiert wurde.
| Windows -App -Typ Verteilung | UWP In-Box | UWP Nuget | Desktop In-Box | Desktop Nuget |
|---|---|---|---|---|
| Alexnet | ✔️C# .NET5 - Mustergalerie | |||
| Kaffeet | ✔️C# .NET5 - Mustergalerie | |||
| Densenet | ✔️C# .NET5 - Mustergalerie | |||
| EffizientesNetz | ✔️C# .NET5 - Mustergalerie | |||
| Googlenet | ✔️C# .NET5 - Mustergalerie | |||
| Inceptionv1 | ✔️C# .NET5 - Mustergalerie | |||
| Inceptionv2 | ✔️C# .NET5 - Mustergalerie | |||
| MNIST | ✔️C ++/CX ✔️C# | |||
| Mobilenetv2 | ✔️C# .NET5 - Mustergalerie | |||
| Rcnn | ✔️C# .NET5 - Mustergalerie | |||
| Resnet50 | ✔️C# .NET5 - Mustergalerie | |||
| SHUFFLENETV1 | ✔️C# .NET5 - Mustergalerie | |||
| SHUFFLENETV2 | ✔️C# .NET5 - Mustergalerie | |||
| Squeezenet | ✔️C# ✔️JavaScript | ✔️C ++/Winrt ✔️C# .NET5 ✔️C# .NET CORE 2 | ✔️C ++/Winrt ✔️C# .NET5 - Mustergalerie ✔️ Schuss | |
| VGG19 | ✔️C# .NET5 - Mustergalerie | |||
| VGG19BN | ✔️C# .NET5 - Mustergalerie | |||
| Zfnet512 | ✔️C# .NET5 - Mustergalerie |
Stilübertragung
Eine Computer -Vision -Technik, die es uns ermöglicht, den Inhalt eines Bildes im Stil eines anderen neu zu komponieren.
| Windows -App -Typ Verteilung | UWP In-Box | UWP Nuget | Desktop In-Box | Desktop Nuget |
|---|---|---|---|---|
| Fnscandy | ✔️C# - FNS -Stilübertragung ✔️C# - Echtzeit -Stilübertragung |
Diese erweiterten Proben zeigen, wie verschiedene Bindungs- und Bewertungsfunktionen in Windows ML verwendet werden:
Benutzerdefinierte Tensorisierung : Eine Windows -Konsolenanwendung (C ++/WinRT), die zeigt, wie benutzerdefinierte Tensorisierung durchführt.
Benutzerdefinierte Operator (CPU) : Eine Desktop -App, die mehrere benutzerdefinierte CPU -Operatoren definiert. Eines davon ist ein Debug -Betreiber, den wir Sie einladen, sich in Ihren eigenen Workflow zu integrieren.
Adapterauswahl : Eine Desktop -App, die demonstriert, wie Sie einen bestimmten Geräteadapter für das Ausführen Ihres Modells auswählen.
Flugzeugkennung : Eine UWP -App und eine WPF -App, die mit der Desktop -Brücke verpackt ist und dasselbe Modell mit Azure Custom Vision Service ausgebildet wird. Für Schritt-für-Schritt-Anweisungen für dieses Beispiel finden Sie im Blog-Beitrag Ihre WinML-Anwendung auf die neuesten Bits.
Benutzerdefinierte Vision und Windows ML : Das Tutorial zeigt, wie Sie ein neuronales Netzwerkmodell trainieren, um Bilder von Lebensmitteln mithilfe von Azure Custom Vision Service zu klassifizieren, das Modell in das ONNX -Format zu exportieren und das Modell in einer Windows -Anwendung für maschinelles Lernen auf dem Windows -Gerät bereitzustellen.
ML.NET und Windows ML : Dieses Tutorial zeigt, wie Sie ein neuronales Netzwerkmodell für die Klassifizierung von Bildern von Lebensmitteln mithilfe von ML.NET -Modellbuilder, das Modell in das ONNX -Format exportieren und das Modell in einer lokal ausgeführten Windows -Lernanwendung ausführen, ausführen ein Windows -Gerät.
Pytorch -Datenanalyse : Das Tutorial zeigt, wie eine Klassifizierungsaufgabe mit einem neuronalen Netzwerk mithilfe der Pytorch -Bibliothek gelöst, das Modell in das ONNX -Format exportiert und das Modell mit der Windows Machine Learning -Anwendung bereitstellt, die auf jedem Windows -Gerät ausgeführt werden kann.
Pytorch -Bildklassifizierung : Das Tutorial zeigt, wie ein Bildklassifizierungsmodell mit PyTorch trainiert, das Modell in das ONNX -Format exportiert und es in einer Windows Machine Learning -Anwendung bereitstellt, die lokal auf Ihrem Windows -Gerät ausgeführt wird.
YOLOV4 -Objekterkennung : Dieses Tutorial zeigt, wie Sie eine UWP C# -App erstellen, die das Yolov4 -Modell verwendet, um Objekte in Video -Streams zu erkennen.
Modellumwandlung
Windows ML bietet Ausführungsfunktionen, die von der ONNX -Laufzeit -Engine betrieben werden. Daher müssen alle in Windows ML ausgeführten Modelle in das ONNX -Modellformat konvertiert werden. Modelle, die in Quell -Frameworks wie Tensorflow oder Pytorch gebaut und trainiert wurden, müssen in ONNX umgewandelt werden. Schauen Sie sich die Dokumentation an, um in ein ONNX -Modell zu konvertieren:
Modelloptimierung
Modelle benötigen möglicherweise weitere Optimierungen angewendet, um erweiterte Funktionen wie Batching und Quantisierung zu unterstützen. Schauen Sie sich die folgenden Tools zur Optimierung Ihres Modells an:
WinML Dashboard (Vorschau) : Ein GUI-basiertes Tool zum Anzeigen, Bearbeiten, Konvertieren und Validieren von Modellen für maschinelles Lernen für Windows ML Inference Engine. Dieses Tool kann verwendet werden, um freie Abmessungen für Modelle zu aktivieren, die mit festen Abmessungen erstellt wurden. Preview -Version herunterladen
Diagrammoptimierungen: Graph-Optimierungen sind im Wesentlichen Transformationen auf Grafikebene, die von kleinen Diagrammverbindungen und Knoten-Eliminierungen bis hin zu komplexeren Knotenfusionen und Layout-Optimierungen reichen.
Graph Quantisierung : Quantisierung in ONNX -Laufzeit bezieht sich auf eine lineare Quantisierung eines ONNX -Modells von 8 -Bit.
Modellvalidierung
Winmlrunner : Ein Befehlszeilen-Tool, das .Annx- oder .pb-Modelle ausgeführt werden kann, wobei die Eingangs- und Ausgangsvariablen Tensoren oder Bilder sind. Es ist ein sehr praktisches Werkzeug, um ein ONNX -Modell schnell zu validieren. Es wird versucht, ein Modell zu laden, zu binden und zu bewerten und hilfreiche Nachrichten auszudrucken. Es erfasst auch Leistungsmessungen.
Laden Sie x64 exe herunter
Modellintegration
WinML -Codegenerator (MLGen) : Eine Visual Studio -Erweiterung, mit der Sie mit der Verwendung von WinML -APIs für UWP -Apps beginnen können, indem Sie einen Vorlagencode generieren, wenn Sie eine geschulte ONNX -Datei in das UWP -Projekt hinzufügen. Aus dem Vorlagencode können Sie ein Modell laden, eine Sitzung erstellen, Eingänge binden und mit Wrapper -Codes bewerten. Weitere Informationen finden Sie unter Dokumente.
Download für VS 2017, VS 2019
WinML -Beispielgalerie: Erkunden Sie eine Vielzahl von ML -Integrationsszenarien und -modellen.
Schauen Sie sich die Modellmuster und erweiterte Szenario -Beispiele an, um zu erfahren, wie Sie Windows ML in Ihrer Anwendung verwenden.
Wir sind immer auf der Suche nach Ihrer Hilfe, um Fehler zu beheben und die Samples zu verbessern. Erstellen Sie eine Pull -Anfrage und wir werden gerne einen Blick darauf werfen.
Dieses Projekt hat den Microsoft Open Source -Verhaltenscode übernommen. Weitere Informationen finden Sie im FAQ oder wenden Sie sich an [email protected] mit zusätzlichen Fragen oder Kommentaren.