PipelineParameter Classe

Define um parâmetro numa execução de gasoduto.

Utilize parâmetros pipeline para construir gasodutos versáteis que podem ser reenviados posteriormente com valores de parâmetros variados.

Herança
builtins.object
PipelineParameter

Construtor

PipelineParameter(name, default_value)

Parâmetros

name
<xref:str>

O nome do parâmetro do oleoduto.

default_value
<xref:typing.Union>[<xref:int>, <xref:str>, <xref:bool>, <xref:float,azureml.data.datapath.DataPath,azureml.pipeline.core.PipelineDataset,azureml.data.FileDataset,azureml.data.TabularDataset>]

O valor predefinido do parâmetro do gasoduto.

Observações

Os gasodutos Podem ser adicionados a qualquer passo na construção de um gasoduto. 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, 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 através dos argumentos da linha de comando. Este PipelineParameter também pode ser adicionado a outros passos no Pipeline para fornecer valores comuns a várias etapas no Pipeline. Os gasodutos 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 não fosse especificado "pipeline_arg" no dicionário pipeline_parameters, seria utilizado o valor predefinido do PipelineParameter previsto na construção do gasoduto (neste caso, o valor por defeito fornecido era "default_val").

Os parâmetros multi-linha não podem ser usados como Parâmetros Pipeline.

Os PipelineParameters também podem ser DataPath utilizados e DataPathComputeBinding especificar entradas de passo. Isto permite que um Pipeline seja executado com dados de entrada variados.

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" refere um ficheiro na "workspaceblobstore" denominado "input_data". Se o Pipeline for submetido sem especificar um valor para este PipelineParameter, o valor predefinido será utilizado. 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})