Compartir a través de


PipelineParameter Clase

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

Use PipelineParameters para construir canalizaciones versátiles que se pueden volver a enviar más adelante con distintos valores de parámetro.

Inicialice los parámetros de canalización.

Constructor

PipelineParameter(name, default_value)

Parámetros

Nombre Description
name
Requerido
str

Nombre del parámetro de canalización.

default_value
Requerido

Valor predeterminado del parámetro de canalización.

name
Requerido
str

Nombre del parámetro de canalización.

default_value
Requerido

Valor predeterminado del parámetro de canalización.

Comentarios

PipelineParameters se puede agregar a cualquier paso al construir una canalización. Cuando se envía la canalización, se pueden especificar los valores de estos parámetros.

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 objeto PipelineParameter con el nombre "pipeline_arg" a los argumentos de pythonScriptStep. Cuando se ejecuta el script de Python, el valor de PipelineParameter se proporcionará a través de los argumentos de la línea de comandos. Este pipelineParameter también se puede agregar a otros pasos de la canalización para proporcionar valores comunes a varios pasos de la canalización. Las canalizaciones pueden tener varios pipelineParameters especificados.

Para enviar esta canalización y especificar el valor para el uso de PipelineParameter de "pipeline_arg":


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

Nota: si "pipeline_arg" no se especificó en el diccionario de pipeline_parameters, el valor predeterminado de PipelineParameter proporcionado cuando se construyó la canalización se usaría (en este caso, el valor predeterminado proporcionado era "default_val").

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

PipelineParameters también se puede usar con DataPath y DataPathComputeBinding para especificar entradas de paso. Esto permite que una canalización se ejecute con datos de entrada variables.

Un ejemplo de uso de DataPath con PipelineParameters 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 el "workspaceblobstore" denominado "input_data". Si la canalización se envía sin especificar un valor para pipelineParameter, se usará el valor predeterminado. Para enviar esta canalización y especificar el valor para el uso de PipelineParameter de "input_data":


   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})