PipelineParameter Clase

Define un parámetro de una ejecución de canalización.

Use PipelineParameters para construir canalizaciones versátiles que se pueden volver a enviar posteriormente con distintos valores de parámetros.

Inicializar parámetros de canalización.

Herencia
builtins.object
PipelineParameter

Constructor

PipelineParameter(name, default_value)

Parámetros

name
str
Requerido

El nombre del parámetro de canalización.

default_value
Union[int, str, bool, float, DataPath, PipelineDataset, FileDataset, TabularDataset]
Requerido

El valor predeterminado del parámetro de canalización.

name
str
Requerido

El nombre del parámetro de canalización.

default_value
Union[int, str, bool, float, DataPath, PipelineDataset, FileDataset, TabularDataset]
Requerido

El valor predeterminado del parámetro de canalización.

Comentarios

PipelineParameters se puede agregar a cualquier paso al construir una canalización. Los valores de esos parámetros se pueden especificar al enviar la canalización.

Un ejemplo de cómo agregar PipelineParameter a un paso es el siguiente:


   from azureml.pipeline.steps import PythonScriptStep
   from azureml.pipeline.core import PipelineParameter

   pipeline_param = PipelineParameter(name="pipeline_arg", default_value="default_val")
   train_step = PythonScriptStep(script_name="train.py",
                                 arguments=["--param1", pipeline_param],
                                 target=compute_target,
                                 source_directory=project_folder)

En este ejemplo, se agregó un elemento PipelineParameter con el nombre "pipeline_arg" a los argumentos de PythonScriptStep. Si se ejecuta el script de Python, el valor de PipelineParameter se proporcionará mediante los argumentos de la línea de comandos. Este elemento PipelineParameter también se puede agregar a otros pasos de la canalización para proporcionar valores comunes. Las canalizaciones pueden tener varios elementos PipelineParameters especificados.

Para enviar esta canalización y especificar el valor del elemento PipelineParameter de "pipeline_arg" use:


   pipeline = Pipeline(workspace=ws, steps=[train_step])
   pipeline_run = Experiment(ws, 'train').submit(pipeline, pipeline_parameters={"pipeline_arg": "test_value"})

Nota: Si no se especificó "pipeline_arg" en el diccionario de pipeline_parameters, se usará el valor predeterminado de PipelineParameter que se proporcionó cuando se creó la canalización (en este caso, el valor predeterminado proporcionado es "default_val").

Los parámetros de varias líneas no se pueden usar como elementos PipelineParameter.

Los elementos PipelineParameter también se pueden usar con DataPath y DataPathComputeBinding para especificar entradas de pasos. Esto permite ejecutar una canalización con datos de entrada variables.

Un ejemplo del uso de DataPath con elementos PipelineParameter es el siguiente:


   from azureml.core.datastore import Datastore
   from azureml.data.datapath import DataPath, DataPathComputeBinding
   from azureml.pipeline.steps import PythonScriptStep
   from azureml.pipeline.core import PipelineParameter

   datastore = Datastore(workspace=workspace, name="workspaceblobstore")
   datapath = DataPath(datastore=datastore, path_on_datastore='input_data')
   data_path_pipeline_param = (PipelineParameter(name="input_data", default_value=datapath),
                               DataPathComputeBinding(mode='mount'))

   train_step = PythonScriptStep(script_name="train.py",
                                 arguments=["--input", data_path_pipeline_param],
                                 inputs=[data_path_pipeline_param],
                                 compute_target=compute_target,
                                 source_directory=project_folder)

En este caso, el valor predeterminado del parámetro "input_data" hace referencia a un archivo en "workspaceblobstore" denominado "input_data". Si la canalización se envía sin especificar un valor para este elemento PipelineParameter, se usará el valor predeterminado. Para enviar esta canalización y especificar el valor del elemento PipelineParameter de "input_data" use:


   from azureml.pipeline.core import Pipeline
   from azureml.data.datapath import DataPath

   pipeline = Pipeline(workspace=ws, steps=[train_step])
   new_data_path = DataPath(datastore=datastore, path_on_datastore='new_input_data')
   pipeline_run = experiment.submit(pipeline,
                                    pipeline_parameters={"input_data": new_data_path})