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.objectPipelineParameter
Constructor
PipelineParameter(name, default_value)
Parámetros
Nombre | Description |
---|---|
name
Requerido
|
El nombre del parámetro de canalización. |
default_value
Requerido
|
El valor predeterminado del parámetro de canalización. |
name
Requerido
|
El nombre del parámetro de canalización. |
default_value
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})