Entraîner un modèle de classification d’images dans Azure à l’aide de Model Builder
Découvrez comment entraîner un modèle de classification d’images dans Azure à l’aide de Model Builder pour catégoriser l’utilisation des terres à partir d’images satellites.
Ce tutoriel vous montre comment créer une bibliothèque de classes C# pour catégoriser l’utilisation des terres en fonction d’images satellites avec Model Builder.
Dans ce tutoriel, vous allez :
- Préparer et comprendre les données
- Créer un fichier config Model Builder
- Choisir un scénario
- Chargement des données
- Créer une expérience dans Azure
- Effectuer l’apprentissage du modèle
- Évaluer le modèle
- Consommer le modèle
Prérequis
- Pour obtenir la liste des prérequis et les instructions d’installation, consultez le Guide d’installation de Model Builder.
- Compte Azure. Si vous n’en avez pas, créez un compte Azure gratuit.
- Charge de travail Développement web et ASP.NET.
Vue d’ensemble de la classification d’images Model Builder
Cet exemple crée une bibliothèque de classes C# qui classe l’utilisation des terres à partir d’images satellites cartographiques à l’aide d’un modèle Deep Learning entraîné sur Azure avec Model Builder. Le code source de ce tutoriel est disponible dans le dépôt GitHub dotnet/machinelearning-samples.
Créer une bibliothèque de classes C#
Créez une bibliothèque de classes C# appelée « LandUse ».
Préparer et comprendre les données
Notes
Les données de ce tutoriel proviennent de :
- Eurosat : un nouveau jeu de données et un point de référence Deep Learning pour l’utilisation des sols et la classification de la couverture terrestre. Patrick Helber, Benjamin Bischke, Andreas Dengel, Damian Borth. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2019.
- Présentation d’Eurosat : un nouveau jeu de données et un point de référence Deep Learning pour l’utilisation des sols et la classification de la couverture terrestre. Patrick Helber, Benjamin Bischke, Andreas Dengel. 2018 IEEE International Geoscience and Remote Sensing Symposium, 2018.
Le jeu de données EuroSAT contient une collection d’images satellites divisées en dix catégories (rurales, industrielles, fluviales, etc.). Le jeu de données d’origine contient 27 000 images. Pour des raisons pratiques, ce tutoriel n’utilise que 2 000 de ces images.
- Téléchargez le sous-ensemble du jeu de données EuroSAT et enregistrez-le sur votre ordinateur.
- Décompressez-le.
Créer un fichier config Model Builder
La première fois que vous ajoutez Model Builder à la solution, il vous invite à créer un fichier mbconfig
. Le fichier mbconfig
effectue le suivi de toutes les opérations que vous effectuez dans Model Builder pour vous permettre de rouvrir la session.
- Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet LandUse, puis sélectionnez Ajouter > Modèle Machine Learning....
- Dans la boîte de dialogue, nommez le projet Model Builder LandUse, puis cliquez sur Ajouter.
Choisir un scénario
Pour entraîner votre modèle, vous devez sélectionner dans la liste des scénarios Machine Learning disponibles fournis par Model Builder.
Pour cet exemple, la tâche est la classification d’images. Dans l’étape Scénario de l’outil Model Builder, sélectionnez le scénario Classification d’images.
Sélectionner un environnement
Model Builder peut exécuter l’entraînement sur différents environnements en fonction du scénario sélectionné.
Sélectionnez Azure comme environnement, puis cliquez sur le bouton Configurer l’espace de travail.
Créer une expérience dans Azure
Une expérience Azure Machine Learning est une ressource qui doit être créée avant d’exécuter l’entraînement Model Builder sur Azure.
L’expérience encapsule la configuration et les résultats d’une ou plusieurs exécutions d’entraînement Machine Learning. Les expériences appartiennent à un espace de travail spécifique. La première fois qu’une expérience est créée, son nom est inscrit dans l’espace de travail. Si le même nom d’expérience est utilisé, toutes les exécutions suivantes sont enregistrées dans le cadre de la même expérience. Sinon, une nouvelle expérience est créée.
Dans la boîte de dialogue Créer une expérience, choisissez votre abonnement dans la liste déroulante Abonnement.
Créer un espace de travail
Un espace de travail est une ressource Azure Machine Learning qui fournit un emplacement central pour l’ensemble des ressources et artefacts Azure Machine Learning créés dans le cadre d’une exécution d’entraînement.
Dans la boîte de dialogue Créer une expérience, sélectionnez le lien Nouveau en regard de la liste déroulante Nom de l’espace de travail Machine Learning.
Dans la boîte de dialogue Créer un espace de travail, tapez « landuse-wkspc » dans la zone de texte Nom de l’espace de travail Machine Learning.
Choisissez USA Est dans la liste déroulante Régions. Une région est l’emplacement géographique du centre de données dans lequel votre espace de travail et vos ressources sont déployés. Il est recommandé de choisir un emplacement proche de l’endroit où vous ou vos clients vous trouvez.
Sélectionnez le lien Nouveau en regard de la liste déroulante Groupes de ressources.
- Dans la boîte de dialogue Créer un groupe de ressources, tapez « landuse-rg » dans la zone de texte Nom du groupe de ressources.
- Sélectionnez OK.
Choisissez votre groupe de ressources nouvellement créé dans la liste déroulante Groupes de ressources.
Sélectionnez Create (Créer).
Le processus de provisionnement prend quelques minutes. Une demande est envoyée à Azure pour provisionner les ressources cloud suivantes :
- Espace de travail Azure Machine Learning
- Compte Stockage Azure
- Azure Application Insights
- Azure Container Registry
- Azure Key Vault
Une fois le processus de provisionnement terminé, choisissez votre espace de travail nouvellement créé dans la liste déroulante Nom de l’espace de travail Machine Learning dans la boîte de dialogue Créer une expérience.
Créer une capacité de calcul
Un calcul Azure Machine Learning est une machine virtuelle Linux basée sur le cloud utilisée pour l’entraînement.
- Dans la boîte de dialogue Créer une expérience, sélectionnez le lien Nouveau en regard de la liste déroulante Nom du calcul.
- Dans la boîte de dialogue Créer un nouveau calcul, tapez « landuse-cpt » dans la zone de texte Nom du calcul.
- Choisissez Standard_NC24 dans la liste déroulante Taille de calcul. Model Builder utilise des types de calcul optimisés pour les GPU. Pour plus d’informations sur les types de calcul optimisés pour les GPU, consultez la documentation sur les machines virtuelles Linux de la série NC.
- Sélectionnez Create (Créer). Le provisionnement des ressources de calcul peut prendre quelques minutes.
- Une fois le processus de provisionnement terminé, choisissez votre espace de travail nouvellement créé dans la liste déroulante Nom du calcul dans la boîte de dialogue Créer une expérience.
- Sélectionnez le bouton Étape suivante pour charger les données.
Chargement des données
- Dans l’étape Données de l’outil Model Builder, sélectionnez le bouton en regard de la zone de texte Sélectionner un dossier.
- Utilisez l’Explorateur de fichiers pour parcourir et sélectionner le répertoire décompressé contenant les images.
- Sélectionnez le bouton Étape suivante pour passer à l’étape suivante dans l’outil Model Builder.
Effectuer l’apprentissage du modèle
L’entraînement sur Azure est disponible uniquement pour le scénario de classification d’images Model Builder. L’algorithme utilisé pour entraîner ces modèles est un réseau neuronal profond basé sur l’architecture ResNet50. Pendant le processus d’entraînement du modèle, Model Builder entraîne des modèles distincts en utilisant des paramètres et un algorithme ResNet50 pour trouver le modèle le plus performant pour votre jeu de données.
Démarrer l’entraînement
Une fois que vous avez configuré votre espace de travail et votre type de calcul, il est temps de terminer la création de l’expérience et de commencer l’entraînement.
Cliquez sur le bouton Démarrer l’entraînement.
Le processus d’entraînement prend un certain temps et la durée peut varier en fonction de la taille de calcul sélectionnée ainsi que de la quantité de données. La première fois qu’un modèle est entraîné, vous pouvez vous attendre à un temps d’entraînement légèrement plus long, car les ressources doivent être provisionnées. Vous pouvez suivre la progression de vos exécutions en sélectionnant le lien Surveiller l’exécution actuelle dans le Portail Azure dans Visual Studio.
Tout au long du processus d’entraînement, des données sur la progression s’affichent dans la section Progression de l’étape d’entraînement.
- Le champ État affiche l’état d’achèvement du processus d’entraînement.
- Le champ Meilleure précision affiche la précision du modèle le plus performant trouvé jusqu’à présent 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.
- Le champ Algorithme affiche le nom de l’algorithme le plus performant trouvé jusqu’à présent par Model Builder.
Une fois l’entraînement terminé, sélectionnez le bouton Étape suivante pour passer à l’évaluation du modèle.
Évaluer le modèle
Le résultat de l’étape d’entraînement est le modèle qui a eu les meilleures performances. Dans l’étape d’évaluation de l’outil Model Builder, l’onglet Détails de la section Sortie contient l’algorithme utilisé par le modèle le plus performant dans l’entrée Algorithme, ainsi que les métriques de l’entrée Précision dans les détails Meilleur modèle.
Si vous n’êtes pas satisfait de vos métriques de précision, un moyen facile pour améliorer la précision du modèle consiste à utiliser plus de données ou à augmenter les données existantes. Sinon, sélectionnez le bouton Étape suivante pour passer à l’étape suivante dans l’outil Model Builder.
(Facultatif) Consommer le modèle
Cette étape aura des modèles de projet que vous pouvez utiliser pour utiliser le modèle. Cette étape est facultative et vous pouvez choisir la méthode qui correspond le mieux à vos besoins sur la façon de servir le modèle.
- Application console
- API Web
Application console
Lorsque vous ajoutez une application console à votre solution, vous êtes invité à nommer le projet.
Nommez le projet console LandUse_Console.
Cliquez sur Ajouter à la solution pour ajouter le projet à votre solution actuelle.
Exécutez l’application.
La sortie générée par le programme doit se présenter comme l’extrait de code ci-dessous :
Predicted Label value: AnnualCrop Predicted Label scores: [0.9941197,3.3146807E-06,4.4344174E-06,0.000101028825,7.763133E-06,0.0015898133,0.0040994748,1.6308518E-06,6.265567E-05,1.0236401E-05]
API Web
Lorsque vous ajoutez une API web à votre solution, vous êtes invité à nommer le projet.
Nommez le projet d’API web LandUse_API.
Cliquez sur Ajouter à la solution pour ajouter le projet à votre solution actuelle.
Exécutez l’application.
Ouvrez PowerShell et entrez le code suivant, où PORT est le port d’écoute de votre application.
$body = @{ ImageSource = <Image location on your local machine> } Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
Si elle réussit, la sortie doit ressembler au texte ci-dessous.
output1 prediction score ------- ---------- ----- {9.508701, -3.1025503, -2.8115153, 0.31449434...} AnnualCrop {0.9941197, 3.3146807E-06, 4.4344174E-06, 0.00010102882...
Nettoyer les ressources
Si vous n’envisagez plus d’utiliser les ressources Azure que vous avez créées, supprimez-les. Cela vous évite d’être facturé pour des ressources inutilisées qui sont toujours en cours d’exécution.
- Accédez au Portail Azure et sélectionnez Groupes de ressources dans le menu du portail.
- Dans la liste des groupes de ressources, sélectionnez le groupe de ressources que vous avez créé. Dans ce cas, il s’agit de « landuse-rg ».
- Sélectionnez Supprimer le groupe de ressources.
- Tapez le nom du groupe de ressources« landuse-rg » dans la zone de texte, puis sélectionnez Entrée.
Étapes suivantes
Dans ce tutoriel, vous avez appris à effectuer les opérations suivantes :
- Préparer et comprendre les données
- Créer un fichier config Model Builder
- Choisir un scénario
- Chargement des données
- Créer une expérience dans Azure
- Effectuer l’apprentissage du modèle
- Évaluer le modèle
- Consommer le modèle
Essayez l’un des autres scénarios Model Builder :