PipelineParameter Класс
Определяет параметр в выполнении конвейера.
Объекты PipelineParameter позволяют создавать универсальные конвейеры, которые можно повторно отправить позже, используя различные значения параметров.
Инициализация параметров конвейера.
- Наследование
-
builtins.objectPipelineParameter
Конструктор
PipelineParameter(name, default_value)
Параметры
Имя | Описание |
---|---|
name
Обязательно
|
Имя параметра конвейера. |
default_value
Обязательно
|
Значение по умолчанию имени параметра конвейера. |
name
Обязательно
|
Имя параметра конвейера. |
default_value
Обязательно
|
Значение по умолчанию имени параметра конвейера. |
Комментарии
Объекты PipelineParameter можно добавить в любой этап при создании Конвейера. При повторной отправке конвейера можно указать значения этих параметров.
Пример добавления 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)
В этом примере в аргументы PythonScriptStep был добавлен объект PipelineParameter с именем pipeline_arg. При выполнении скрипта Python значение PipelineParameter будет предоставлено через аргументы командной строки. Этот объект PipelineParameter можно также добавить в другие этапы в конвейере, чтобы передать общие значения в несколько этапов конвейера. Для конвейеров можно указать несколько объектов PipelineParameter.
Отправить этот конвейер и указать значение для объекта 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, используется значение по умолчанию PipelineParameter, предоставляемое при создании конвейера (в данном случае значение по умолчанию — default_val).
Многострочные параметры нельзя использовать в качестве объектов PipelineParameter.
Объекты PipelineParameter можно также использовать с DataPath и DataPathComputeBinding для указания входных данных этапа. Это позволяет запускать конвейер с различными входными данными.
Ниже приведен пример использования пути к данным (DataPath) с объектами PipelineParameter:
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 ссылается на файл input_data, хранящийся в workspaceblobstore. Если конвейер отправляется без указания значения для этого объекта 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})