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.
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 :
- API Windows ML. API Windows ML dans l’espace de noms Microsoft.Windows.AI.MachineLearning , telles que la classe ExecutionProviderCatalog et ses méthodes (qui sont des API Windows Runtime).
- API ONNX Runtime. Implémentations Windows ML (dans le package NuGet Microsoft.WindowsAppSDK.ML) de certaines API d'ONNX Runtime (ORT). Pour plus d’informations, consultez la documentation de l’API RUNTIME ONNX. Par exemple, le struct OrtCompileApi. Pour obtenir des exemples de code qui utilisent ces API et d’autres liens vers la documentation, consultez le didacticiel Utiliser Windows ML pour exécuter le didacticiel sur le modèle ResNet-50 .
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.MLetMicrosoft.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