Een TensorFlow-model voor afbeeldingsclassificatie trainen met behulp van de Azure Machine Learning Visual Studio Code-extensie (preview)

VAN TOEPASSING OP:Azure CLI ml-extensie v2 (huidig)

Meer informatie over het trainen van een afbeeldingsclassificatiemodel om handgeschreven nummers te herkennen met behulp van TensorFlow en de Azure Machine Learning Visual Studio Code-extensie.

In deze zelfstudie leert u het volgende:

  • De code begrijpen
  • Een werkruimte maken
  • Een GPU-cluster maken voor training
  • Een model trainen

Vereisten

De code begrijpen

De code voor deze zelfstudie maakt gebruik van TensorFlow voor het trainen van een Machine Learning-model voor de classificatie van afbeeldingen dat handgeschreven cijfers van 0-9 categoriseert. Dit wordt gedaan door een neuraal netwerk te maken dat de pixelwaarden van een afbeelding van 28 px x 28 px als invoer gebruikt en een lijst van tien waarschijnlijkheden uitvoert, één voor elk van de cijfers die worden geclassificeerd. Hieronder ziet u een voorbeeld van hoe de gegevens er uitzien.

MNIST-cijfers

Een werkruimte maken

Het eerste wat u moet doen om een toepassing in Azure Machine Learning te bouwen, is een werkruimte maken. Een werkruimte bevat de resources voor het trainen van modellen en de getrainde modellen zelf. Zie Wat is een werkruimte? voor meer informatie.

  1. Open de map azureml-examples/cli/jobs/single-step/tensorflow/mnist uit de communitygestuurde opslagplaats in Visual Studio Code.

  2. Selecteer op de activiteitenbalk van Visual Studio het pictogram Azure om de weergave Azure Machine Learning te openen.

  3. Klik in de weergave Azure Machine Learning met de rechtermuisknop op uw abonnementsknooppunt en selecteer Werkruimte maken.

    Werkruimte maken

  4. Er wordt een specificatiebestand weergegeven. Configureer het specificatiebestand met de volgende opties.

    $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
    

    Het specificatiebestand maakt een werkruimte met de naam TeamWorkspace in de WestUS2 regio. De rest van de opties die in het specificatiebestand zijn gedefinieerd, bieden beschrijvende namen, beschrijvingen en tags voor de werkruimte.

  5. Klik met de rechtermuisknop op het specificatiebestand en selecteer Azure ML: YAML uitvoeren. Het maken van een resource maakt gebruik van de configuratieopties die zijn gedefinieerd in het YAML-specificatiebestand en verzendt een taak met behulp van de CLI (v2). Op dit moment wordt er een aanvraag naar Azure gedaan om een nieuwe werkruimte en afhankelijke resources in uw account te maken. Na een paar minuten wordt de nieuwe werkruimte weergegeven in uw abonnementknooppunt.

  6. Instellen TeamWorkspace als uw standaardwerkruimte. Als u dit doet, plaatst u standaard resources en taken die u in de werkruimte maakt. Selecteer de knop Azure ML-werkruimte instellen op de statusbalk van Visual Studio Code en volg de aanwijzingen om in te stellen TeamWorkspace als uw standaardwerkruimte.

Zie Resources beheren in VS Code voor meer informatie over werkruimten.

Een GPU-cluster maken voor training

Een rekendoel is de computerresource of -omgeving waarin u trainingstaken uitvoert. Zie de documentatie over rekendoelen van Azure Machine Learning voor meer informatie.

  1. Vouw in de weergave Azure Machine Learning uw werkruimteknooppunt uit.

  2. Klik met de rechtermuisknop op het knooppunt Compute-clusters in het rekenknooppunt van uw werkruimte en selecteer Compute maken

    Rekencluster voor training maken

  3. Er wordt een specificatiebestand weergegeven. Configureer het specificatiebestand met de volgende opties.

    $schema: https://azuremlschemas.azureedge.net/latest/compute.schema.json
    name: gpu-cluster
    type: amlcompute
    size: Standard_NC12
    
    min_instances: 0
    max_instances: 3
    idle_time_before_scale_down: 120
    

    Het specificatiebestand maakt een GPU-cluster met de naam gpu-cluster met maximaal drie Standard_NC12 VM-knooppunten dat na 120 seconden inactiviteit automatisch omlaag wordt geschaald naar 0 knooppunten.

    Zie Grootten voor Linux Virtual Machines in Azure voor meer informatie over VM-grootten.

  4. Klik met de rechtermuisknop op het specificatiebestand en selecteer Azure ML: YAML uitvoeren.

Na een paar minuten wordt het nieuwe rekendoel weergegeven in het knooppunt Rekenkrachtclusters > van uw werkruimte.

Afbeeldingsclassificatiemodel trainen

Tijdens het trainingsproces wordt een TensorFlow-model getraind door de trainingsgegevens en leerpatronen te verwerken die erin zijn ingesloten voor elk van de respectieve cijfers die worden geclassificeerd.

Net als werkruimten en rekendoelen worden trainingstaken gedefinieerd met behulp van resourcesjablonen. Voor dit voorbeeld wordt de specificatie gedefinieerd in het bestand job.yml , dat er als volgt uitziet:

$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
compute: azureml:gpu-cluster
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.

Dit specificatiebestand verzendt een trainingstaak met de naam tensorflow-mnist-example naar het onlangs gemaakte gpu-cluster computerdoel dat de code in het train.py Python-script uitvoert. De gebruikte omgeving is een van de gecureerde omgevingen van Azure Machine Learning die TensorFlow en andere softwareafhankelijkheden bevat die nodig zijn om het trainingsscript uit te voeren. Zie Gecureerde omgevingen van Azure Machine Learning voor meer informatie over gecureerde omgevingen.

De trainingstaak verzenden:

  1. Open het bestand job.yml .
  2. Klik met de rechtermuisknop op het bestand in de teksteditor en selecteer Azure ML: YAML uitvoeren.

Op dit punt wordt een aanvraag verzonden naar Azure om uw experiment in het geselecteerde rekendoel in uw werkruimte uit te voeren. Dit proces duurt enkele minuten. De hoeveelheid tijd die nodig is om de trainingstaak uit te voeren, wordt beïnvloed door diverse factoren, zoals het rekentype en de grootte van de trainingsgegevens. Als u de voortgang van uw experiment wilt bijhouden, klikt u met de rechtermuisknop op het knooppunt voor de huidige uitvoering en selecteert u Taak weergeven in Azure Portal.

Wanneer het dialoogvenster voor het openen van een externe website wordt weergegeven, selecteert u Openen.

De voortgang van het experiment bijhouden

Wanneer de training van het model is voltooid, wordt het statuslabel naast het uitvoeringsknooppunt bijgewerkt in 'Voltooid'.

Volgende stappen

In deze zelfstudie leert u het volgende:

  • De code begrijpen
  • Een werkruimte maken
  • Een GPU-cluster maken voor training
  • Een model trainen

Zie voor de volgende stappen: