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
Обязательно
|
Имя объекта PipelineData, который может содержать только буквы, цифры и подчеркивания. Имена PipelineData используются для идентификации выходных данных шага. После завершения выполнения конвейера можно использовать имя шага с выходным именем для доступа к определенному выходу. Имена должны быть уникальными в одном шаге конвейера. |
|
datastore
|
Хранилище данных, в котором будет находиться PipelineData. Если не указано, используется хранилище данных по умолчанию. Default value: None
|
|
output_name
|
Имя выходных данных, если используется имя None. Может содержать только буквы, цифры и символы подчеркивания. Default value: None
|
|
output_mode
|
Указывает, будет ли шаг создания использовать метод "upload" или "mount" для доступа к данным. Default value: mount
|
|
output_path_on_compute
|
Для Default value: None
|
|
output_overwrite
|
Для Default value: None
|
|
data_type
|
Необязательно. Тип данных можно использовать для указания ожидаемого типа выходных данных и подробных сведений о том, как потреблять данные. Это может быть любая определяемая пользователем строка. Default value: None
|
|
is_directory
|
Указывает, являются ли данные каталогом или одним файлом. Это используется только для определения типа данных, используемого серверной частью Машинного обучения Azure, если Default value: None
|
|
pipeline_output_name
|
Если эти выходные данные будут доступны с помощью Default value: None
|
|
training_output
|
Определяет выходные данные для результата обучения. Это необходимо только для конкретных учебных занятий, которые приводят к различным типам выходных данных, таких как метрики и модель. Например, AutoMLStep приводит к метрикам и модели. Вы также можете определить конкретную итерацию обучения или метрики, используемые для получения оптимальной модели. Для HyperDriveStepэтого можно также определить файлы конкретной модели, которые будут включены в выходные данные. Default value: None
|
|
name
Обязательно
|
Имя объекта PipelineData, который может содержать только буквы, цифры и подчеркивания. Имена PipelineData используются для идентификации выходных данных шага. После завершения выполнения конвейера можно использовать имя шага с выходным именем для доступа к определенному выходу. Имена должны быть уникальными в одном шаге конвейера. |
|
datastore
Обязательно
|
Хранилище данных, в котором будет находиться PipelineData. Если не указано, используется хранилище данных по умолчанию. |
|
output_name
Обязательно
|
Имя выходных данных, если используется имя None. которые могут содержать только буквы, цифры и знаки подчеркивания. |
|
output_mode
Обязательно
|
Указывает, будет ли шаг создания использовать метод "upload" или "mount" для доступа к данным. |
|
output_path_on_compute
Обязательно
|
Для |
|
output_overwrite
Обязательно
|
Для |
|
data_type
Обязательно
|
Необязательно. Тип данных можно использовать для указания ожидаемого типа выходных данных и подробных сведений о том, как потреблять данные. Это может быть любая определяемая пользователем строка. |
|
is_directory
Обязательно
|
Указывает, являются ли данные каталогом или одним файлом. Это используется только для определения типа данных, используемого серверной частью Машинного обучения Azure, если |
|
pipeline_output_name
Обязательно
|
Если эти выходные данные будут доступны с помощью |
|
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_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
|
Используется для указания имени для этих входных данных. Default value: None
|
|
path_on_compute
|
Путь к вычислению, в который нужно скачать. Default value: None
|
|
overwrite
|
Используется для указания того, следует ли перезаписывать существующие данные. Default value: None
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
InputPortBinding с этим PipelineData в качестве источника. |
as_input
Создайте InputPortBinding и укажите входное имя (но используйте режим по умолчанию).
as_input(input_name)
Параметры
| Имя | Описание |
|---|---|
|
input_name
Обязательно
|
Используется для указания имени для этих входных данных. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
InputPortBinding с этим PipelineData в качестве источника. |
as_mount
Использование PipelineData в качестве подключения.
as_mount(input_name=None)
Параметры
| Имя | Описание |
|---|---|
|
input_name
|
Используется для указания имени для этих входных данных. Default value: None
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
InputPortBinding с этим PipelineData в качестве источника. |
create_input_binding
Создайте входную привязку.
create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)
Параметры
| Имя | Описание |
|---|---|
|
input_name
|
Имя входных данных. Default value: None
|
|
mode
|
Режим доступа к PipelineData ("mount" или "download"). Default value: None
|
|
path_on_compute
|
В режиме скачивания путь к вычислительным данным будет находиться. Default value: None
|
|
overwrite
|
Для режима скачивания следует перезаписать существующие данные. Default value: None
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
InputPortBinding с этим PipelineData в качестве источника. |
get_env_variable_name
Возвращает имя переменной среды для этого PipelineData.
get_env_variable_name()
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Имя переменной среды. |
Атрибуты
data_type
datastore
Хранилище данных, в котором будет находиться PipelineData.
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Объект хранилища данных. |