Tutoriel : Entraîner un modèle de classification d’images TensorFlow en utilisant l’extension Visual Studio Code de Azure Machine Learning (préversion)

S’APPLIQUE À :Extension Azure CLI ml v2 (version actuelle)

Découvrez comment entraîner un modèle de classification d’images pour reconnaître des chiffres écrits à la main à l’aide de TensorFlow et de l’extension Azure Machine Learning de Visual Studio Code.

Important

Cette fonctionnalité est actuellement disponible en préversion publique. Cette préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge.

Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

Dans ce tutoriel, vous allez apprendre à effectuer les tâches suivantes :

  • Comprendre le code
  • Créer un espace de travail
  • Effectuer l’apprentissage d’un modèle

Prérequis

Comprendre le code

Le code de ce tutoriel utilise TensorFlow pour entraîner un modèle Machine Learning de classification d’images qui classe les chiffres manuscrits de 0 à 9. Pour ce faire, il crée un réseau neuronal qui prend les valeurs de pixel d’une image 28 px x 28 px comme entrée, et génère une liste de 10 probabilités, une pour chacun des chiffres classifiés. Ceci est un exemple de ce à quoi ressemblent les données.

MNIST Digits

Créer un espace de travail

La première chose à faire pour générer une application dans Azure Machine Learning consiste à créer un espace de travail. Un espace de travail contient les ressources nécessaires à la formation des modèles ainsi que les modèles formés proprement dits. Pour plus d’informations, consultez Qu’est-ce qu’un espace de travail ?.

  1. Ouvrez le répertoire azureml-examples/cli/jobs/single-step/tensorflow/mnist du référentiel géré par la communauté dans Visual Studio Code.

  2. Dans la barre d’activité Visual Studio Code, sélectionnez l’icône Azure pour ouvrir la vue Azure Machine Learning.

  3. Dans la vue Azure Machine Learning, cliquez avec le bouton droit sur le nœud de votre abonnement et sélectionnez Créer un espace de travail.

    Create workspace

  4. Un fichier de spécifications apparaît. Configurez le fichier de spécifications avec les options suivantes.

    $schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
    name: TeamWorkspace
    location: WestUS2
    display_name: team-ml-workspace
    description: A workspace for training machine learning models
    tags:
      purpose: training
      team: ml-team
    

    Le fichier de spécification crée un espace de travail appelé TeamWorkspace dans la région WestUS2. Le reste des options définies dans le fichier de spécification fournissent un nom convivial, des descriptions et des étiquettes pour l’espace de travail.

  5. Cliquez avec le bouton droit sur le fichier de spécification et sélectionnez Azure-ML : Exécuter YAML. La création d’une ressource utilise les options de configuration définies dans le fichier de spécifications YAML et envoie un travail en utilisant l’interface CLI (v2). À ce stade, une demande est envoyée à Azure pour créer un nouvel espace de travail et ses ressources dépendantes dans votre compte. Après quelques minutes, le nouvel espace de travail apparaît dans votre nœud d’abonnement.

  6. Définissez TeamWorkspace comme votre espace de travail par défaut. Cela place les ressources et les travaux que vous créez dans l’espace de travail par défaut. Sélectionnez le bouton Définir l’espace de travail Azure Machine Learning dans la barre d’état de Visual Studio Code, puis suivez les invites pour définir TeamWorkspace comme votre espace de travail par défaut.

Pour plus d’informations sur les espaces de travail, consultez Comment gérer des ressources dans VS Code.

Entraîner le modèle

Lors du processus d’entraînement, un modèle TensorFlow est entraîné en traitant les données d’entraînement et les patterns d’entraînement incorporés pour chacun des chiffres classifiés.

Comme les espaces de travail et les cibles de calcul, les travaux d’entraînement sont définis avec des modèles de ressources. Pour cet exemple, la spécification est définie dans le fichier job.yml, qui se présente de la façon suivante :

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >
    python train.py
environment: azureml:AzureML-tensorflow-2.4-ubuntu18.04-py37-cuda11-gpu:48
resources:
   instance_type: Standard_NC12
   instance_count: 3
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.

Ce fichier de spécification soumet un travail d’entraînement appelé tensorflow-mnist-example à la cible de calcul gpu-cluster récemment créée qui exécute le code dans le script Python tensorflow-mnist-example. L’environnement utilisé est un des environnements organisés fournis par Azure Machine Learning qui contient TensorFlow et d’autres dépendances logicielles nécessaires pour exécuter le script d’entraînement. Pour plus d’informations sur les environnements organisés, consultez Environnements organisés Azure Machine Learning.

Pour soumettre le travail d’entraînement :

  1. Ouvrez le fichier job.yml.
  2. Cliquez avec le bouton droit sur le fichier dans l’éditeur de texte et sélectionnez Azure-ML : Exécuter YAML.

À ce stade, une demande est envoyée à Azure pour exécuter votre expérience sur la cible de calcul sélectionnée dans votre espace de travail. Cette opération prend plusieurs minutes. La durée d’exécution du travail d’entraînement est influencée par plusieurs facteurs tels que le type de calcul et la taille des données d’entraînement. Pour suivre la progression de votre expérience, cliquez avec le bouton droit sur le nœud d’exécution actif et sélectionnez Afficher le travail sur le portail Azure.

Quand la boîte de dialogue vous invitant à ouvrir un site web externe s’affiche, sélectionnez Ouvrir.

Track experiment progress

Une fois l’entraînement du modèle terminé, l’étiquette d’état en regard du nœud d’exécution est mise à jour avec la valeur « Terminé ».

Étapes suivantes