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
|
[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
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
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
|
Un tag di versione facoltativo per indicare una modifica della funzionalità per il modulo. Valore predefinito: None
|
name
Necessario
|
[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
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
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
|
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_directory
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 . 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. |