Freigeben über


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:
    1. Stellen Sie sicher, dass Sie die neueste Version von Visual Studio 2019 installiert haben (beliebige Edition).
    2. Stellen Sie sicher, dass Sie über das SDK für Windows 10, Version 1803 oder höher, verfügen.
    3. Laden Sie die aktuelle Version der C++/WinRT Visual Studio-Erweiterung (VSIX) von Visual Studio Marketplace herunter, und installieren Sie sie.
    4. Fügen Sie der .vcxproj-Datei des Projekts die <CppWinRTEnabled>true</CppWinRTEnabled>-Eigenschaft hinzu:
      <Project ...>
          <PropertyGroup Label="Globals">
              <CppWinRTEnabled>true</CppWinRTEnabled>
      ...
      
    5. 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.
    6. Legen Sie in den Projekteigenschaften Konformitätsmodus: Ja (/permissive-) fest.
    7. 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.
    8. 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.
    9. Ihr Projekt sollte jetzt für C++/WinRT eingerichtet sein. Weitere Informationen finden Sie unter C++/WinRT.

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.