Condividi tramite


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 è la parte 1 di una serie di esercitazioni in due parti.

Questa esercitazione evita la complessità del training di un modello di Machine Learning. Si eseguirà uno script Python "Hello World" nel cloud. Si apprenderà come viene usato uno script di controllo 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

Creare ed eseguire uno script Python

Questa esercitazione usa l'istanza di calcolo come computer di sviluppo. Creare prima di tutto alcune cartelle e lo script:

  1. Accedere allo studio di Azure Machine Learning, quindi selezionare l'area di lavoro se richiesto.
  2. Selezionare Notebook a sinistra
  3. Sulla barra degli strumenti File selezionare +, quindi selezionare Crea nuova cartella. Screenshot che mostra la creazione di un nuovo strumento cartella sulla barra degli strumenti.
  4. Assegnare alla cartella il nome get-started.
  5. A destra del nome della cartella, usare il menu ... per creare un'altra cartella in get-started. Screenshot che mostra la creazione di un menu della sottocartella.
  6. Assegnare alla nuova cartella il nome src. Usare il collegamento Modifica percorso se il percorso del file non è corretto.
  7. A destra della cartella src, usare il menu ... per creare un nuovo file nella cartella src.
  8. 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:

La struttura delle cartelle mostra hello.py nella sottocartella src.

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.

Screenshot che mostra l'avvio dell'istanza di calcolo se è stato arrestato

Selezionare Salva ed esegui script nel terminale per eseguire lo script.

Screenshot che mostra lo script di salvataggio ed esecuzione nello strumento terminale sulla barra degli strumenti

Viene visualizzato l'output dello script 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 anche 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. Monitorare lo stato di avanzamento dal studio di Azure Machine Learning con l'URL stampato dallo script Python.

Inviare ed eseguire il codice nel cloud

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

  2. Nel terminale potrebbe essere richiesto di accedere per eseguire l'autenticazione. Copiare il codice e seguire il collegamento per completare questo passaggio.

  3. Dopo aver eseguito l'autenticazione, viene visualizzato un collegamento nel terminale. 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. In un primo momento viene visualizzato lo stato In coda o Preparazione. 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ù rapidi (~15 secondi) perché l'immagine Docker viene memorizzata nella cache nel 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 il processo è stato completato. Usare quindi Aggiorna per visualizzare lo stato cambiato in Completato. Al termine del processo, passare alla scheda Output e log . Nella cartella è possibile visualizzare un std_log.txt file user_logs . L'output dello script si trova in questo file.

Le azureml-logs cartelle e system-logs contengono file che possono essere utili quando si esegue 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.