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.
Important
Die Windows ML-Runtime-API ist derzeit experimentell und wird für die Verwendung in Produktionsumgebungen nicht unterstützt. Apps, die diese API ausprobieren, sollten nicht im Microsoft Store veröffentlicht werden.
In diesem Thema erfahren Sie, wie Sie ein systemeigenes C++-Projekt für die Verwendung der Runtime-API konfigurieren und eine IWinMLRuntime Instanz erstellen. Weiter zu Ausführen eines Modells mit der Windows ML-Runtime-API zum Laden, zur Tensorbindung und zur Inferenz.
Prerequisites
- Eine Windows-Version, die vom Paket
Microsoft.Windows.AI.MachineLearningunterstützt wird. Siehe Windows ML-Bereitstellungsanforderungen. - Visual Studio 2022 oder höher mit der Desktopentwicklung mit C++-Workload.
- Ein natives C++-Konsolenprojekt.
- Die experimentelle Version
2.7.2021-experimentaldes Microsoft.Windows.AI.MachineLearning NuGet-Pakets. - Für den Beispielcode auf diesen Seiten werden C++20 und das Microsoft.Windows.CppWinRT NuGet-Paket benötigt.
Note
C++20 und C++/WinRT sind Anforderungen dieser Dokumentationsbeispiele, nicht der Runtime-API. Die Laufzeit-API ist eine systemeigene COM-ABI, die auch von C oder C++ unter Verwendung von rohem COM, WRL, WIL oder einer anderen COM-Hilfskomponente gemäß den Sprachanforderungen dieser App genutzt werden kann.
Das CPU-Ausführungsziel ist der Basispfad. Die GPU- und NPU-Verfügbarkeit hängt von dem Gerät, den Plattformfunktionen und dem für Ihre App installierten Ausführungs-Back-End ab.
Konfigurieren der nativen NuGet-Wiederherstellung
Native Visual C++-Projekte benötigen einen NuGet-Zielmoniker, sodass die Paketwiederherstellung die systemeigenen Windows Ressourcen auswählt. Fügen Sie diese Eigenschaftengruppe am Anfang der .vcxproj Datei vor dem ersten Microsoft.Cpp.* Import hinzu:
<PropertyGroup Label="NuGet">
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<NuGetTargetMoniker>native,Version=v0.0</NuGetTargetMoniker>
<NuGetTargetPlatformIdentifier>Windows</NuGetTargetPlatformIdentifier>
<NuGetTargetPlatformVersion>$(WindowsTargetPlatformVersion)</NuGetTargetPlatformVersion>
</PropertyGroup>
Installieren Sie das Microsoft.Windows.AI.MachineLearning Paket mithilfe von "NuGet-Pakete verwalten " oder PackageReference. Um die Beispiele auf diesen Seiten zu erstellen, installieren Sie Microsoft.Windows.CppWinRT und legen Sie den C++-Sprachstandard auf ISO C++20 Standard (/std:c++20) fest. Das Windows ML-Paket liefert die Runtime-Header, Importbibliotheken und eigenständige DLLs; C++/WinRT stellt die mit winrt::com_ptr, winrt::check_hresult und <winrt/base.h> verbundenen Hilfen bereit, die nur vom Beispielcode verwendet werden.
Informationen zu CMake- und Bereitstellungsoptionen finden Sie unter „In sich geschlossene Installation“.
Runtime initialisieren
Ersetzen Sie den Code main.cpp durch folgenden Code:
// Copyright (C) Microsoft Corporation. All rights reserved.
#include <Windows.h>
#include <winrt/base.h>
#include <WinMLRuntime.h>
#pragma comment(lib, "windowsapp.lib")
int wmain()
{
winrt::com_ptr<IWinMLRuntime> runtime;
winrt::check_hresult(WinMLCreateRuntime(
__uuidof(IWinMLRuntime),
runtime.put_void()));
return 0;
}
Erstellen Sie für die Architektur, die den Paketressourcen entspricht, zum Beispiel Release|x64. Ein erfolgreicher Build bestätigt, dass NuGet die Runtime-Header und die Importbibliothek gefunden und die erforderlichen DLLs neben der ausführbaren Datei kopiert hat.