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


PipelineData Класс

Представляет промежуточные данные в конвейере машинного обучения Azure.

Данные, используемые в конвейере, можно создать на одном шаге и использовать в другом шаге, предоставив объект PipelineData в качестве выходных данных одного шага и входных данных одного или нескольких последующих шагов.

Обратите внимание , что если вы используете данные конвейера, убедитесь, что используемый каталог существует.

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


   import os
   os.makedirs(args.output_folder, exist_ok=True)
   f = open(args.output_folder + '/relative_path/file_name', 'w+')

PipelineData использует базовый объект DataReference , который больше не рекомендуется использовать для доступа к данным и доставки, используйте OutputFileDatasetConfig вместо этого пример: Pipeline using OutputFileDatasetConfig.

Инициализация PipelineData.

Конструктор

PipelineData(name, datastore=None, output_name=None, output_mode='mount', output_path_on_compute=None, output_overwrite=None, data_type=None, is_directory=None, pipeline_output_name=None, training_output=None)

Параметры

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

Имя объекта PipelineData, который может содержать только буквы, цифры и подчеркивания.

Имена PipelineData используются для идентификации выходных данных шага. После завершения выполнения конвейера можно использовать имя шага с выходным именем для доступа к определенному выходу. Имена должны быть уникальными в одном шаге конвейера.

datastore

Хранилище данных, в котором будет находиться PipelineData. Если не указано, используется хранилище данных по умолчанию.

Default value: None
output_name
str

Имя выходных данных, если используется имя None. Может содержать только буквы, цифры и символы подчеркивания.

Default value: None
output_mode
str

Указывает, будет ли шаг создания использовать метод "upload" или "mount" для доступа к данным.

Default value: mount
output_path_on_compute
str

Для output_mode = "upload", этот параметр представляет путь, в который модуль записывает выходные данные.

Default value: None
output_overwrite

Для output_mode = "upload", этот параметр указывает, следует ли перезаписать существующие данные.

Default value: None
data_type
str

Необязательно. Тип данных можно использовать для указания ожидаемого типа выходных данных и подробных сведений о том, как потреблять данные. Это может быть любая определяемая пользователем строка.

Default value: None
is_directory

Указывает, являются ли данные каталогом или одним файлом. Это используется только для определения типа данных, используемого серверной частью Машинного обучения Azure, если data_type параметр не указан. Значение по умолчанию — False.

Default value: None
pipeline_output_name

Если эти выходные данные будут доступны с помощью PipelineRun.get_pipeline_output(). Имена выходных данных конвейера должны быть уникальными в конвейере.

Default value: None
training_output

Определяет выходные данные для результата обучения. Это необходимо только для конкретных учебных занятий, которые приводят к различным типам выходных данных, таких как метрики и модель. Например, AutoMLStep приводит к метрикам и модели. Вы также можете определить конкретную итерацию обучения или метрики, используемые для получения оптимальной модели. Для HyperDriveStepэтого можно также определить файлы конкретной модели, которые будут включены в выходные данные.

Default value: None
name
Обязательно
str

Имя объекта PipelineData, который может содержать только буквы, цифры и подчеркивания.

Имена PipelineData используются для идентификации выходных данных шага. После завершения выполнения конвейера можно использовать имя шага с выходным именем для доступа к определенному выходу. Имена должны быть уникальными в одном шаге конвейера.

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

Хранилище данных, в котором будет находиться PipelineData. Если не указано, используется хранилище данных по умолчанию.

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

Имя выходных данных, если используется имя None. которые могут содержать только буквы, цифры и знаки подчеркивания.

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

Указывает, будет ли шаг создания использовать метод "upload" или "mount" для доступа к данным.

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

Для output_mode = "upload", этот параметр представляет путь, в который модуль записывает выходные данные.

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

Для output_mode = "upload", этот параметр указывает, следует ли перезаписать существующие данные.

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

Необязательно. Тип данных можно использовать для указания ожидаемого типа выходных данных и подробных сведений о том, как потреблять данные. Это может быть любая определяемая пользователем строка.

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

