Sdílet prostřednictvím


PipelineParameter Třída

Definuje parametr při provádění kanálu.

Pomocí PipelineParameters můžete vytvořit univerzální kanály, které lze 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

PipelineParameters se dají přidat do libovolného kroku při vytváření kanálu. Po 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 můžete také 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 "pipeline_arg" PipelineParameter, 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 výchozí zadaná hodnota "default_val").

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

PipelineParameters lze také použít s DataPath a DataPathComputeBinding k zadání 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 je kanál odeslán bez zadání hodnoty pro tento parametr PipelineParameter, použije se výchozí hodnota. Pokud chcete odeslat tento kanál a zadat hodnotu pro "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})