HyperDriveStep Класс
Создает этап конвейера Azure ML для выполнения настройки гиперпараметров для обучения модели Машинного обучения.
Пример использования HyperDriveStep см. в записной книжке: https://aka.ms/pl-hyperdrive.
Создайте шаг конвейера машинного обучения Azure для запуска настройки гиперпараметров для обучения модели Машинного обучения.
- Наследование
-
HyperDriveStep
Конструктор
HyperDriveStep(name, hyperdrive_config, estimator_entry_script_arguments=None, inputs=None, outputs=None, metrics_output=None, allow_reuse=True, version=None)
Параметры
Имя | Описание |
---|---|
name
Обязательно
|
[Обязательно] Имя этапа. |
hyperdrive_config
Обязательно
|
[Обязательно] Объект HyperDriveConfig, определяющий конфигурацию для запуска HyperDrive. |
estimator_entry_script_arguments
|
Список аргументов командной строки для начального скрипта оценщика. Если скрипт записи оценщика не принимает аргументы командной строки, задайте в качестве значения этого параметра пустой список. Default value: None
|
inputs
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
Список входных привязок портов. Default value: None
|
outputs
|
Список выходных привязок портов. Default value: None
|
metrics_output
|
Необязательное значение, указывающее расположение для хранения метрик выполнения HyperDrive в виде файла JSON. Default value: None
|
allow_reuse
|
Указывает, должен ли этап повторно использовать предыдущие результаты при повторном выполнении с теми же параметрами. Повторное использование включено по умолчанию. Если содержимое этапа (скрипты или зависимости), а также входные данные и параметры не изменяются, выходные данные предыдущего выполнения этого этапа используются повторно. При повторном использовании этапа вместо отправки задания для вычисления немедленно предоставляются результаты предыдущего выполнения для последующих этапов. Если в качестве входных данных используются наборы данных Машинного обучения Azure, то повторное использование зависит от изменения определения набора данных, а не базовых данных. Default value: True
|
version
|
Необязательный тег версии для обозначения изменения функциональности модуля. Default value: None
|
name
Обязательно
|
[Обязательно] Имя этапа. |
hyperdrive_config
Обязательно
|
[Обязательно] Объект HyperDriveConfig, определяющий конфигурацию для запуска HyperDrive. |
estimator_entry_script_arguments
Обязательно
|
Список аргументов командной строки для начального скрипта оценщика. Если скрипт записи оценщика не принимает аргументы командной строки, задайте в качестве значения этого параметра пустой список. |
inputs
Обязательно
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
Список входных привязок портов. |
outputs
Обязательно
|
Список выходных привязок портов. |
metrics_output
Обязательно
|
Необязательное значение, указывающее расположение для хранения метрик запуска HyperDrive в виде JSON-файла. |
allow_reuse
Обязательно
|
Указывает, должен ли этап повторно использовать предыдущие результаты при повторном выполнении с теми же параметрами. Повторное использование включено по умолчанию. Если содержимое этапа (скрипты или зависимости), а также входные данные и параметры не изменяются, выходные данные предыдущего выполнения этого этапа используются повторно. При повторном использовании этапа вместо отправки задания для вычисления немедленно предоставляются результаты предыдущего выполнения для последующих этапов. Если в качестве входных данных используются наборы данных Машинного обучения Azure, то повторное использование зависит от изменения определения набора данных, а не базовых данных. |
version
Обязательно
|
version |
Комментарии
Обратите внимание, что аргументы для скрипта записи, используемого в объекте Estimator (например, в объекте TensorFlow), должны быть указаны в виде списка с помощью параметра estimator_entry_script_arguments
при создании экземпляра HyperDriveStep. Параметр оценщика script_params
принимает словарь. Однако параметр estimator_entry_script_argument
принимает аргументы в виде списка.
При инициализации HyperDriveStep указывается список объектов DataReference с помощью параметра inputs
. В конвейерах ML Azure этап конвейера может принимать выходные данные другого этапа или объекты DataReference в качестве входных данных. Поэтому при создании HyperDriveStep параметры inputs
и outputs
должны быть заданы явным образом, что переопределяет параметр inputs
, указанный в объекте Estimator.
Для работы с HyperDriveStep рекомендуется использовать отдельную папку для скриптов и зависимых файлов, связанных с этим этапом, и указать эту папку как source_directory
объекта Estimator. Например, см. параметр source_directory
класса TensorFlow. Это дает два преимущества. Во-первых, это помогает уменьшить размер моментального снимка, создаваемого для этапа, поскольку создается моментальный снимок всего, что требуется для данного этапа. Во-вторых, выходные данные этапа предыдущего выполнения могут быть использованы повторно, если нет изменений source_directory
, которые активируют повторную отправку моментального снимка.
В следующем примере показано, как использовать HyperDriveStep в конвейере Машинного обучения Azure.
metrics_output_name = 'metrics_output'
metrics_data = PipelineData(name='metrics_data',
datastore=datastore,
pipeline_output_name=metrics_output_name,
training_output=TrainingOutput("Metrics"))
model_output_name = 'model_output'
saved_model = PipelineData(name='saved_model',
datastore=datastore,
pipeline_output_name=model_output_name,
training_output=TrainingOutput("Model",
model_file="outputs/model/saved_model.pb"))
hd_step_name='hd_step01'
hd_step = HyperDriveStep(
name=hd_step_name,
hyperdrive_config=hd_config,
inputs=[data_folder],
outputs=[metrics_data, saved_model])
Полный пример можно найти по адресу: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb
Методы
create_node |
Создание узла на этапе HyperDrive и его добавление в указанный граф. Данный метод не предназначен для непосредственного использования. При создании экземпляра конвейера с помощью этого этапа Azure ML автоматически передает необходимые параметры через этот метод, чтобы данный этап можно было добавить в граф конвейера, представляющий рабочий процесс. |
create_node
Создание узла на этапе HyperDrive и его добавление в указанный граф.
Данный метод не предназначен для непосредственного использования. При создании экземпляра конвейера с помощью этого этапа Azure ML автоматически передает необходимые параметры через этот метод, чтобы данный этап можно было добавить в граф конвейера, представляющий рабочий процесс.
create_node(graph, default_datastore, context)
Параметры
Имя | Описание |
---|---|
graph
Обязательно
|
Объект графа, в который добавляется узел. |
default_datastore
Обязательно
|
Хранилище данных по умолчанию. |
context
Обязательно
|
<xref:azureml.pipeline.core._GraphContext>
Контекст графа. |
Возвращаемое значение
Тип | Описание |
---|---|
Созданный узел. |