Intégrer un modèle à votre application avec Windows ML

Dans ce guide, nous allons aborder l’utilisation des API Windows ML pour intégrer un modèle à votre application Windows. Sinon, si vous souhaitez utiliser le générateur de code automatique de Windows ML, consultez mlgen.

API importantes : Windows.AI.MachineLearning

Nous allons passer en revue les composants de base de Windows ML, qui sont les suivants :

  • Modèles
  • Sessions
  • Appareils
  • Liaisons

Vous utiliserez ces composants pour charger, lier et évaluer vos modèles avec Windows ML.

Nous vous recommandons également de consulter nos exemples d’applications sur GitHub pour voir des exemples de code Windows ML de bout en bout.

La vidéo suivante montre ces API en action dans une brève démonstration.


Utilisation des API WinML en C++

Alors que les API WinML sont disponibles en C++/CX et en C++/WinRT, nous vous recommandons d’utiliser la version C++/WinRT, car elle permet une programmation en C++ plus naturelle et c’est sur elle que porteront désormais la plupart des efforts de développement. Vous pouvez suivre les instructions ci-dessous qui s’appliquent à votre situation particulière afin d’utiliser les API C++/WinRT :

  • Si vous ciblez Windows 1803 ou une version antérieure, consultez Tutoriel : transférer une application WinML existante vers le package NuGet.
  • Si vous créez une application C++, consultez Tutoriel : créer une application bureautique Windows Machine Learning (C++) et suivez les étapes pour charger le modèle.
  • Si vous disposez d’une application C++ existante (qui n’est pas déjà configurée pour C++/WinRT), effectuez les étapes suivantes pour configurer votre application pour C++/WinRT :
    1. Vérifiez que la dernière version de Visual Studio 2019 est installée (n’importe quelle édition).
    2. Veillez à disposer du SDK pour Windows 10, version 1803 ou ultérieure.
    3. Téléchargez et installez l’Extension Visual Studio (VSIX) C++/WinRT à partir de Visual Studio Marketplace.
    4. Ajoutez la propriété <CppWinRTEnabled>true</CppWinRTEnabled> au fichier .vcxproj du projet :
      <Project ...>
          <PropertyGroup Label="Globals">
              <CppWinRTEnabled>true</CppWinRTEnabled>
      ...
      
    5. Comme C++/WinRT nécessite des fonctionnalités de la norme C++17, dans les propriétés de votre projet, définissez C/C++ > Langage > Norme du langage C++ > Norme ISO C++17 (/std:c++17).
    6. Définissez Mode de conformité : Oui (/permissive-) dans les propriétés de votre projet.
    7. Il y a une autre propriété de projet à connaître : C/C++ > Général > Considérer les avertissements comme des erreurs. Définissez cette propriété sur Oui (/WX) ou sur Non (/WX-), à votre convenance. Parfois, les fichiers sources générés par l’outil cppwinrt.exe génèrent des avertissements tant que vous ne leur avez pas ajouté votre implémentation.
    8. VSIX offre également une visualisation de débogage en mode natif (natvis) Visual Studio des types projetés C++/WinRT, fournissant une expérience semblable au débogage C#. Natvis est automatique pour les builds Debug. Vous pouvez choisir ses builds Release en définissant le symbole WINRT_NATVIS.
    9. Votre projet doit maintenant être configuré pour C++/WinRT. Pour plus d’informations, consultez C++/WinRT.

Remarque

Utilisez les ressources suivantes pour obtenir de l’aide sur Windows ML :

  • Pour poser des questions techniques ou apporter des réponses à des questions techniques sur Windows ML, veuillez utiliser le mot clé windows-machine-learning sur Stack Overflow.
  • Pour signaler un bogue, veuillez signaler un problème dans notre plateforme GitHub.