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. Пример можно найти здесь: Конвейер, использующий OutputFileDatasetConfig.

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

Наследование
builtins.object
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
AbstractAzureStorageDatastore или AzureDataLakeDatastore
значение по умолчанию: None

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

output_name
str
значение по умолчанию: None

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

output_mode
str
значение по умолчанию: mount

Указывает, будет ли этап создания использовать для доступа к данным метод "отправка" или "подключение".

output_path_on_compute
str
значение по умолчанию: None

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

output_overwrite
bool
значение по умолчанию: None

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

data_type
str
значение по умолчанию: None

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

is_directory
bool
значение по умолчанию: None

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

pipeline_output_name
значение по умолчанию: None

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

training_output
TrainingOutput
значение по умолчанию: None

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

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

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

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

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

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

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

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

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

Указывает, будет ли этап создания использовать для доступа к данным метод "отправка" или "подключение".

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии

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

Например, следующий этап конвейера создает один набор выходных данных с именем "модель":


   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 ML предоставит на этап обучения выходные данные, созданные на этапе обработки.

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

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

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

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

Методы

as_dataset

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

Этот набор данных будет существовать после выполнения этапа. Обратите внимание, что выходные данные должны быть преобразованы в набор данных, чтобы последующие входные данные использовались в качестве набора данных. Если as_dataset не вызывается для выходных данных, а вызывается только для входных данных, это будет NOOP, а входные данные не будут использоваться в качестве набора данных. В приведенном ниже примере кода показано правильное использование 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 не вызывается для выходных данных, а вызывается только для входных данных, это будет NOOP, а входные данные не будут использоваться в качестве набора данных. В приведенном ниже примере кода показано правильное использование 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
значение по умолчанию: None

Указание имени для этих входных данных.

path_on_compute
str
значение по умолчанию: None

Путь к вычислению для загрузки.

overwrite
bool
значение по умолчанию: 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
значение по умолчанию: None

Указание имени для этих входных данных.

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

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

Возвращаемый тип

create_input_binding

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

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

Параметры

input_name
str
значение по умолчанию: None

Имя входа.

mode
str
значение по умолчанию: None

Режим для доступа к PipelineData — "mount" (подключение) или "download" (загрузка).

path_on_compute
str
значение по умолчанию: None

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

overwrite
bool
значение по умолчанию: None

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

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

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

Возвращаемый тип

get_env_variable_name

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

get_env_variable_name()

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

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

Возвращаемый тип

str

Атрибуты

data_type

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

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

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

Возвращаемый тип

str

datastore

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

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

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

Возвращаемый тип

name

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

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

Название

Возвращаемый тип

str