Condividi tramite


HyperDriveStep Classe

Crea un passaggio della pipeline di Azure ML per eseguire la tunning degli iperparametri per il training del modello di Machine Learning.

Per un esempio di uso di HyperDriveStep, vedere il notebook https://aka.ms/pl-hyperdrive.

Creare un passaggio della pipeline di Azure ML per eseguire la tunning degli iperparametri per il training del modello di Machine Learning.

Costruttore

HyperDriveStep(name, hyperdrive_config, estimator_entry_script_arguments=None, inputs=None, outputs=None, metrics_output=None, allow_reuse=True, version=None)

Parametri

Nome Descrizione
name
Necessario
str

[Obbligatorio] Nome del passaggio.

hyperdrive_config
Necessario

[Obbligatorio] HyperDriveConfig che definisce la configurazione per l'esecuzione di HyperDrive.

estimator_entry_script_arguments

Elenco di argomenti della riga di comando per lo script di immissione dello strumento di stima. Se lo script di immissione di Estimator non accetta argomenti della riga di comando, impostare questo valore di parametro su un elenco vuoto.

Valore predefinito: None
inputs

Elenco di associazioni di porte di input.

Valore predefinito: None
outputs

Elenco di associazioni di porte di output

Valore predefinito: None
metrics_output

Valore facoltativo che specifica il percorso in cui archiviare le metriche di esecuzione di HyperDrive come file JSON.

Valore predefinito: None
allow_reuse

Indica se il passaggio deve riutilizzare i risultati precedenti quando si esegue di nuovo con le stesse impostazioni. Il riutilizzo è abilitato per impostazione predefinita. Se il contenuto del passaggio (script/dipendenze) e gli input e i parametri rimangono invariati, l'output dell'esecuzione precedente di questo passaggio viene riutilizzato. Quando si riutilizza il passaggio, invece di inviare il processo a calcolo, i risultati dell'esecuzione precedente vengono immediatamente resi disponibili a tutti i passaggi successivi. Se si usano set di dati di Azure Machine Learning come input, il riutilizzo viene determinato dal fatto che la definizione del set di dati sia stata modificata, non indipendentemente dal fatto che i dati sottostanti siano stati modificati.

Valore predefinito: True
version
str

Tag di versione facoltativo per indicare una modifica delle funzionalità per il modulo.

Valore predefinito: None
name
Necessario
str

[Obbligatorio] Nome del passaggio.

hyperdrive_config
Necessario

[Obbligatorio] HyperDriveConfig che definisce la configurazione per l'esecuzione di HyperDrive.

estimator_entry_script_arguments
Necessario

Elenco di argomenti della riga di comando per lo script di immissione dello strumento di stima. Se lo script di immissione di Estimator non accetta argomenti della riga di comando, impostare questo valore di parametro su un elenco vuoto.

inputs
Necessario

Elenco di associazioni di porte di input.

outputs
Necessario

Elenco di associazioni di porte di output.

metrics_output
Necessario

Valore facoltativo che specifica il percorso in cui archiviare le metriche di esecuzione di HyperDrive come file JSON.

allow_reuse
Necessario

Indica se il passaggio deve riutilizzare i risultati precedenti quando si esegue di nuovo con le stesse impostazioni. Il riutilizzo è abilitato per impostazione predefinita. Se il contenuto del passaggio (script/dipendenze) e gli input e i parametri rimangono invariati, l'output dell'esecuzione precedente di questo passaggio viene riutilizzato. Quando si riutilizza il passaggio, invece di inviare il processo a calcolo, i risultati dell'esecuzione precedente vengono immediatamente resi disponibili a tutti i passaggi successivi. Se si usano set di dati di Azure Machine Learning come input, il riutilizzo viene determinato dal fatto che la definizione del set di dati sia stata modificata, non indipendentemente dal fatto che i dati sottostanti siano stati modificati.

version
Necessario
str

Versione

Commenti

Si noti che gli argomenti dello script di immissione usati nell'oggetto estimator (ad esempio, l'oggetto TensorFlow ) devono essere specificati come elenco usando il parametro durante la estimator_entry_script_arguments creazione di un'istanza di HyperDriveStep. Il parametro script_params estimator accetta un dizionario. Tuttavia, estimator_entry_script_argument il parametro prevede argomenti come elenco.

L'inizializzazione hyperDriveStep prevede la specifica di un elenco di DataReference oggetti con il inputs parametro . In Azure ML Pipelines un passaggio della pipeline può eseguire un altro passaggio di output o oggetti DataReference come input. Pertanto, quando si crea un hyperDriveStep, i inputs parametri e outputs devono essere impostati in modo esplicito, che esegue l'override inputs del parametro specificato nell'oggetto Estimator.

La procedura consigliata per l'uso di HyperDriveStep consiste nell'usare una cartella separata per gli script e i file dipendenti associati al passaggio e specificare tale cartella come oggetto di stima.source_directory Ad esempio, vedere il source_directory parametro della TensorFlow classe . Questo ha due vantaggi. In primo luogo, consente di ridurre le dimensioni dello snapshot creato per il passaggio perché viene creato uno snapshot solo degli elementi necessari per il passaggio. In secondo luogo, l'output del passaggio di un'esecuzione precedente può essere riutilizzato se non sono presenti modifiche a source_directory che attiverebbero un nuovo caricamento dello snaphot.

L'esempio seguente illustra come usare HyperDriveStep in una pipeline di Azure Machine Learning.


   metrics_output_name = 'metrics_output'
   metrics_data = PipelineData(name='metrics_data',
                               datastore=datastore,
                               pipeline_output_name=metrics_output_name,
                               training_output=TrainingOutput("Metrics"))

   model_output_name = 'model_output'
   saved_model = PipelineData(name='saved_model',
                               datastore=datastore,
                               pipeline_output_name=model_output_name,
                               training_output=TrainingOutput("Model",
                                                              model_file="outputs/model/saved_model.pb"))

   hd_step_name='hd_step01'
   hd_step = HyperDriveStep(
       name=hd_step_name,
       hyperdrive_config=hd_config,
       inputs=[data_folder],
       outputs=[metrics_data, saved_model])

L'esempio completo è disponibile da https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb

Metodi

create_node

Creare un nodo dal passaggio HyperDrive e aggiungere al grafico specificato.

Questo metodo non deve essere usato direttamente. Quando viene creata un'istanza di una pipeline con questo passaggio, Azure ML passa automaticamente i parametri necessari tramite questo metodo in modo che tale passaggio possa essere aggiunto a un grafico della pipeline che rappresenta il flusso di lavoro.

create_node

Creare un nodo dal passaggio HyperDrive e aggiungere al grafico specificato.

Questo metodo non deve essere usato direttamente. Quando viene creata un'istanza di una pipeline con questo passaggio, Azure ML passa automaticamente i parametri necessari tramite questo metodo in modo che tale passaggio possa essere aggiunto a un grafico della pipeline che rappresenta il flusso di lavoro.

create_node(graph, default_datastore, context)

Parametri

Nome Descrizione
graph
Necessario

Oggetto grafico a cui aggiungere il nodo.

default_datastore
Necessario

Archivio dati predefinito.

context
Necessario
<xref:azureml.pipeline.core._GraphContext>

Contesto del grafo.

Restituisce

Tipo Descrizione

Nodo creato.