Träna en TensorFlow-modell för bildklassificering med hjälp av Visual Studio Code-tillägget för Azure Machine Learning (förhandsversion)

GÄLLER FÖR:Azure CLI ml-tillägg v2 (aktuellt)

Lär dig hur du tränar en bildklassificeringsmodell för att identifiera handskrivna tal med TensorFlow och Azure Machine Learning Visual Studio Code-tillägget.

I den här självstudien går du igenom följande aktiviteter:

  • Förstå koden
  • Skapa en arbetsyta
  • Skapa ett GPU-kluster för träning
  • Träna en modell

Krav

Förstå koden

Koden för den här självstudien använder TensorFlow för att träna en maskininlärningsmodell för bildklassificering som kategoriserar handskrivna siffror mellan 0 och 9. Det gör det genom att skapa ett neuralt nätverk som tar pixelvärdena på 28 x 28 bildpunkter som indata och matar ut en lista med 10 sannolikheter, en för var och en av de siffror som klassificeras. Nedan visas ett exempel på hur data ser ut.

MNIST-siffror

Skapa en arbetsyta

Det första du måste göra för att skapa ett program i Azure Machine Learning är att skapa en arbetsyta. En arbetsyta innehåller resurser för att träna modeller samt de tränade modellerna själva. Mer information finns i vad som är en arbetsyta.

  1. Öppna katalogen azureml-examples/cli/jobs/single-step/tensorflow/mnist från den communitydrivna lagringsplatsen i Visual Studio Code.

  2. I aktivitetsfältet i Visual Studio Code väljer du Azure-ikonen för att öppna Azure Machine Learning-vyn.

  3. I Azure Machine Learning-vyn högerklickar du på din prenumerationsnod och väljer Skapa arbetsyta.

    Skapa arbetsyta

  4. En specifikationsfil visas. Konfigurera specifikationsfilen med följande alternativ.

    $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
    

    Specifikationsfilen skapar en arbetsyta med namnet TeamWorkspace i WestUS2 regionen. Resten av alternativen som definierats i specifikationsfilen innehåller egna namn, beskrivningar och taggar för arbetsytan.

  5. Högerklicka på specifikationsfilen och välj Azure ML: Kör YAML. När du skapar en resurs används de konfigurationsalternativ som definierats i YAML-specifikationsfilen och ett jobb skickas med hjälp av CLI (v2). Nu görs en begäran till Azure om att skapa en ny arbetsyta och beroende resurser i ditt konto. Efter några minuter visas den nya arbetsytan i din prenumerationsnod.

  6. Ange TeamWorkspace som standardarbetsyta. När du gör det placeras resurser och jobb som du skapar på arbetsytan som standard. Välj knappen Ange Azure ML-arbetsyta i statusfältet i Visual Studio Code och följ anvisningarna för att ange TeamWorkspace som standardarbetsyta.

Mer information om arbetsytor finns i hantera resurser i VS Code.

Skapa ett GPU-kluster för träning

Ett beräkningsmål är den beräkningsresurs eller miljö där du kör träningsjobb. Mer information finns i dokumentationen om Azure Machine Learning-beräkningsmål.

  1. I Azure Machine Learning-vyn expanderar du noden för arbetsytan.

  2. Högerklicka på noden Beräkningskluster i arbetsytans beräkningsnod och välj Skapa beräkning

    Skapa beräkningskluster för träning

  3. En specifikationsfil visas. Konfigurera specifikationsfilen med följande alternativ.

    $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
    

    Specifikationsfilen skapar ett GPU-kluster med namnet gpu-cluster med högst 3 Standard_NC12 VM-noder som automatiskt skalar ned till 0 noder efter 120 sekunders inaktivitet.

    Mer information om VM-storlekar finns i storlekar för virtuella Linux-datorer i Azure.

  4. Högerklicka på specifikationsfilen och välj Azure ML: Kör YAML.

Efter några minuter visas det nya beräkningsmålet i noden Compute > Compute-kluster på din arbetsyta.

Träna bildklassificeringsmodell

Under träningsprocessen tränas en TensorFlow-modell genom bearbetning av träningsdata och inlärningsmönster som är inbäddade i den för var och en av de respektive siffrorna som klassificeras.

Precis som arbetsytor och beräkningsmål definieras träningsjobb med hjälp av resursmallar. I det här exemplet definieras specifikationen i filen job.yml som ser ut så här:

$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.

Den här specifikationsfilen skickar ett träningsjobb med namnet tensorflow-mnist-example till det nyligen skapade gpu-cluster datormålet som kör koden i train.py Python-skript. Miljön som används är en av de organiserade miljöer som tillhandahålls av Azure Machine Learning som innehåller TensorFlow och andra programvaruberoenden som krävs för att köra träningsskriptet. Mer information om organiserade miljöer finns i Azure Machine Learning-organiserade miljöer.

Så här skickar du träningsjobbet:

  1. Öppna filen job.yml .
  2. Högerklicka på filen i textredigeraren och välj Azure ML: Kör YAML.

Nu skickas en begäran till Azure för att köra experimentet på det valda beräkningsmålet på din arbetsyta. Den här processen tar flera minuter. Hur lång tid träningsjobbet ska köras påverkas av flera faktorer som beräkningstyp och träningsdatastorlek. Om du vill spåra förloppet för experimentet högerklickar du på den aktuella körningsnoden och väljer Visa jobb i Azure-Portal.

När dialogrutan som begär att öppna en extern webbplats visas väljer du Öppna.

Spåra experimentets förlopp

När modellen är klar med träningen uppdateras statusetiketten bredvid körningsnoden till "Slutförd".

Nästa steg

I den här självstudien går du igenom följande aktiviteter:

  • Förstå koden
  • Skapa en arbetsyta
  • Skapa ett GPU-kluster för träning
  • Träna en modell

Nästa steg finns i: