HyperDriveStep Clase
Crea un paso de canalización de Azure ML para ejecutar la asignación de hiperparámetros para el entrenamiento del modelo de Machine Learning.
Para obtener un ejemplo de 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.
Constructor
HyperDriveStep(name, hyperdrive_config, estimator_entry_script_arguments=None, inputs=None, outputs=None, metrics_output=None, allow_reuse=True, version=None)
Parámetros
Nombre | Description |
---|---|
name
Requerido
|
[Obligatorio] Nombre del paso. |
hyperdrive_config
Requerido
|
[Obligatorio] HyperDriveConfig que define la configuración de la ejecución de HyperDrive. |
estimator_entry_script_arguments
|
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. Valor predeterminado: None
|
inputs
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
Lista de enlaces de puerto de entrada. Valor predeterminado: None
|
outputs
|
Una lista de enlaces de puerto de salida Valor predeterminado: None
|
metrics_output
|
Valor opcional que especifica la ubicación para almacenar las métricas de ejecución de HyperDrive como un archivo JSON. Valor predeterminado: None
|
allow_reuse
|
Indica si el paso debe reutilizar los resultados anteriores al volver a ejecutarse con la misma configuración. La reutilización está habilitada de forma 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 pone inmediatamente a disposición de 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. Valor predeterminado: True
|
version
|
Etiqueta de versión opcional para indicar un cambio en la funcionalidad del módulo. Valor predeterminado: None
|
name
Requerido
|
[Obligatorio] Nombre del paso. |
hyperdrive_config
Requerido
|
[Obligatorio] HyperDriveConfig que define la configuración de la ejecución de HyperDrive. |
estimator_entry_script_arguments
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. |
inputs
Requerido
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
Lista de enlaces de puerto de entrada. |
outputs
Requerido
|
Lista de enlaces de puerto de salida. |
metrics_output
Requerido
|
Valor opcional que especifica la ubicación para almacenar las métricas de ejecución de HyperDrive como un archivo JSON. |
allow_reuse
Requerido
|
Indica si el paso debe reutilizar los resultados anteriores al volver a ejecutarse con la misma configuración. La reutilización está habilitada de forma 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 pone inmediatamente a disposición de 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
Requerido
|
Versión |
Comentarios
Tenga en cuenta que los argumentos del script de entrada que se usan en el objeto estimador (por ejemplo, el TensorFlow objeto) deben especificarse como lista mediante el estimator_entry_script_arguments
parámetro al crear una instancia de HyperDriveStep. El parámetro script_params
estimador acepta un diccionario. Sin embargo, estimator_entry_script_argument
el parámetro espera argumentos como una lista.
La inicialización de HyperDriveStep implica especificar una lista de DataReference objetos con el inputs
parámetro . En Azure ML Pipelines, un paso de canalización puede realizar la salida de otro paso o objetos DataReference como entrada. Por lo tanto, al crear un HyperDriveStep, los inputs
parámetros y outputs
deben establecerse explícitamente, que invalida el inputs
parámetro especificado en el objeto Estimator.
El procedimiento recomendado para trabajar con HyperDriveStep es usar una carpeta independiente para scripts y los archivos dependientes asociados al paso y especificar esa carpeta como el objeto estimador.source_directory
Por ejemplo, consulte el source_directory
parámetro de la TensorFlow clase . Esto tiene dos ventajas. En primer lugar, ayuda a reducir el tamaño de la instantánea creada para el paso porque solo se instantánea 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 que source_directory
desencadenaría una nueva carga del snaphot.
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 desde el paso HyperDrive y agréguelo al grafo especificado. Este método no está pensado para usarse 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 el paso se pueda agregar a un grafo de canalización que represente el flujo de trabajo. |
create_node
Cree un nodo desde el paso HyperDrive y agréguelo al grafo especificado.
Este método no está pensado para usarse 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 el paso se pueda agregar a un grafo de canalización que represente el flujo de trabajo.
create_node(graph, default_datastore, context)
Parámetros
Nombre | Description |
---|---|
graph
Requerido
|
Objeto de grafo al que se va a agregar el nodo. |
default_datastore
Requerido
|
Almacén de datos predeterminado. |
context
Requerido
|
<xref:azureml.pipeline.core._GraphContext>
Contexto del grafo. |
Devoluciones
Tipo | Description |
---|---|
Nodo creado. |