Compartir a través de


HyperDriveStep Clase

Crea un paso de Azure ML Pipeline para ejecutar el ajuste de hiperparámetros para modelos de Machine Learning.

Para obtener un ejemplo del uso de HyperDriveStep, vea el cuaderno https://aka.ms/pl-hyperdrive.

Cree un paso de canalización de Azure ML para ejecutar la asignación de hiperparámetros para el entrenamiento del modelo de Machine Learning.

Herencia
HyperDriveStep

Constructor

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

Parámetros

name
str
Requerido

[Obligatorio] El nombre del paso.

hyperdrive_config
HyperDriveConfig
Requerido

[Obligatorio] Un elemento HyperDriveConfig que define la configuración de la ejecución de HyperDrive.

estimator_entry_script_arguments
list
valor predeterminado: None

Lista de argumentos de línea de comandos para el script de entrada del estimador. Si el script de entrada del estimador no acepta argumentos de línea de comandos, establezca este valor de parámetro en una lista vacía.

inputs
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
valor predeterminado: None

Una lista de enlaces de puerto de entrada.

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputAbstractDataset, OutputPortBinding]]
valor predeterminado: None

Una lista de enlaces de puerto de salida

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
valor predeterminado: None

Valor opcional que especifica la ubicación para almacenar las métricas de ejecución de HyperDrive como un archivo JSON.

allow_reuse
bool
valor predeterminado: True

Indica si el paso debe volver a usar los resultados anteriores cuando se ejecuta con la misma configuración o entrada. La reutilización está habilitada de manera predeterminada. Si el contenido del paso (scripts o dependencias), así como las entradas y los parámetros permanecen sin cambios, se reutiliza la salida de la ejecución anterior de este paso. Al volver a usar el paso, en lugar de enviar el trabajo al proceso, los resultados de la ejecución anterior se hacen disponibles inmediatamente para los pasos posteriores. Si usa conjuntos de datos de Azure Machine Learning como entradas, la reutilización viene determinada por si la definición del conjunto de datos ha cambiado, no por si los datos subyacentes han cambiado.

version
str
valor predeterminado: None

Una etiqueta de versión opcional para indicar un cambio en la funcionalidad del módulo.

name
str
Requerido

[Obligatorio] El nombre del paso.

hyperdrive_config
HyperDriveConfig
Requerido

[Obligatorio] Un elemento HyperDriveConfig que define la configuración de la ejecución de HyperDrive.

estimator_entry_script_arguments
list
Requerido

Lista de argumentos de línea de comandos para el script de entrada del estimador. Si el script de entrada del estimador no acepta argumentos de línea de comandos, establezca este valor de parámetro en una lista vacía.

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

Una lista de enlaces de puerto de salida.

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
Requerido

Valor opcional que especifica la ubicación para almacenar las métricas de ejecución de HyperDrive como un archivo JSON.

allow_reuse
bool
Requerido

Indica si el paso debe volver a usar los resultados anteriores cuando se ejecuta con la misma configuración o entrada. La reutilización está habilitada de manera predeterminada. Si el contenido del paso (scripts o dependencias), así como las entradas y los parámetros permanecen sin cambios, se reutiliza la salida de la ejecución anterior de este paso. Al volver a usar el paso, en lugar de enviar el trabajo al proceso, los resultados de la ejecución anterior se hacen disponibles inmediatamente para los pasos posteriores. Si usa conjuntos de datos de Azure Machine Learning como entradas, la reutilización viene determinada por si la definición del conjunto de datos ha cambiado, no por si los datos subyacentes han cambiado.

version
str
Requerido

version

Comentarios

Tenga en cuenta que los argumentos del script de entrada usados en el objeto del estimador (por ejemplo, el objeto TensorFlow) deben especificarse como lista mediante el parámetro estimator_entry_script_arguments al crear instancias de HyperDriveStep. El parámetro estimador script_params acepta un diccionario. Sin embargo, el parámetro estimator_entry_script_argument espera argumentos como una lista.

La inicialización de HyperDriveStep implica especificar una lista de objetos DataReference con el parámetro inputs. En Azure ML Pipelines, un paso de canalización puede tomar la salida de otro paso o los objetos DataReference como entrada. Por lo tanto, al crear un HyperDriveStep, los parámetros inputs y outputs deben establecerse explícitamente, lo que invalida el parámetro inputs especificado en el objeto Estimator.

El procedimiento recomendado para trabajar con HyperDriveStep es usar una carpeta independiente para los scripts y los archivos dependientes asociados al paso, y especificar esa carpeta como el objeto del estimador source_directory. Por ejemplo, vea el parámetro source_directory de la clase TensorFlow. Si lo hace, tiene dos ventajas. En primer lugar, ayuda a reducir el tamaño de la instantánea creada para el paso porque solo se crea una instantánea de lo que se necesita para el paso. En segundo lugar, la salida del paso de una ejecución anterior se puede reutilizar si no hay ningún cambio en source_directory que desencadene una nueva carga de la instantánea.

En el ejemplo siguiente se muestra cómo usar HyperDriveStep en una canalización de 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])

El ejemplo completo está disponible en https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb.

Métodos

create_node

Cree un nodo a partir del paso de HyperDrive y agregue al gráfico especificado.

No se debe llamar a este método directamente. Cuando se crea una instancia de una canalización con este paso, Azure ML pasa automáticamente los parámetros necesarios a través de este método para que ese paso se pueda agregar a un gráfico de canalización que represente el flujo de trabajo.

create_node

Cree un nodo a partir del paso de HyperDrive y agregue al gráfico especificado.

No se debe llamar a este método directamente. Cuando se crea una instancia de una canalización con este paso, Azure ML pasa automáticamente los parámetros necesarios a través de este método para que ese paso se pueda agregar a un gráfico de canalización que represente el flujo de trabajo.

create_node(graph, default_datastore, context)

Parámetros

graph
Graph
Requerido

El objeto de grafo al que se agrega el nodo.

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Requerido

El almacén de datos predeterminado.

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

El contexto del grafo.

Devoluciones

El nodo creado.

Tipo de valor devuelto