Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
L’API Windows ML Runtime est actuellement expérimentale et n’est pas prise en charge pour une utilisation dans les environnements de production. Les applications qui testent cette API ne doivent pas être publiées sur le Microsoft Store.
Cette rubrique vous montre comment configurer un projet C++ natif pour utiliser l’API Runtime et créer une IWinMLRuntime instance. Continuez à exécuter un modèle avec l’API Windows ML Runtime pour le chargement du modèle, la liaison de tenseurs et l’inférence.
Prerequisites
- Une version de Windows prise en charge par le package
Microsoft.Windows.AI.MachineLearning. Consultez configuration requise pour le déploiement de Windows ML. - Visual Studio 2022 ou version ultérieure avec la charge de travail Desktop development with C++ activée.
- Projet de console C++ natif.
- Version expérimentale
2.7.2021-experimentalde Microsoft.Windows.AI.MachineLearning Package NuGet. - Pour l’exemple de code sur ces pages, C++20 et le package NuGet Microsoft.Windows.CppWinRT.
Note
C++20 et C++/WinRT sont des exigences de ces exemples de documentation, et non de l’API Runtime. L’API Runtime est un ABI de style COM natif qui peut également être consommé à partir de C ou C++ à l’aide de COM brut, WRL, WIL ou un autre helper COM selon les exigences linguistiques de cette application.
La cible d’exécution du processeur est le chemin de référence. La disponibilité du GPU et du NPU dépend de l’appareil, des fonctionnalités de la plateforme et du back-end d’exécution installé pour votre application.
Configurer la restauration NuGet native
Les projets Visual C++ natifs ont besoin d’un identificateur de cible NuGet afin que la restauration des packages sélectionne les ressources Windows natives. Ajoutez ce groupe de propriétés en haut du fichier .vcxproj, avant la première importation Microsoft.Cpp.* :
<PropertyGroup Label="NuGet">
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<NuGetTargetMoniker>native,Version=v0.0</NuGetTargetMoniker>
<NuGetTargetPlatformIdentifier>Windows</NuGetTargetPlatformIdentifier>
<NuGetTargetPlatformVersion>$(WindowsTargetPlatformVersion)</NuGetTargetPlatformVersion>
</PropertyGroup>
Installez le package Microsoft.Windows.AI.MachineLearning à l'aide de Gérer les packages NuGet ou de PackageReference. Pour générer les exemples sur ces pages, installez également Microsoft.Windows.CppWinRT et définissez Norme du langage C++ sur Norme ISO C++20 (/std:c++20). Le package ML Windows fournit les en-têtes Runtime, les bibliothèques d’importation et les DLL autonomes ; C++/WinRT fournit les commodités winrt::com_ptr, winrt::check_hresult et <winrt/base.h> utilisées uniquement par l’exemple de code.
Pour connaître les options de déploiement et de CMake, consultez l’installation autonome.
Initialiser l’environnement d’exécution
Remplacez main.cpp par le code suivant :
// 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;
}
Compilez pour l’architecture qui correspond aux ressources du package, telles que Release|x64. Une génération réussie confirme que la restauration NuGet a trouvé les en-têtes runtime et la bibliothèque d’importation, et copié les DLL requises à côté de l’exécutable.