PipelineParameter Klasa
Definiuje parametr w wykonaniu potoku.
Użyj parametrów PipelineParameters, aby utworzyć uniwersalne potoki, które można ponownie przesłać później z różnych wartości parametrów.
Inicjowanie parametrów potoku.
- Dziedziczenie
-
builtins.objectPipelineParameter
Konstruktor
PipelineParameter(name, default_value)
Parametry
Nazwa | Opis |
---|---|
name
Wymagane
|
Nazwa parametru potoku. |
default_value
Wymagane
|
Wartość domyślna parametru potoku. |
name
Wymagane
|
Nazwa parametru potoku. |
default_value
Wymagane
|
Wartość domyślna parametru potoku. |
Uwagi
Parametry potoku można dodać do dowolnego kroku podczas tworzenia potoku. Po przesłaniu potoku można określić wartości tych parametrów.
Przykład dodawania parametru PipelineParameter do kroku jest następujący:
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)
W tym przykładzie parametr PipelineParameter o nazwie "pipeline_arg" został dodany do argumentów języka PythonScriptStep. Po uruchomieniu skryptu języka Python wartość parametru PipelineParameter zostanie podana za pośrednictwem argumentów wiersza polecenia. Ten parametr PipelineParameter można również dodać do innych kroków w potoku, aby podać wspólne wartości dla wielu kroków w potoku. Określone potoki mogą mieć wiele parametrów PipelineParameters.
Aby przesłać ten potok i określić wartość parametru PipelineParameter "pipeline_arg":
pipeline = Pipeline(workspace=ws, steps=[train_step])
pipeline_run = Experiment(ws, 'train').submit(pipeline, pipeline_parameters={"pipeline_arg": "test_value"})
Uwaga: jeśli w słowniku pipeline_parameters nie określono wartości "pipeline_arg", wartość domyślna parametru PipelineParameter podana podczas konstruowania potoku będzie używana (w tym przypadku podana wartość domyślna to "default_val").
Nie można używać parametrów wielowierszowych jako PipelineParameters.
Parametry PipelineParameters można również używać z elementami DataPath i DataPathComputeBinding do określania danych wejściowych kroków. Dzięki temu potok może być uruchamiany z różnych danych wejściowych.
Przykład użycia ścieżki DataPath z parametrami PipelineParameters jest następujący:
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)
W tym przypadku wartość domyślna parametru "input_data" odwołuje się do pliku w "workspaceblobstore" o nazwie "input_data". Jeśli potok zostanie przesłany bez określenia wartości dla tego parametru PipelineParameter, zostanie użyta wartość domyślna. Aby przesłać ten potok i określić wartość parametru 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})