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.objectPipelineParameter
Konstruktor
PipelineParameter(name, default_value)
Parametry
Name | Description |
---|---|
name
Vyžadováno
|
Název parametru kanálu. |
default_value
Vyžadováno
|
Výchozí hodnota parametru kanálu. |
name
Vyžadováno
|
Název parametru kanálu. |
default_value
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})