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


Experiment Класс

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

Эксперимент — это контейнер попыток выполнения, которые представляют собой многократные выполнения модели.

Конструктор эксперимента.

Наследование
azureml._logging.chained_identity.ChainedIdentity
Experiment
azureml.core._portal.HasExperimentPortal
Experiment

Конструктор

Experiment(workspace, name, _skip_name_validation=False, _id=None, _archived_time=None, _create_in_cloud=True, _experiment_dto=None, **kwargs)

Параметры

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

Объект рабочей области, содержащий эксперимент.

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

Имя эксперимента.

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

Словарь аргументов ключевого слова.

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

Объект рабочей области, содержащий эксперимент.

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

Имя эксперимента.

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

Словарь аргументов ключевого слова.

_skip_name_validation
Default value: False
_id
Default value: None
_archived_time
Default value: None
_create_in_cloud
Default value: True
_experiment_dto
Default value: None

Комментарии

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

В Машинном обучении Azure эксперимент представлен классом Experiment, а попытка выполнения — классом Run.

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


   experiment = Experiment(workspace, "MyExperiment")

Если эксперимент не найден в рабочей области, создается новый эксперимент.

Запустить эксперименты можно двумя способами. При интерактивном эксперименте в экземпляре Jupyter Notebooks используйте start_logging. Если вы отправляете эксперимент из исходного кода или настроенной попытки выполнения иного типа, используйте submit.

Оба механизма создают объект Run. В интерактивных сценариях используйте методы ведения журнала, такие как log, чтобы добавить в запись попытки выполнения измерения и метрики. В настроенных сценариях для получения сведений о выполнении используйте методы состояния, например get_status.

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

Методы

archive

Архивация эксперимента.

delete

Удаление эксперимента в рабочей области.

from_directory

(Не рекомендуется.) Загрузка эксперимента по указанному пути.

get_docs_url

URL-адрес документации для этого класса.

get_runs

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

list

Возвращение списка экспериментов в рабочей области.

reactivate

Повторная активация архивного эксперимента.

refresh

Возвращение последней версии эксперимента из облака.

remove_tags

Удаление указанных тегов из эксперимента.

set_tags

Добавление или изменение набора тегов для эксперимента. Теги, не передаваемые в словаре, остаются без изменений.

start_logging

Запуск интерактивного сеанса ведения журнала и создание интерактивного выполнения в указанном эксперименте.

submit

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

tag

Добавление тега к эксперименту с использованием строкового ключа и дополнительного строкового значения.

archive

Архивация эксперимента.

archive()

Комментарии

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

delete

Удаление эксперимента в рабочей области.

static delete(workspace, experiment_id)

Параметры

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

Рабочая область, к которой относится эксперимент.

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

Идентификатор эксперимента, который необходимо удалить.

from_directory

(Не рекомендуется.) Загрузка эксперимента по указанному пути.

static from_directory(path, auth=None)

Параметры

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

Каталог, содержащий файлы конфигурации эксперимента.

auth

Объект проверки подлинности. Если задано значение None, будут использоваться учетные данные Azure CLI по умолчанию. Иначе API запросит учетные данные.

Default value: None

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

Тип Описание

Возвращение эксперимента.

get_docs_url

URL-адрес документации для этого класса.

get_docs_url()

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

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

url

get_runs

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

get_runs(type=None, tags=None, properties=None, include_children=False)

Параметры

Имя Описание
type

Фильтрация возвращенного генератора выполнения по указанному типу. См. раздел add_type_provider для создания типов выполнения.

Default value: None
tags
string или dict

Для фильтрации используется "метка" или {"метка": "значение"}

Default value: None
properties
string или dict

Для фильтрации используется "свойство" или {"свойство": "значение"}

Default value: None
include_children

По умолчанию получаются только выполнения верхнего уровня. Задайте значение True, чтобы вывести список всех выполнений.

Default value: False

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

Тип Описание

Список выполнений, соответствующих указанным фильтрам.

list

Возвращение списка экспериментов в рабочей области.

static list(workspace, experiment_name=None, view_type='ActiveOnly', tags=None)

Параметры

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

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

experiment_name
str

Необязательное имя для фильтрации экспериментов.

Default value: None
view_type

Необязательное значение перечисления для фильтрации или включения архивных экспериментов.

Default value: ActiveOnly
tags

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

Default value: None

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

Тип Описание

Список объектов эксперимента.

reactivate

Повторная активация архивного эксперимента.

reactivate(new_name=None)

Параметры

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

Больше не поддерживается.

Комментарии

Архивный эксперимент может быть повторно активирован, только если отсутствует другой активный эксперимент с тем же именем.

refresh

Возвращение последней версии эксперимента из облака.

refresh()

