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


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
Обязательно
str

[Обязательно] Имя этапа.

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

[Обязательно] Объект HyperDriveConfig, определяющий конфигурацию для запуска HyperDrive.

estimator_entry_script_arguments

Список аргументов командной строки для начального скрипта оценщика. Если скрипт записи оценщика не принимает аргументы командной строки, задайте в качестве значения этого параметра пустой список.

Default value: None
inputs

Список входных привязок портов.

Default value: None
outputs

Список выходных привязок портов.

Default value: None
metrics_output

Необязательное значение, указывающее расположение для хранения метрик выполнения HyperDrive в виде файла JSON.

Default value: None
allow_reuse

Указывает, должен ли этап повторно использовать предыдущие результаты при повторном выполнении с теми же параметрами. Повторное использование включено по умолчанию. Если содержимое этапа (скрипты или зависимости), а также входные данные и параметры не изменяются, выходные данные предыдущего выполнения этого этапа используются повторно. При повторном использовании этапа вместо отправки задания для вычисления немедленно предоставляются результаты предыдущего выполнения для последующих этапов. Если в качестве входных данных используются наборы данных Машинного обучения Azure, то повторное использование зависит от изменения определения набора данных, а не базовых данных.

Default value: True
version
str

Необязательный тег версии для обозначения изменения функциональности модуля.

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

[Обязательно] Имя этапа.

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

[Обязательно] Объект HyperDriveConfig, определяющий конфигурацию для запуска HyperDrive.

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

Список аргументов командной строки для начального скрипта оценщика. Если скрипт записи оценщика не принимает аргументы командной строки, задайте в качестве значения этого параметра пустой список.

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

Список входных привязок портов.

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

Список выходных привязок портов.

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

Необязательное значение, указывающее расположение для хранения метрик запуска HyperDrive в виде JSON-файла.

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

Указывает, должен ли этап повторно использовать предыдущие результаты при повторном выполнении с теми же параметрами. Повторное использование включено по умолчанию. Если содержимое этапа (скрипты или зависимости), а также входные данные и параметры не изменяются, выходные данные предыдущего выполнения этого этапа используются повторно. При повторном использовании этапа вместо отправки задания для вычисления немедленно предоставляются результаты предыдущего выполнения для последующих этапов. Если в качестве входных данных используются наборы данных Машинного обучения Azure, то повторное использование зависит от изменения определения набора данных, а не базовых данных.

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

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>

Контекст графа.

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

Тип Описание

Созданный узел.