API de Windows ML

Pour obtenir des conseils conceptuels, consultez Exécuter des modèles ONNX avec Windows ML).

Vous pouvez considérer les API dans le package NuGet Microsoft.WindowsAppSDK.ML comme étant le super-ensemble de ces deux ensembles :

Package NuGet Microsoft.WindowsAppSDK.ML

Le runtime Microsoft Windows ML fournit des API pour les opérations machine learning et IA dans les applications Windows. Le package NuGet Microsoft.WindowsAppSDK.ML fournit les fichiers runtime .winmd Windows ML à utiliser dans les projets C# et C++.

Les wheels Python pywinrt

Le runtime Microsoft Windows ML tire parti du projet pywinrt pour fournir à Python l’accès aux mêmes API Windows ML. Le nom du package est winui3-Microsoft.Windows.AI.MachineLearning. Des packages supplémentaires sont nécessaires pour utiliser le Kit de développement logiciel (SDK) d’application Windows en Python. Pour plus d’informations, consultez la rubrique Exécuter des modèles ONNX avec Windows ML .

API de Windows ML

Pour obtenir de la documentation de référence sur l’API et des exemples de code, consultez l’espace de noms Microsoft.Windows.AI.MachineLearning .

Remarques relatives à l’implémentation

Le runtime Windows ML est intégré au SDK d’application Windows et s’appuie sur ses mécanismes de déploiement et de démarrage :

  • Détecte automatiquement les fournisseurs d’exécution compatibles avec le matériel actuel
  • Gère la durée de vie et les mises à jour des packages
  • Gère l’inscription et l’activation du package
  • Prend en charge différentes versions des fournisseurs d’exécution

Déploiement dépendant de l’infrastructure

Windows ML est fourni en tant que composant dépendant de l’infrastructure . Cela signifie que votre application doit :

  • Référencez le package NuGet du Kit de développement logiciel (SDK) d’application Windows principal en ajoutant une référence à Microsoft.WindowsAppSDK (recommandé)
  • Ou, référencez à la fois Microsoft.WindowsAppSDK.ML et Microsoft.WindowsAppSDK.Runtime

Pour plus d’informations sur le déploiement d’applications Windows App SDK, consultez la documentation package et déploiement d’applications Windows .

Utilisation d’ONNX Runtime avec Windows ML

Pour les applications C++, après avoir inscrit des fournisseurs d’exécution, utilisez directement l’API C runtime ONNX pour créer des sessions et exécuter l’inférence.

Pour les applications C#, utilisez directement l’environnement ONNX pour l’inférence en utilisant l’espace de noms Microsoft.ML.OnnxRuntime.

Pour les applications Python, utilisez la roue onnxruntime-windowsml d’exécution ONNX pour l’inférence.

Notes Python

Initialiser le Kit de développement logiciel (SDK) d’application Windows

Tous les appels Windows ML doivent se produire après l’initialisation du Kit de développement logiciel (SDK) d’application Windows. Pour ce faire, vous pouvez utiliser le code suivant :

from winui3.microsoft.windows.applicationmodel.dynamicdependency.bootstrap import (
    InitializeOptions,
    initialize
)
with initialize(options = InitializeOptions.ON_NO_MATCH_SHOW_UI):
    # Your Windows ML code here

L’inscription se produit hors de Windows ML

Le runtime ONNX est conçu de manière à séparer les environnements Python et natifs. Et les appels d’inscription natifs dans le même processus ne fonctionnent pas pour l’environnement Python. Ainsi, l’inscription des fournisseurs d’exécution doit être effectuée directement avec l’API Python.

Supprimer le vcruntime empaqueté de pywinrt

Le projet pywinrt inclut un msvcp140.dll dans le package winrt-runtime. Cela peut entrer en conflit avec d’autres packages. Supprimez cette dll pour éviter ce problème et installez les bibliothèques vcruntime manquantes avec le redistribuable vc

Voir aussi