Udostępnij za pośrednictwem


PipelineParameter Klasa

Definiuje parametr w wykonaniu potoku.

Użyj parametrów PipelineParameters, aby utworzyć uniwersalne potoki, które można przesłać ponownie później przy użyciu różnych wartości parametrów.

Inicjowanie parametrów potoku.

Dziedziczenie
builtins.object
PipelineParameter

Konstruktor

PipelineParameter(name, default_value)

Parametry

Nazwa Opis
name
Wymagane
str

Nazwa parametru potoku.

default_value
Wymagane

Wartość domyślna parametru potoku.

name
Wymagane
str

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 udostępnić wspólne wartości wielu kroków w potoku. Potoki mogą mieć określony 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", zostanie użyta wartość domyślna parametru PipelineParameter podana podczas konstruowania potoku (w tym przypadku podana wartość domyślna to "default_val").

Parametrów wielowierszowych nie można używać jako parametrów PipelineParameters.

Parametry potoku mogą być również używane z elementami DataPath i DataPathComputeBinding do określania danych wejściowych kroków. Dzięki temu potok może być uruchamiany przy użyciu różnych danych wejściowych.

Przykład użycia metody 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})