Condividi tramite


HyperDriveStep Classe

Crea un passaggio di Azure ML Pipeline per eseguire la tunning dell'iperparametro 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 di Azure ML Pipeline per eseguire la tunning di iperparametri per il training del modello di Machine Learning.

Ereditarietà
HyperDriveStep

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 voce di stima. Se lo script di voce 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 per 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, anziché inviare il processo al calcolo, i risultati dell'esecuzione precedente vengono immediatamente resi disponibili per tutti i passaggi successivi. Se si usano set di dati di Azure Machine Learning come input, il riutilizzo è determinato dal fatto che la definizione del set di dati sia stata modificata, non dal fatto che i dati sottostanti siano stati modificati.

Valore predefinito: True
version
str

Un tag di versione facoltativo per indicare una modifica della 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 voce di stima. Se lo script di voce 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 per 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, anziché inviare il processo al calcolo, i risultati dell'esecuzione precedente vengono immediatamente resi disponibili per tutti i passaggi successivi. Se si usano set di dati di Azure Machine Learning come input, il riutilizzo è determinato dal fatto che la definizione del set di dati sia stata modificata, non dal fatto che i dati sottostanti siano stati modificati.

version
Necessario
str

version

Commenti

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

L'inizializzazione hyperDriveStep comporta 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 source_directorydi 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 . Ad esempio, vedere il source_directory parametro della TensorFlow classe. In questo modo si hanno due vantaggi. Prima di tutto, consente di ridurre le dimensioni dello snapshot creato per il passaggio, perché solo ciò che è necessario per il passaggio viene snapshotto. In secondo luogo, l'output del passaggio da un'esecuzione precedente può essere riutilizzato se non sono presenti modifiche all'oggetto source_directory che attiva un nuovo caricamento dello snaphot.

Nell'esempio seguente viene illustrato 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 il 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 il 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 graph a cui aggiungere il nodo.

default_datastore
Necessario

Archivio dati predefinito.

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

Contesto del grafico.

Restituisce

Tipo Descrizione

Nodo creato.