Partilhar via


PipelineParameter Classe

Define um parâmetro em uma execução de pipeline.

Use PipelineParameters para construir Pipelines versáteis que podem ser reenviados posteriormente com valores de parâmetros variáveis.

Inicialize os parâmetros do pipeline.

Construtor

PipelineParameter(name, default_value)

Parâmetros

Name Description
name
Necessário
str

O nome do parâmetro pipeline.

default_value
Necessário

O valor padrão do parâmetro pipeline.

name
Necessário
str

O nome do parâmetro pipeline.

default_value
Necessário

O valor padrão do parâmetro pipeline.

Observações

PipelineParameters pode ser adicionado a qualquer etapa ao construir um Pipeline. Quando o Pipeline é enviado, os valores desses parâmetros podem ser especificados.

Um exemplo de adição de um PipelineParameter a uma etapa é 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, um PipelineParameter com o nome "pipeline_arg" foi adicionado aos argumentos de um PythonScriptStep. Quando o script Python é executado, o valor do PipelineParameter será fornecido através dos argumentos da linha de comando. Esse PipelineParameter também pode ser adicionado a outras etapas no Pipeline para fornecer valores comuns a várias etapas no Pipeline. Os pipelines podem ter vários PipelineParameters especificados.

Para enviar este Pipeline e especificar o valor para o uso "pipeline_arg" PipelineParameter:


   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 foi especificado no dicionário pipeline_parameters, o valor padrão do PipelineParameter fornecido quando o Pipeline foi construído seria usado (neste caso, o valor padrão fornecido foi "default_val").

Os parâmetros de várias linhas não podem ser usados como PipelineParameters.

PipelineParameters também pode ser usado com DataPath e DataPathComputeBinding para especificar entradas de etapa. Isso permite que um Pipeline seja executado com dados de entrada variáveis.

Um exemplo de uso de 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)

Nesse caso, o valor padrão do parâmetro "input_data" faz referência a um arquivo no "workspaceblobstore" chamado "input_data". Se o Pipeline for enviado sem especificar um valor para este PipelineParameter, o valor padrão será usado. Para enviar este Pipeline e especificar o valor para o uso "input_data" PipelineParameter:


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