PipelineParameter Třída

Definuje parametr při spuštění kanálu.

Pomocí PipelineParameters můžete vytvořit univerzální kanály, které se dají později znovu odeslat s různými hodnotami parametrů.

Inicializace parametrů kanálu

Dědičnost
builtins.object
PipelineParameter

Konstruktor

PipelineParameter(name, default_value)

Parametry

name
str
Vyžadováno

Název parametru kanálu.

default_value
Union[int, str, bool, float, DataPath, PipelineDataset, FileDataset, TabularDataset]
Vyžadováno

Výchozí hodnota parametru kanálu.

name
str
Vyžadováno

Název parametru kanálu.

default_value
Union[int, str, bool, float, DataPath, PipelineDataset, FileDataset, TabularDataset]
Vyžadováno

Výchozí hodnota parametru kanálu.

Poznámky

Parametry pipelineparameters je možné přidat do libovolného kroku při vytváření kanálu. Při odeslání kanálu je možné zadat hodnoty těchto parametrů.

Příklad přidání PipelineParameter do kroku je následující:


   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)

V tomto příkladu byl do argumentů PythonScriptStep přidán Parametr PipelineParameter s názvem "pipeline_arg". Při spuštění skriptu Pythonu se hodnota PipelineParameter poskytne prostřednictvím argumentů příkazového řádku. Tento parametr PipelineParameter je také možné přidat do dalších kroků v kanálu a poskytnout tak společné hodnoty pro více kroků v kanálu. Kanály můžou mít zadaných více parametrů PipelineParameters.

Pokud chcete odeslat tento kanál a zadat hodnotu parametru PipelineParameter "pipeline_arg", použijte:


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

Poznámka: Pokud ve slovníku pipeline_parameters nebyla zadána hodnota "pipeline_arg", použije se výchozí hodnota PipelineParameter zadaná při vytváření kanálu (v tomto případě byla zadaná výchozí hodnota "default_val").

Víceřádkové parametry se nedají použít jako PipelineParameters.

PipelineParameters lze použít také s DataPath a DataPathComputeBinding k určení vstupů kroků. To umožňuje spuštění kanálu s různými vstupními daty.

Příklad použití dataPath s PipelineParameters je následující:


   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)

V tomto případě výchozí hodnota parametru "input_data" odkazuje na soubor v "workspaceblobstore" s názvem "input_data". Pokud se kanál odešle bez zadání hodnoty tohoto parametru PipelineParameter, použije se výchozí hodnota. Pokud chcete odeslat tento kanál a zadat hodnotu parametru "input_data" PipelineParameter, použijte:


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