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
- Sottoscrizione di Azure. Se non se ne possiede una, iscriversi per provare la versione gratuita o a pagamento di Azure Machine Learning. Se si usa la sottoscrizione gratuita, sono supportati solo i cluster CPU.
- Installare Visual Studio Code, un editor di codice leggero multipiattaforma.
- Estensione Azure Machine Learning Studio per Visual Studio Code. Per istruzioni di installazione, vedere la guida all'installazione dell'estensione di Visual Studio Code di Azure Machine Learning
- Interfaccia della riga di comando (v2). Per istruzioni di installazione, vedere Installare, configurare e usare l'interfaccia della riga di comando (v2)
- Clonare il repository basato sulla community
git clone https://github.com/Azure/azureml-examples.git
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.
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.
Aprire la directory azureml-examples/cli/jobs/single-step/tensorflow/mnist dal repository basato sulla community in Visual Studio Code.
Nella barra attività di Visual Studio Code selezionare l'icona Azure per aprire la visualizzazione Azure Machine Learning.
Nella visualizzazione Azure Machine Learning fare clic con il pulsante destro del mouse sul nodo della sottoscrizione e scegliere Crea area di lavoro.
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'areaWestUS2
. Le altre opzioni definite nel file di specifica forniscono nomi, descrizioni e tag descrittivi per l'area di lavoro.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.
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 impostareTeamWorkspace
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.
Nella visualizzazione Azure Machine Learning espandere il nodo dell'area di lavoro.
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
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.
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:
- Aprire il file job.yml .
- 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.
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:
- Creare e gestire risorse di Azure Machine Learning con Visual Studio Code.
- Connettere Visual Studio Code a un'istanza di calcolo per un'esperienza di sviluppo completa.
- Per una procedura dettagliata su come modificare, eseguire il codice ed eseguire il debug in locale, vedere l'esercitazione Hello World in Python.
- Eseguire Jupyter Notebook in Visual Studio Code usando un server Jupyter remoto.
- Per una procedura dettagliata su come eseguire il training con Azure Machine Learning all'esterno di Visual Studio Code, vedere Esercitazione: Eseguire il training e distribuire un modello con Azure Machine Learning.