Поделиться через


PipelineParameter Класс

Определяет параметр в выполнении конвейера.

Используйте PipelineParameters для создания универсальных конвейеров, которые можно повторно отправить позже с различными значениями параметров.

Инициализация параметров конвейера.

Конструктор

PipelineParameter(name, default_value)

Параметры

Имя Описание
name
Обязательно
str

Имя параметра конвейера.

default_value
Обязательно

Значение по умолчанию параметра конвейера.

name
Обязательно
str

Имя параметра конвейера.

default_value
Обязательно

Значение по умолчанию параметра конвейера.

Комментарии

PipelineParameters можно добавить на любой шаг при создании конвейера. При отправке конвейера можно указать значения этих параметров.

Пример добавления PipelineParameter на шаг выглядит следующим образом:


   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)

В этом примере конвейерParameter с именем "pipeline_arg" был добавлен в аргументы PythonScriptStep. При запуске скрипта Python значение PipelineParameter будет предоставлено с помощью аргументов командной строки. Этот PipelineParameter также можно добавить к другим шагам в конвейере, чтобы предоставить общие значения для нескольких шагов в конвейере. Конвейеры могут иметь несколько указанных pipelineParameters.

Чтобы отправить этот конвейер и указать значение для использования PipelineParameter "pipeline_arg":


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

Примечание. Если параметр "pipeline_arg" не указан в словаре pipeline_parameters, значение по умолчанию конвейера, предоставленное при создании конвейера (в данном случае значение по умолчанию было указано "default_val").

Параметры с несколькими строками нельзя использовать в качестве pipelineParameters.

PipelineParameters также можно использовать для DataPathDataPathComputeBinding указания входных данных шага. Это позволяет запускать конвейер с различными входными данными.

Пример использования DataPath с PipelineParameters выглядит следующим образом:


   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)

В этом случае значение по умолчанию параметра "input_data" ссылается на файл в "workspaceblobstore" с именем "input_data". Если конвейер отправляется без указания значения для этого PipelineParameter, будет использоваться значение по умолчанию. Чтобы отправить этот конвейер и указать значение для использования 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})