Esercitazione: Introduzione a uno script Python in Azure Machine Learning (SDK v1, parte 1 di 3)
Si applica a: Python SDK azureml v1
In questa esercitazione si esegue il primo script Python nel cloud con Azure Machine Learning. Questa esercitazione è prima parte di una serie di esercitazioni in due parti.
Questa esercitazione evita la complessità del training di un modello di Machine Learning. Verrà eseguito uno script Python "Hello World" nel cloud. Si apprenderà come uno script di controllo viene usato per configurare e creare un'esecuzione in Azure Machine Learning.
Questa esercitazione illustra come:
- Creare ed eseguire uno script "Hello World!" Script Python.
- Creare uno script di controllo Python per inviare "Hello world!" ad Azure Machine Learning.
- Acquisire i concetti di Azure Machine Learning nello script di controllo.
- Inviare ed eseguire lo script "Hello world!".
- Visualizzare l'output del codice nel cloud.
Prerequisiti
- Completare Creare le risorse necessarie per iniziare per creare un'area di lavoro e un'istanza di calcolo da usare in questa serie di esercitazioni.
-
- Creare un'istanza di calcolo basata sul cloud. Denominarla "cpu-cluster" in modo che corrisponda al codice in questa esercitazione.
Creare ed eseguire uno script Python
Questa esercitazione usa l'istanza di ambiente di calcolo come computer di sviluppo. Creare prima di tutto alcune cartelle e lo script:
- Accedere allo studio di Azure Machine Learning, quindi selezionare l'area di lavoro se richiesto.
- Selezionare Notebook a sinistra
- Sulla barra degli strumenti File selezionare +, quindi selezionare Crea nuova cartella.
- Assegnare alla cartella il nome get-started.
- A destra del nome della cartella, usare il menu ... per creare un'altra cartella in get-started.
- Assegnare alla nuova cartella il nome src. Usare il collegamento Modifica posizione se la posizione del file non è corretta.
- A destra della cartella src, usare il menu ... per creare un nuovo file nella cartella src.
- Assegnare al file il nome hello.py. Impostare Tipo di file su Python (.py)*.
Copiare questo codice nel file:
# src/hello.py
print("Hello world!")
La struttura delle cartelle del progetto sarà ora come segue:
Testare lo script
È possibile eseguire il codice in locale, che in questo caso significa nell'istanza di ambiente di calcolo. L'esecuzione in locale offre il vantaggio del debug interattivo del codice.
Se l'istanza di ambiente di calcolo è stata arrestata in precedenza, avviarla ora con lo strumento Avvia ambiente di calcolo a destra dell'elenco a discesa Ambiente di calcolo. Attendere circa un minuto affinché lo stato cambi in In esecuzione.
Selezionare Salva ed esegui script nel terminale per eseguire lo script.
L'output dello script viene visualizzato nella finestra del terminale visualizzata. Chiudere la scheda e selezionare Termina per chiudere la sessione.
Creare uno script di controllo
Uno script di controllo consente di eseguire lo script hello.py
in risorse di calcolo diverse. Usare lo script di controllo per controllare come e dove viene eseguito il codice di Machine Learning.
Selezionare il menu ... all'estremità della cartella get-started per creare un nuovo file. Creare un file Python denominato run-hello.py e copiare/incollare il codice seguente al suo interno:
# get-started/run-hello.py
from azureml.core import Workspace, Experiment, Environment, ScriptRunConfig
ws = Workspace.from_config()
experiment = Experiment(workspace=ws, name='day1-experiment-hello')
config = ScriptRunConfig(source_directory='./src', script='hello.py', compute_target='cpu-cluster')
run = experiment.submit(config)
aml_url = run.get_portal_url()
print(aml_url)
Suggerimento
Se è stato usato un nome diverso al momento della creazione del cluster di elaborazione, assicurarsi di modificare il nome anche nel codice compute_target='cpu-cluster'
.
Informazioni sul codice
Ecco come funziona lo script di controllo:
ws = Workspace.from_config()
Workspace si connette all'area di lavoro di Azure Machine Learning in modo che sia possibile comunicare con le risorse di Azure Machine Learning.
experiment = Experiment( ... )
Esperimento consente di organizzare in modo semplice più processi sotto un singolo nome. Più avanti si vedrà come gli esperimenti consentano di confrontare facilmente le metriche di decine di processi.
config = ScriptRunConfig( ... )
ScriptRunConfig esegue il wrapping del codice hello.py
e lo passa all'area di lavoro. Come indicato dal nome, è possibile usare questa classe per configurare la modalità di esecuzione dello script in Azure Machine Learning. Specifica inoltre la destinazione di calcolo in cui viene eseguito lo script. In questo codice la destinazione è il cluster di elaborazione creato nell'esercitazione relativa alla configurazione.
run = experiment.submit(config)
Invia lo script. Questo invio è denominato run. Nella versione 2, è stato rinominata come processo. Un processo incapsula una singola esecuzione del codice. Usare un processo per monitorare lo stato dello script, acquisire l'output, analizzare i risultati, visualizzare le metriche e altro ancora.
aml_url = run.get_portal_url()
L'oggetto run
fornisce un handle sull'esecuzione del codice. Monitorarne lo stato da Azure Machine Learning Studio con l'URL stampato dallo script di Python.
Inviare ed eseguire il codice nel cloud
Selezionare Salva ed esegui script nel terminale per eseguire lo script di controllo, che a sua volta esegue
hello.py
ne cluster di elaborazione creato nell'esercitazione relativa alla configurazione.Nel terminale potrebbe essere richiesto di accedere per eseguire l'autenticazione. Copiare il codice e seguire il collegamento per completare questo passaggio.
Dopo aver eseguito l'autenticazione, nel terminale verrà visualizzato un collegamento. Selezionare il collegamento per visualizzare il processo.
Monitorare il codice nel cloud usando Studio
L'output dello script contiene un collegamento allo studio simile al seguente: https://ml.azure.com/experiments/hello-world/runs/<run-id>?wsid=/subscriptions/<subscription-id>/resourcegroups/<resource-group>/workspaces/<workspace-name>
.
Seguire il collegamento. Inizialmente, verrà visualizzato lo stato In coda o Preparazione in corso. Il completamento della prima esecuzione richiede 5-10 minuti. per i motivi seguenti:
- Un'immagine Docker viene creata nel cloud
- Il cluster di elaborazione viene ridimensionato da 0 a 1 nodo
- L'immagine Docker viene scaricata nel calcolo.
I processi successivi sono più veloci (circa 15 secondi), perché l'immagine Docker viene memorizzata nella cache nell'ambiente di calcolo. Per verificarlo, inviare di nuovo il codice seguente dopo il completamento del primo processo.
Attendere circa 10 minuti. Viene visualizzato un messaggio che indica che l'esecuzione è completata. Usare quindi Aggiorna per visualizzare lo stato cambiato in Completato. Al termine del processo, passare alla scheda Output e log. Nella cartella, si può notare un file std_log.txt
nella cartella user_logs
. L'output dello script si trova in questo file.
Le cartelle azureml-logs
e system-logs
contengono file che possono essere utili per il debug di processi remoti nel cloud.
Passaggio successivo
In questa esercitazione è stato eseguito in Azure un semplice script "Hello world!". Si è visto come connettersi all'area di lavoro di Azure Machine Learning, creare un esperimento e inviare al cloud il codice hello.py
.
Nell'esercitazione successiva si approfondiranno queste informazioni eseguendo uno script più interessante di print("Hello world!")
.
Nota
Se si sceglie di terminare questa serie di esercitazioni senza procedere con il passaggio successivo, assicurarsi di pulire le risorse.