Modifier

Partager via


FAQ (Forum aux questions)

Cette page contient des réponses aux questions les plus populaires de la communauté sur Windows ML.

Comment savoir si le modèle ONNX que j’ai exécuté avec Windows ML ?

Le moyen le plus simple de vérifier si votre modèle s’exécutera avec Windows ML consiste à utiliser l’outil WinML Model Runner. Vous pouvez également vérifier versions ONNX et windows pour plus d’informations sur toutes les versions ONNX prises en charge pour une version Windows donnée.

Comment convertir un modèle d’un autre format en ONNX ?

Vous pouvez utiliser WinMLTools pour convertir des modèles de plusieurs formats différents, tels qu’Apple CoreML et scikit-learn, en ONNX.

J’obtiens des erreurs lors de la tentative d’exportation et/ou de conversion de mon modèle en ONNX, indiquant que mon modèle a des « opérateurs non pris en charge ». Que dois-je faire ?

Certains opérateurs de l’infrastructure de formation native peuvent ne pas être actuellement pris en charge par une version ONNX. Tout d’abord, nous vous recommandons de vérifier versions ONNX prises en charge pour votrede build Windows cible et d’essayer de convertir votre modèle en version maximale prise en charge. Les versions ultérieures d’ONNX incluent la prise en charge d’un plus grand ensemble d’opérateurs par rapport aux versions précédentes.

Si vous continuez à rencontrer des problèmes, nous vous recommandons de travailler avec votre équipe de science des données pour essayer d’éviter les opérateurs non pris en charge. L’une des approches recommandées consiste à modifier l’architecture du modèle dans l’infrastructure source et à tenter de convertir/exporter le modèle vers la version ONNX cible. Notez que vous n’avez pas encore besoin de réentraîner le modèle : vous pouvez tenter de convertir l’architecture et, si elle réussit, vous pouvez passer à la réentraînation complète de votre modèle.

Pourquoi ne puis-je pas charger un modèle ?

Il existe plusieurs raisons pour lesquelles vous risquez d’avoir des difficultés à charger un modèle, mais l’une des raisons les plus courantes lors du développement sur UWP est due aux restrictions d’accès aux fichiers. Par défaut, les applications UWP peuvent uniquement accéder à certaines parties du système de fichiers et exiger des autorisations utilisateur ou des fonctionnalités supplémentaires pour accéder à d’autres emplacements. Pour plus d’informations, consultez autorisations d’accès aux fichiers.

Quelle version de WinMLTools dois-je utiliser ?

Nous vous recommandons toujours de télécharger et d’installer la dernière version du package winmltools. Vous pouvez ainsi créer des modèles ONNX qui ciblent les dernières versions de Windows.

Puis-je utiliser onnxmltools au lieu de winmltools ?

Oui, vous pouvez, mais vous devez vous assurer d’installer la version correcte de onnxmltools afin de cibler ONNX v1.2.2, qui est la version MINIMALE d’ONNX prise en charge par Windows ML. Si vous ne savez pas quelle version installer, nous vous recommandons d’installer la dernière version de winmltools à la place. Vous serez ainsi en mesure de cibler la version ONNX prise en charge par Windows.

Quelle version de Visual Studio dois-je utiliser pour obtenir la génération automatique de code (mlgen) ?

La version minimale recommandée de Visual Studio avec prise en charge de mlgen est 15.8.7. Dans Windows 10, version 1903 et ultérieure, mlgen n’est plus inclus dans le Kit de développement logiciel (SDK), vous devrez donc télécharger et installer l’extension. Il existe un pour Visual Studio 2017 et un pour Visual Studio 2019.

J’obtiens un message d’erreur lors de la tentative d’exécution de mlgen et aucun code n’est généré. Qu’est-ce qui pourrait se passer ?

Les deux erreurs les plus courantes lors de la tentative d’exécution de mlgen sont les suivantes :

  • 'attribut obligatoire 'consumed_inputs' est manquant: si vous rencontrez ce message d’erreur, vous essayez probablement d’exécuter un modèle ONNX v1.2 avec une version du Kit de développement logiciel (SDK) Windows 10 antérieure à 17763 ; nous vous recommandons de vérifier votre version du Kit de développement logiciel (SDK) et de la mettre à jour vers la version 17763 ou ultérieure.
  • Erreur de type : Type (map(string,tensor(float)) d’arg de sortie (perte) de nœud (ZipMap) ne correspond pas au type attendu...: Si vous rencontrez cette erreur, votre modèle ONNX est probablement une version antérieure à celle acceptée par WinML à partir de la build 17763. Nous vous recommandons de mettre à jour votre package de convertisseur vers la dernière version disponible et de reconvertir votre modèle vers la version 1.2 d’ONNX.

Qu’est-ce que WinML s’exécute par défaut ?

Si vous ne spécifiez pas d’appareil à exécuter avec LearningModelDeviceKind, ou si vous utilisez LearningModelDeviceKind.Default, le système décidera quel appareil évaluera le modèle. Il s’agit généralement du processeur. Pour exécuter WinML sur le GPU, spécifiez l’une des valeurs suivantes lors de la création de l'LearningModelDevice:

  • LearningModelDeviceKind.DirectX
  • LearningModelDeviceKind.DirectXHighPerformance
  • LearningModelDeviceKind.DirectXMinPower

Note

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.