Partilhar via


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.object
PipelineParameter

Construtor

PipelineParameter(name, default_value)

Parâmetros

Name Description
name
Necessário
str

O nome do parâmetro do pipeline.

default_value
Necessário

O valor predefinido do parâmetro do pipeline.

name
Necessário
str

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