Указывает, являются ли данные каталогом или одним файлом. Это используется только для определения типа данных, используемого серверной частью Машинного обучения Azure, если data_type параметр не указан. Значение по умолчанию — False.

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

Если эти выходные данные будут доступны с помощью PipelineRun.get_pipeline_output(). Имена выходных данных конвейера должны быть уникальными в конвейере.

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

Определяет выходные данные для результата обучения. Это необходимо только для конкретных учебных занятий, которые приводят к различным типам выходных данных, таких как метрики и модель. Например, AutoMLStep приводит к метрикам и модели. Вы также можете определить конкретную итерацию обучения или метрики, используемые для получения оптимальной модели. Для HyperDriveStepэтого можно также определить файлы конкретной модели, которые будут включены в выходные данные.

Комментарии

PipelineData представляет выходные данные, которые будут производиться при выполнении. Используйте PipelineData при создании шагов, чтобы описать файлы или каталоги, которые будут созданы на шаге. Эти выходные данные будут добавлены в указанное хранилище данных, и их можно получить и просмотреть позже.

Например, на следующем шаге конвейера создается один вывод с именем model:


   from azureml.pipeline.core import PipelineData
   from azureml.pipeline.steps import PythonScriptStep

   datastore = ws.get_default_datastore()
   step_output = PipelineData("model", datastore=datastore)
   step = PythonScriptStep(script_name="train.py",
                           arguments=["--model", step_output],
                           outputs=[step_output],
                           compute_target=aml_compute,
                           source_directory=source_directory)

В этом случае скрипт train.py будет записывать модель, которую он создает, в расположение, которое предоставляется скрипту с помощью аргумента -model.

Объекты PipelineData также используются при создании конвейеров для описания зависимостей шагов. Чтобы указать, что для шага требуется вывод другого шага в качестве входных данных, используйте объект PipelineData в конструкторе обоих шагов.

Например, шаг обучения конвейера зависит от process_step_output выходных данных шага процесса конвейера:


   from azureml.pipeline.core import Pipeline, PipelineData
   from azureml.pipeline.steps import PythonScriptStep

   datastore = ws.get_default_datastore()
   process_step_output = PipelineData("processed_data", datastore=datastore)
   process_step = PythonScriptStep(script_name="process.py",
                                   arguments=["--data_for_train", process_step_output],
                                   outputs=[process_step_output],
                                   compute_target=aml_compute,
                                   source_directory=process_directory)
   train_step = PythonScriptStep(script_name="train.py",
                                 arguments=["--data_for_train", process_step_output],
                                 inputs=[process_step_output],
                                 compute_target=aml_compute,
                                 source_directory=train_directory)

   pipeline = Pipeline(workspace=ws, steps=[process_step, train_step])

При этом будет создан конвейер с двумя шагами. Этап процесса будет выполнен сначала, а затем после завершения процесса будет выполнен шаг обучения. Машинное обучение Azure предоставит выходные данные, созданные этапом процесса на шаге обучения.

На этой странице приведены дополнительные примеры использования PipelineData для создания конвейера: https://aka.ms/pl-data-dep

Для поддерживаемых типов вычислений PipelineData также можно использовать для указания способа создания и использования данных в ходе выполнения. Существует два поддерживаемых метода:

  • Подключение (по умолчанию): входные или выходные данные подключены к локальному хранилищу на вычислительном узле, а переменная среды задает путь к этим данным ($AZUREML_DATAREFERENCE_name). Для удобства можно передать объект PipelineData в качестве одного из аргументов скрипта, например с помощью arguments параметра PythonScriptStep, и объект будет разрешать путь к данным. Для выходных данных скрипт вычислений должен создать файл или каталог на этом выходном пути. Чтобы просмотреть значение переменной среды, используемой при передаче объекта Pipeline в качестве аргумента, используйте get_env_variable_name этот метод.

  • Отправка: укажите соответствующее output_path_on_compute имя файла или каталога, которое будет создан скрипт. (Переменные среды в данном случае не используются.)

