Compartilhar via


PipelineParameter Classe

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

Use PipelineParameters para construir Pipelines versáteis que podem ser reenviado posteriormente com valores de parâmetros variados.

Inicializar parâmetros de pipeline.

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 construir um Pipeline. Quando o Pipeline é enviado, os valores desses parâmetros podem ser especificados.

Um exemplo de como adicionar 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 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 este Pipeline e especificar o valor para o uso de 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 construído 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 o 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 de 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})