PipelineParameter Classe
Define um parâmetro numa execução de pipeline.
Utilize PipelineParameters para construir Pipelines versáteis que podem ser novamente submetidos mais tarde com valores de parâmetros variáveis.
Inicializar parâmetros de pipeline.
- Herança
-
builtins.objectPipelineParameter
Construtor
PipelineParameter(name, default_value)
Parâmetros
Name | Description |
---|---|
name
Necessário
|
O nome do parâmetro do pipeline. |
default_value
Necessário
|
O valor predefinido do parâmetro do pipeline. |
name
Necessário
|
O nome do parâmetro do pipeline. |
default_value
Necessário
|
O valor predefinido do parâmetro do pipeline. |
Observações
Os PipelineParameters podem ser adicionados a qualquer passo ao construir um Pipeline. Quando o Pipeline é submetido, os valores destes parâmetros podem ser especificados.
Um exemplo de adição de um PipelineParameter a um passo é o seguinte:
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)
Neste exemplo, foi adicionado um PipelineParameter com o nome "pipeline_arg" aos argumentos de um PythonScriptStep. Quando o script python é executado, o valor do PipelineParameter será fornecido através dos argumentos da linha de comandos. Este PipelineParameter também pode ser adicionado a outros passos no Pipeline para fornecer valores comuns a múltiplos passos no Pipeline. Os pipelines podem ter vários PipelineParameters especificados.
Para submeter este Pipeline e especificar o valor para a utilização do PipelineParameter "pipeline_arg":
pipeline = Pipeline(workspace=ws, steps=[train_step])
pipeline_run = Experiment(ws, 'train').submit(pipeline, pipeline_parameters={"pipeline_arg": "test_value"})
Nota: se "pipeline_arg" não tiver sido especificado no dicionário pipeline_parameters, o valor predefinido do PipelineParameter fornecido quando o Pipeline foi construído seria utilizado (neste caso, o valor predefinido fornecido era "default_val").
Os parâmetros de várias linhas não podem ser utilizados como PipelineParameters.
Os PipelineParameters também podem ser utilizados com DataPath e DataPathComputeBinding para especificar entradas de passos. Isto permite que um Pipeline seja executado com dados de entrada diferentes.
Um exemplo de utilização do DataPath com PipelineParameters é o seguinte:
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)
Neste caso, o valor predefinido do parâmetro "input_data" referencia um ficheiro no "workspaceblobstore" com o nome "input_data". Se o Pipeline for submetido sem especificar um valor para este PipelineParameter, será utilizado o valor predefinido. Para submeter este Pipeline e especificar o valor para a utilização do PipelineParameter "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})