Методы

as_dataset

Повышение промежуточного выходных данных в набор данных.

Этот набор данных будет существовать после выполнения шага. Обратите внимание, что выходные данные должны быть набором данных, чтобы последующие входные данные были использованы в качестве набора данных. Если as_dataset не вызывается для выходных данных, но вызывается только для входных данных, то входные данные не будут использоваться в качестве набора данных. В приведенном ниже примере кода показано правильное использование as_dataset:


   # as_dataset is called here and is passed to both the output and input of the next step.
   pipeline_data = PipelineData('output').as_dataset()

   step1 = PythonScriptStep(..., outputs=[pipeline_data])
   step2 = PythonScriptStep(..., inputs=[pipeline_data])
as_download

Использование PipelineData как скачиваемого файла.

as_input

Создайте InputPortBinding и укажите входное имя (но используйте режим по умолчанию).

as_mount

Использование PipelineData в качестве подключения.

create_input_binding

Создайте входную привязку.

get_env_variable_name

Возвращает имя переменной среды для этого PipelineData.

as_dataset

Повышение промежуточного выходных данных в набор данных.

Этот набор данных будет существовать после выполнения шага. Обратите внимание, что выходные данные должны быть набором данных, чтобы последующие входные данные были использованы в качестве набора данных. Если as_dataset не вызывается для выходных данных, но вызывается только для входных данных, то входные данные не будут использоваться в качестве набора данных. В приведенном ниже примере кода показано правильное использование as_dataset:


   # as_dataset is called here and is passed to both the output and input of the next step.
   pipeline_data = PipelineData('output').as_dataset()

   step1 = PythonScriptStep(..., outputs=[pipeline_data])
   step2 = PythonScriptStep(..., inputs=[pipeline_data])
as_dataset()

Возвращаемое значение

Тип Описание

Промежуточные выходные данные в виде набора данных.

as_download

Использование PipelineData как скачиваемого файла.

as_download(input_name=None, path_on_compute=None, overwrite=None)

Параметры

Имя Описание
input_name
str

Используется для указания имени для этих входных данных.

Default value: None
path_on_compute
str

Путь к вычислению, в который нужно скачать.

Default value: None
overwrite

Используется для указания того, следует ли перезаписывать существующие данные.

Default value: None

Возвращаемое значение

Тип Описание

InputPortBinding с этим PipelineData в качестве источника.

as_input

Создайте InputPortBinding и укажите входное имя (но используйте режим по умолчанию).

as_input(input_name)

Параметры

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

Используется для указания имени для этих входных данных.

Возвращаемое значение

Тип Описание

InputPortBinding с этим PipelineData в качестве источника.

as_mount

Использование PipelineData в качестве подключения.

as_mount(input_name=None)

Параметры

Имя Описание
input_name
str

Используется для указания имени для этих входных данных.

Default value: None

Возвращаемое значение

Тип Описание

InputPortBinding с этим PipelineData в качестве источника.

create_input_binding

Создайте входную привязку.

create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)

Параметры

Имя Описание
input_name
str

Имя входных данных.

Default value: None
mode
str

Режим доступа к PipelineData ("mount" или "download").

Default value: None
path_on_compute
str

В режиме скачивания путь к вычислительным данным будет находиться.

Default value: None
overwrite

Для режима скачивания следует перезаписать существующие данные.

Default value: None

Возвращаемое значение

Тип Описание

InputPortBinding с этим PipelineData в качестве источника.

get_env_variable_name

Возвращает имя переменной среды для этого PipelineData.

get_env_variable_name()

Возвращаемое значение

Тип Описание
str

Имя переменной среды.

Атрибуты

data_type

Тип данных, которые будут созданы.

Возвращаемое значение

Тип Описание
str

Имя типа данных.

datastore

Хранилище данных, в котором будет находиться PipelineData.

Возвращаемое значение

Тип Описание

Объект хранилища данных.

name

Имя объекта PipelineData.

Возвращаемое значение

Тип Описание
str

Имя.