Eseguire il training di un modello TensorFlow di classificazione delle immagini usando l'estensione Visual Studio Code di Azure Machine Learning (anteprima)

SI APPLICA A:Estensione ml dell'interfaccia della riga di comando di Azure v2 (corrente)

Informazioni su come eseguire il training di un modello di classificazione delle immagini per riconoscere i numeri scritti a mano usando TensorFlow e l'estensione Azure Machine Learning per Visual Studio Code.

Importante

Questa funzionalità è attualmente in anteprima pubblica. Questa versione di anteprima viene fornita senza contratto di servizio e non è consigliata per carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere Condizioni supplementari per l'utilizzo delle anteprime di Microsoft Azure.

In questa esercitazione si apprenderanno informazioni sulle attività seguenti:

  • Informazioni sul codice
  • Creare un'area di lavoro
  • Creare un cluster GPU per il training
  • Eseguire il training di un modello

Prerequisiti

Informazioni sul codice

Il codice per questa esercitazione usa TensorFlow per eseguire il training di un modello di Machine Learning di classificazione delle immagini che categorizza le cifre scritte a mano da 0 a 9. A tale scopo, crea una rete neurale che accetta i valori pixel di un'immagine da 28 pixel x 28 pixel come input e restituisce un elenco di 10 probabilità, una per ogni cifra classificata. L'aspetto dei dati è simile al seguente.

Cifre MNIST

Creare un'area di lavoro

La prima operazione da effettuare per creare un'applicazione in Azure Machine Learning consiste nel creare un'area di lavoro. Un'area di lavoro contiene le risorse necessarie per eseguire il training dei modelli, oltre ai modelli con training esistenti. Per altre informazioni, vedere Che cos'è un'area di lavoro.

  1. Aprire la directory azureml-examples/cli/jobs/single-step/tensorflow/mnist dal repository basato sulla community in Visual Studio Code.

  2. Nella barra attività di Visual Studio Code selezionare l'icona Azure per aprire la visualizzazione Azure Machine Learning.

  3. Nella visualizzazione Azure Machine Learning fare clic con il pulsante destro del mouse sul nodo della sottoscrizione e scegliere Crea area di lavoro.

    Creare un'area di lavoro

  4. Viene visualizzato un file di specifica. Configurare il file di specifica con le opzioni seguenti.

    $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
    

    Il file di specifica crea un'area di lavoro denominata TeamWorkspace nell'area WestUS2 . Le altre opzioni definite nel file di specifica forniscono nomi, descrizioni e tag descrittivi per l'area di lavoro.

  5. Fare clic con il pulsante destro del mouse sul file di specifica e scegliere AzureML: Esegui YAML. La creazione di una risorsa usa le opzioni di configurazione definite nel file di specifica YAML e invia un processo usando l'interfaccia della riga di comando (v2). A questo punto, viene effettuata una richiesta ad Azure per creare una nuova area di lavoro e risorse dipendenti nell'account. Dopo alcuni minuti, la nuova area di lavoro verrà visualizzata nel nodo della sottoscrizione.

  6. Impostare TeamWorkspace come area di lavoro predefinita. In questo modo, le risorse e i processi creati nell'area di lavoro vengono inseriti per impostazione predefinita. Selezionare il pulsante Imposta area di lavoro di Azure Machine Learning sulla barra di stato di Visual Studio Code e seguire le istruzioni da impostare TeamWorkspace come area di lavoro predefinita.

Per altre informazioni sulle aree di lavoro, vedere come gestire le risorse in VS Code.

Creare un cluster GPU per il training

Una destinazione di calcolo è la risorsa o l'ambiente di calcolo in cui si eseguono processi di training. Per altre informazioni, vedere la documentazione per le destinazioni di calcolo di Azure Machine Learning.

  1. Nella visualizzazione Azure Machine Learning espandere il nodo dell'area di lavoro.

  2. Fare clic con il pulsante destro del mouse sul nodo Cluster di calcolo all'interno del nodo Calcolo dell'area di lavoro e scegliere Crea calcolo

    Creare un cluster di calcolo di training

  3. Viene visualizzato un file di specifica. Configurare il file di specifica con le opzioni seguenti.

    $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
    

    Il file di specifica crea un cluster GPU denominato gpu-cluster con al massimo 3 nodi della macchina virtuale Standard_NC12 che si riduce automaticamente a 0 nodi dopo 120 secondi di inattività.

    Per altre informazioni sulle dimensioni di macchina virtuale, vedere Dimensioni delle macchine virtuali Linux in Azure.

  4. Fare clic con il pulsante destro del mouse sul file di specifica e scegliere AzureML: Esegui YAML.

Dopo alcuni minuti, la nuova destinazione di calcolo viene visualizzata nel nodo Cluster di calcolo > dell'area di lavoro.

Eseguire il training del modello di classificazione delle immagini

Durante il processo di training, viene eseguito il training di un modello TensorFlow elaborando i dati di training e i modelli di apprendimento incorporati al suo interno per ognuna delle rispettive cifre classificate.

Analogamente alle aree di lavoro e alle destinazioni di calcolo, i processi di training vengono definiti usando modelli di risorse. Per questo esempio, la specifica viene definita nel file job.yml simile al seguente:

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

Questo file di specifica invia un processo di training denominato tensorflow-mnist-example alla destinazione computer creata gpu-cluster di recente che esegue il codice nello script python train.py . L'ambiente usato è uno degli ambienti curati forniti da Azure Machine Learning che contiene TensorFlow e altre dipendenze software necessarie per eseguire lo script di training. Per altre informazioni sugli ambienti curati, vedere Ambienti curati di Azure Machine Learning.

Per inviare il processo di training:

  1. Aprire il file job.yml .
  2. Fare clic con il pulsante destro del mouse sul file nell'editor di testo e scegliere AzureML: Esegui YAML.

A questo punto, viene inviata una richiesta ad Azure per eseguire l'esperimento nella destinazione di calcolo selezionata nell'area di lavoro. Questo processo richiede alcuni minuti. L'intervallo di tempo per l'esecuzione del processo di training dipende da numerosi fattori, ad esempio il tipo di calcolo e le dimensioni dei dati di training. Per tenere traccia dello stato di avanzamento dell'esperimento, fare clic con il pulsante destro del mouse sul nodo di esecuzione corrente e scegliere Visualizza processo in portale di Azure.

Quando viene visualizzata la finestra di dialogo che richiede di aprire un sito Web esterno, selezionare Apri.

Tenere traccia dello stato dell'esperimento

Al termine del training del modello, l'etichetta dello stato accanto al nodo di esecuzione viene aggiornata e mostra la dicitura "Completato".

Passaggi successivi

In questa esercitazione si apprenderanno informazioni sulle attività seguenti:

  • Informazioni sul codice
  • Creare un'area di lavoro
  • Creare un cluster GPU per il training
  • Eseguire il training di un modello

Per i passaggi successivi, vedere: