Integrieren eines Modells in Ihre App mit Windows ML
In diesem Leitfaden wird erläutert, wie Sie die Windows ML-APIs verwenden, um ein Modell in Ihre Windows-App zu integrieren. Wenn Sie den automatischen Codegenerator von Windows ML verwenden möchten, können Sie sich auch mlgen ansehen.
Wichtige APIs: Windows.AI.MachineLearning
Im Folgenden werden die grundlegenden Bausteine von Windows ML beschrieben:
- Modelle
- Sitzungen
- Geräte
- Bindungen
Sie verwenden diese, um Ihre Modelle mit Windows ML zu laden, zu binden und auszuwerten.
Außerdem wird empfohlen, sich unsere Beispiel-Apps auf GitHub anzusehen, um die End-to-End-Codebeispiele für Windows ML kennenzulernen.
Das folgende Video zeigt diese APIs in einer kurzen Demo in Aktion.
Verwenden von WinML-APIs in C++
Obwohl die WinML-APIs sowohl in C++/CX als auch in C++/WinRT verfügbar sind, empfehlen wir die C++/WinRT-Version zu verwenden, da sie eine natürlichere C++-Codierung ermöglicht und der Schwerpunkt der zukünftigen Entwicklung auf dieser Version liegt. Zur Verwendung der C++/WinRT-APIs können Sie die folgenden, auf Ihre spezielle Situation bezogenen Anweisungen befolgen:
- Wenn Sie auf Windows 1803 oder früher abzielen, lesen Sie Tutorial: Portieren einer vorhandenen WinML-Anwendung in ein NuGet-Paket.
- Wenn Sie eine neue C++-Anwendung erstellen, werfen Sie einen Blick auf das Tutorial: Erstellen einer Windows Machine Learning-Desktopanwendung (C++) und befolgen Sie die darin beschriebenen Schritte zum Laden des Modells.
- Wenn Sie über eine vorhandene C++-Anwendung verfügen (die nicht bereits für C++/WinRT eingerichtet ist), führen Sie die folgenden Schritte aus, um Ihre Anwendung für C++/WinRT einzurichten:
- Stellen Sie sicher, dass Sie die neueste Version von Visual Studio 2019 installiert haben (beliebige Edition).
- Stellen Sie sicher, dass Sie über das SDK für Windows 10, Version 1803 oder höher, verfügen.
- Laden Sie die aktuelle Version der C++/WinRT Visual Studio-Erweiterung (VSIX) von Visual Studio Marketplace herunter, und installieren Sie sie.
- Fügen Sie der .vcxproj-Datei des Projekts die
<CppWinRTEnabled>true</CppWinRTEnabled>
-Eigenschaft hinzu:<Project ...> <PropertyGroup Label="Globals"> <CppWinRTEnabled>true</CppWinRTEnabled> ...
- C++/WinRT erfordert Funktionen aus dem C++17-Standard. Legen Sie daher in Ihren Projekteigenschaften C/C++ > Sprache > C++-Sprachstandard > ISO C++17-Standard (/std:c++17) fest.
- Legen Sie in den Projekteigenschaften Konformitätsmodus: Ja (/permissive-) fest.
- Eine weitere zu beachtende Projekteigenschaft ist C/C++ > Allgemein > Warnungen als Fehler behandeln. Legen Sie diese Eigenschaft wie gewünscht auf Ja (/WX) oder Nein (/WX-) fest. Manchmal generieren vom cppwinrt.exe-Tool erzeugte Quelldateien Warnungen, bis Sie ihnen Ihre Implementierung hinzufügen.
- Mit VSIX erhalten Sie außerdem eine systemeigene Visual Studio-Visualisierung (natvis) von projizierten C++/WinRT-Typen, die eine Erfahrung wie beim C#-Debuggen bereitstellt. Natvis ist für Debugbuilds automatisch. Sie können die Releasebuilds von natvis verwenden, indem Sie das Symbol WINRT_NATVIS definieren.
- Ihr Projekt sollte jetzt für C++/WinRT eingerichtet sein. Weitere Informationen finden Sie unter C++/WinRT.
Zugehörige Themen
Hinweis
Verwende die folgenden Ressourcen, wenn du Hilfe mit Windows ML benötigst:
- Wenn du technische Fragen zu Windows ML stellen oder beantworten möchtest, verwende das Tag windows-machine-learning auf Stack Overflow.
- Wenn du einen Fehler melden möchtest, erstelle eine Anfrage auf GitHub.