Former votre modèle avec ML.Net
Dans l’étape précédente de ce tutoriel, nous avons abordé les conditions préalables à la création de vos propres modèle et application Windows Machine Learning, et téléchargé un ensemble d’images à utiliser. Dans cette étape, nous allons apprendre à utiliser le ML.NET Model Builder pour transformer notre ensemble d’images en modèle de classification d’image.
Créer votre projet
- Ouvrez Visual Studio et choisissez « Créer un nouveau projet ».
- Dans la barre de recherche, tapez .NET, sélectionnez C# comme langage et console comme plateforme, puis choisissez le modèle de projet application console C# (.NET Core).
- Dans la fenêtre de configuration :
- Nommez votre projet. Ici, nous l’avons appelé MLNETTraining.
- Choisissez l’emplacement du projet.
- Vérifiez que
Place solution and project in the same directory
n’est pas coché. - Appuyez sur
create
pour créer votre projet.
Configurer Model Builder
À présent, vous allez ajouter Model Builder à notre projet.
- Cliquez avec le bouton droit sur le projet MLNETTraining dans l’Explorateur de solutions, puis sélectionnez
Add > Machine Learning
.
De cette façon, vous ouvrez ML.NET Model Builder dans une nouvelle fenêtre d’outil ancrée dans Visual Studio. Model Builder vous guide tout au long du processus de création d’un modèle d’apprentissage automatique.
La première étape consiste à choisir le scénario approprié. Certains scénarios ne prennent pas en charge le format ONNX.
Si l’environnement de formation est le cloud Azure, les modèles générés sont au format ONNX et peuvent être facilement utilisés par l’application Windows ML sans conversion. Toutefois, si vous décidez de former votre modèle d’apprentissage localement sur votre ordinateur, le modèle généré sera au format ML.NET.
- La formation locale du processeur est prise en charge pour tous les scénarios à l’exception de la détection d’objets.
- La formation GPU locale est prise en charge pour la classification d’images.
- La formation Azure est prise en charge pour la classification d’images et la détection d’objets.
Dans ce tutoriel, vous allez former un modèle de classification d’image dans un environnement de formation Azure. Le modèle de sortie sera au format ONNX. Un compte Azure est requis pour pouvoir effectuer la formation.
Choisissez le scénario de classification d’image.
Sélectionnez Set up workspace (Configurer l’espace de travail) pour configurer votre environnement de formation Azure.
Dans le coin supérieur droit, connectez-vous au compte associé à votre abonnement Azure. Dans le menu ci-dessous :
- Choisissez l’abonnement approprié.
- Sélectionnez et créez un espace de travail Machine Learning.
- Sélectionnez ou créez une nouvelle ressource de calcul.
- Donnez le nom à votre espace de travail : ImageClassificationMLNET.
Important
Si vous ne parvenez pas à créer l’espace de travail d’apprentissage automatique à partir de Model Builder, suivez ces étapes pour créer un espace de travail manuellement à partir de votre Portail Azure. Dans le cas contraire, vous pouvez ignorer l’étape 4.
Dans votre compte Azure, sélectionnez Créer une ressource :
Dans la barre de recherche, recherchez Machine Learning.
Sélectionnez et créez un espace de travail Machine Learning.
Pour créer un nouvel espace de travail, vous allez devoir fournir le nom de votre abonnement, sélectionner ou créer un nouveau groupe de ressources, donner un nom à l’espace de travail et définir tous les paramètres requis tels que la région, le compte de stockage, etc.
Une fois que vous avez établi votre espace de travail et créé un nouvel environnement de formation dans ML.NET, vous pouvez passer à l'étape suivante.
Attendez la fin du déploiement de Machine Learning Services.
L’étape suivante consiste à ajouter les données à Model Builder.
- Accédez à l’emplacement du jeu de données de l’image, puis sélectionnez le dossier de formation avec les catégories de nourriture appropriées. Dans ce didacticiel, vous allez former le modèle pour qu’il reconnaisse le dessert, le potage et le fruit. Ces catégories sont donc inutiles dans notre dossier de jeu de données.
Vous êtes maintenant prêt à passer à la partie formation.
Former votre modèle
Model Builder évalue un grand nombre de modèles avec des algorithmes et des paramètres variables pour vous donner le meilleur modèle d’exécution.
- Sélectionnez Suivant, puis Start Training pour démarrer le processus de formation. Le générateur de modèles ML.NET démarre en chargeant des données dans Azure, prépare l’espace de travail, puis lance le processus de formation.
Une fois la formation terminée, le résumé des résultats de celle-ci apparaît.
Précision plus élevée : affiche la précision du meilleur modèle trouvé par Model Builder. Une précision plus élevée signifie que le modèle a prédit plus correctement sur les données de test. Dans notre cas, le modèle peut prédire le résultat correct avec un taux de confiance de 95,42 %.
Évaluer les résultats
Passez à l’étape suivante pour évaluer les résultats de la formation.
Sélectionnez l’image dans le dossier d’évaluation du jeu de données et explorez la prédiction.
Ajouter le modèle à la solution
ML.NET Model Builder peut ajouter automatiquement à votre solution à la fois le modèle d’apprentissage automatique et les projets de formation et d’utilisation du modèle.
- Accédez à la partie utilisation du processus de formation et vendez Ajouter à la solution. Le modèle généré est alors ajouté à votre dossier de solution.
Dans l’Explorateur de solutions, vous devriez voir les fichiers de code générés par Model Builder, notamment le modèle – bestModel.onnx au format ONNX.
Le modèle formé dans l’environnement Cloud Azure, le modèle généré est au format ONNX.
Explorer votre modèle
Cliquez avec le bouton droit sur bestModel.onnx, puis sélectionnez Ouvrir le dossier conteneur.
Ouvrez votre fichier de modèle à l’aide du programme Netron.
Appuyez sur le nœud input1 pour ouvrir les propriétés du modèle.
Comme vous pouvez le voir, le modèle requiert un objet tenseur float de 32 bits (tableau multidimensionnel) comme entrée et retourne Tensor float en sortie. De la manière dont le modèle a été construit, il ne renvoie pas la chaîne de caractères d'une étiquette prédite mais un tableau de trois nombres, chacun représentant l’étiquette pertinente du type d’aliment. Vous devrez extraire ces valeurs pour afficher la prédiction correcte avec l’application Windows ML.
Étiquette 1 | Étiquette 2 | Étiquette 3 |
---|---|---|
0 | 1 | 2 |
dessert | soupe | Vegetable-Fruit |
Étapes suivantes
Maintenant que vous avez formé votre modèle Machine Learning, vous êtes prêt à le déployer dans une application UWP avec Windows Machine Learning