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

name
str
Necessario

[Obbligatorio] Nome del passaggio.

hyperdrive_config
HyperDriveConfig
Necessario

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

estimator_entry_script_arguments
list
valore predefinito: None

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
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
valore predefinito: None

Elenco di associazioni di porte di input.

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputAbstractDataset, OutputPortBinding]]
valore predefinito: None

Elenco di associazioni di porte di output

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
valore predefinito: None

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

allow_reuse
bool
valore predefinito: True

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
str
valore predefinito: None

Un tag di versione facoltativo per indicare una modifica della funzionalità per il modulo.

name
str
Necessario

[Obbligatorio] Nome del passaggio.

hyperdrive_config
HyperDriveConfig
Necessario

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

estimator_entry_script_arguments
list
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.

outputs
list[Union[PipelineData, PipelineOutputAbstractDataset, OutputPortBinding]]
Necessario

Elenco di associazioni di porte di output.

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
Necessario

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

allow_reuse
bool
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
str
Necessario

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

graph
Graph
Necessario

Oggetto graph a cui aggiungere il nodo.

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Necessario

Archivio dati predefinito.

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

Contesto del grafico.

Restituisce

Nodo creato.

Tipo restituito