Partager via


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 parcourir les blocs de construction de base de Windows ML, qui sont :

  • Modèles
  • Séances
  • Dispositifs
  • Liaisons

Vous les utiliserez 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 courte démonstration.


Utilisation des API WinML en C++

Bien que les API WinML soient disponibles dans C++/CX et C++/WinRT, nous vous recommandons d’utiliser la version C++/WinRT, car elle permet un codage C++ plus naturel et où la plupart des efforts de développement seront concentrés à l’avenir. Vous pouvez suivre les instructions ci-dessous relatives à votre situation particulière pour utiliser les API C++/WinRT :

  • Si vous ciblez Windows 1803 ou une version antérieure, consultez Tutoriel : Porter une application WinML existante vers le package NuGet.
  • Si vous créez une application C++, consultez Tutoriel : Créer une application Windows Machine Learning Desktop (C++) et suivre les étapes de chargement du modèle.
  • Si vous disposez d’une application C++ existante (qui n’est pas déjà configurée pour C++/WinRT), procédez comme suit 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. Vérifiez que vous disposez du Kit de développement logiciel (SDK) pour Windows 10, version 1803 ou ultérieure.
    3. Téléchargez et installez l’extension Visual Studio C++/WinRT (VSIX) à partir de Visual Studio Marketplace.
    4. Ajoutez la <CppWinRTEnabled>true</CppWinRTEnabled> propriété au fichier .vcxproj du projet :
      <Project ...>
          <PropertyGroup Label="Globals">
              <CppWinRTEnabled>true</CppWinRTEnabled>
      ...
      
    5. 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++ > ISO C++17 Standard (/std:c++17).
    6. Définir le mode Conformité : Oui (/permissive-) dans les propriétés de votre projet.
    7. Une autre propriété de projet à prendre en compte est C/C++ > Général > Traiter les avertissements comme des erreurs. Définissez cette valeur sur Oui (/WX) ou Non (/WX-) au goût. Parfois, les fichiers sources générés par l’outil cppwinrt.exe génèrent des avertissements jusqu’à ce que vous y ajoutiez votre implémentation.
    8. Le VSIX vous offre également une visualisation native de débogage (natvis) de Visual Studio pour les types projetés C++/WinRT, offrant une expérience de débogage similaire à celle de 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 ou répondre à des questions techniques sur Windows ML, utilisez la balise windows-machine-learning sur Stack Overflow.
  • Pour signaler un bogue, veuillez signaler un problème sur notre GitHub.