Compartilhar via


PipelineParameter Classe

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

Use PipelineParameters para criar pipelines versáteis que podem ser reenviados mais tarde com valores de parâmetro variados.

Inicializar parâmetros de pipeline.

Herança
builtins.object
PipelineParameter

Construtor

PipelineParameter(name, default_value)

Parâmetros

Nome Description
name
Obrigatório
str

O nome do parâmetro de pipeline.

default_value
Obrigatório

O valor padrão do parâmetro de pipeline.

name
Obrigatório
str

O nome do parâmetro de pipeline.

default_value
Obrigatório

O valor padrão do parâmetro de pipeline.

Comentários

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

Confira o seguinte exemplo de como adicionar um PipelineParameter a uma etapa:


   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 for executado, o valor do PipelineParameter será fornecido por meio dos argumentos de 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 esse pipeline e especificar o valor para o uso do PipelineParameter "pipeline_arg":


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

Observação: se "pipeline_arg" não tiver sido especificado no dicionário pipeline_parameters, o valor padrão do PipelineParameter fornecido quando o pipeline foi criado será usado (nesse caso, o valor padrão fornecido foi "default_val").

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 variados.

Um exemplo de como usar 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 esse PipelineParameter, o valor padrão será usado. Para enviar esse pipeline e especificar o valor para o uso 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})