remove_tags

Удаление указанных тегов из эксперимента.

remove_tags(tags)

Параметры

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

Ключи тегов, которые будут удалены.

set_tags

Добавление или изменение набора тегов для эксперимента. Теги, не передаваемые в словаре, остаются без изменений.

set_tags(tags)

Параметры

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

Теги, хранящиеся в объекте эксперимента.

start_logging

Запуск интерактивного сеанса ведения журнала и создание интерактивного выполнения в указанном эксперименте.

start_logging(*args, **kwargs)

Параметры

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

Эксперимент.

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

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

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

Необязательный каталог для создания моментального снимка. Если задать значение None, моментальный снимок каталога не будет создаваться.

args
Обязательно
kwargs
Обязательно

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

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

Возвращение запущенного выполнения.

Комментарии

start_logging создает интерактивное выполнение для использования в таких сценариях, как Jupyter Notebooks. Все метрики, записанные во время сеанса, добавляются в запись о выполнении эксперимента. Если указан каталог вывода, его содержимое отправляется как артефакты выполнения после завершения выполнения.


   experiment = Experiment(workspace, "My Experiment")
   run = experiment.start_logging(outputs=None, snapshot_directory=".", display_name="My Run")
   ...
   run.log_metric("Accuracy", accuracy)
   run.complete()

Примечание

run_id создается автоматически для каждого выполнения и является уникальным в рамках эксперимента.

submit

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

submit(config, tags=None, **kwargs)

Параметры

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

Конфигурация для отправки.

tags

Теги, добавляемые в отправленное выполнение, например, {"тег": "значение"}.

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

Дополнительные параметры, используемые для конфигураций в функции отправки.

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

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

Выполнение.

Комментарии

Отправка — это асинхронный вызов платформы Машинного обучения Azure для выполнения попытки на локальном или удаленном оборудовании. В зависимости от конфигурации при отправке автоматически подготавливаются среды выполнения, выполняется код, а в журнал выполнения записываются исходный код и результаты.

Чтобы отправить эксперимент, сначала необходимо создать объект конфигурации, описывающий, как этот эксперимент будет выполняться. Конфигурация зависит от типа требуемой попытки.

Ниже приведен пример того, как отправить эксперимент с локального компьютера:


   from azureml.core import ScriptRunConfig

   # run a trial from the train.py code in your current directory
   config = ScriptRunConfig(source_directory='.', script='train.py',
       run_config=RunConfiguration())
   run = experiment.submit(config)

   # get the url to view the progress of the experiment and then wait
   # until the trial is complete
   print(run.get_portal_url())
   run.wait_for_completion()

Дополнительные сведения о настройке выполнения доступны в описании типа конфигурации.

  • ScriptRunConfig

  • azureml.train.automl.automlconfig.AutoMLConfig

  • azureml.pipeline.core.Pipeline

  • azureml.pipeline.core.PublishedPipeline

  • azureml.pipeline.core.PipelineEndpoint

Примечание

При отправке запроса на запуск выполнения обучения создается моментальный снимок каталога, содержащего сценарии обучения, и отправляется на целевой объект вычислений. Он также хранится в составе эксперимента в рабочей области. Если изменить файлы и отправить запрос на запуск выполнения снова, будут переданы только измененные файлы.

Чтобы предотвратить включение определенных файлов в моментальный снимок, создайте файлы .gitignore или .amlignore в каталоге и добавьте исключаемые файлы в него. Файл .amlignore использует тот же синтаксис и шаблоны, что и файл .gitignore. Если существуют оба файла, приоритет имеет файл .amlignore.

Дополнительные сведения см. в разделе о моментальных снимках.

tag

Добавление тега к эксперименту с использованием строкового ключа и дополнительного строкового значения.

tag(key, value=None)

Параметры

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

Ключ тега.

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

Необязательное значение для тега.

Комментарии

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


   experiment.tag('')
   experiment.tag('DeploymentCandidate')
   experiment.tag('modifiedBy', 'Master CI')
   experiment.tag('modifiedBy', 'release pipeline') # Careful, tags are mutable

Атрибуты

archived_time

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

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

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

Архивное время эксперимента.

id

Возвращение идентификатора эксперимента.

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

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

Идентификатор эксперимента.

name

Возвращение имени эксперимента.

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

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

Имя эксперимента.

tags

Возвращение изменяемого набора тегов в эксперименте.

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

Тип Описание

Теги эксперимента.

workspace

Возвращение рабочей области, содержащей эксперимент.

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

Тип Описание

Возвращение объекта рабочей области.

workspace_object

(Не рекомендуется.) Возвращение рабочей области, содержащей эксперимент.

Используйте атрибут workspace.

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

Тип Описание

Объект рабочей области.