Experiment Класс
Представляет главную точку входа для создания экспериментов в Машинном обучении Azure и работы с ними.
Эксперимент — это контейнер попыток выполнения, которые представляют собой многократные выполнения модели.
Конструктор эксперимента.
- Наследование
-
azureml._logging.chained_identity.ChainedIdentityExperimentazureml.core._portal.HasExperimentPortalExperiment
Конструктор
Experiment(workspace, name, _skip_name_validation=False, _id=None, _archived_time=None, _create_in_cloud=True, _experiment_dto=None, **kwargs)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Объект рабочей области, содержащий эксперимент. |
name
Обязательно
|
Имя эксперимента. |
kwargs
Обязательно
|
Словарь аргументов ключевого слова. |
workspace
Обязательно
|
Объект рабочей области, содержащий эксперимент. |
name
Обязательно
|
Имя эксперимента. |
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
Обязательно
|
Каталог, содержащий файлы конфигурации эксперимента. |
auth
|
Объект проверки подлинности. Если задано значение None, будут использоваться учетные данные Azure CLI по умолчанию. Иначе API запросит учетные данные. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Возвращение эксперимента. |
get_docs_url
get_runs
Возвращение генератора выполнений для этого эксперимента в обратном хронологическом порядке.
get_runs(type=None, tags=None, properties=None, include_children=False)
Параметры
Имя | Описание |
---|---|
type
|
Фильтрация возвращенного генератора выполнения по указанному типу. См. раздел add_type_provider для создания типов выполнения. Default value: None
|
tags
|
Для фильтрации используется "метка" или {"метка": "значение"} Default value: None
|
properties
|
Для фильтрации используется "свойство" или {"свойство": "значение"} Default value: None
|
include_children
|
По умолчанию получаются только выполнения верхнего уровня. Задайте значение True, чтобы вывести список всех выполнений. Default value: False
|
Возвращаемое значение
Тип | Описание |
---|---|
Список выполнений, соответствующих указанным фильтрам. |
list
Возвращение списка экспериментов в рабочей области.
static list(workspace, experiment_name=None, view_type='ActiveOnly', tags=None)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Рабочая область, эксперименты из которой следует вывести. |
experiment_name
|
Необязательное имя для фильтрации экспериментов. Default value: None
|
view_type
|
Необязательное значение перечисления для фильтрации или включения архивных экспериментов. Default value: ActiveOnly
|
tags
|
Необязательный ключ тега или словарь пар "ключ — значение" тегов для фильтрации экспериментов. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Список объектов эксперимента. |
reactivate
Повторная активация архивного эксперимента.
reactivate(new_name=None)
Параметры
Имя | Описание |
---|---|
new_name
Обязательно
|
Больше не поддерживается. |
Комментарии
Архивный эксперимент может быть повторно активирован, только если отсутствует другой активный эксперимент с тем же именем.
refresh
Возвращение последней версии эксперимента из облака.
refresh()
remove_tags
Удаление указанных тегов из эксперимента.
remove_tags(tags)
Параметры
Имя | Описание |
---|---|
tags
Обязательно
|
[str]
Ключи тегов, которые будут удалены. |
set_tags
Добавление или изменение набора тегов для эксперимента. Теги, не передаваемые в словаре, остаются без изменений.
set_tags(tags)
Параметры
Имя | Описание |
---|---|
tags
Обязательно
|
Теги, хранящиеся в объекте эксперимента. |
start_logging
Запуск интерактивного сеанса ведения журнала и создание интерактивного выполнения в указанном эксперименте.
start_logging(*args, **kwargs)
Параметры
Имя | Описание |
---|---|
experiment
Обязательно
|
Эксперимент. |
outputs
Обязательно
|
Необязательный каталог выходных данных для отслеживания. Если выходные данные отсутствуют, передайте значение False. |
snapshot_directory
Обязательно
|
Необязательный каталог для создания моментального снимка. Если задать значение None, моментальный снимок каталога не будет создаваться. |
args
Обязательно
|
|
kwargs
Обязательно
|
|
Возвращаемое значение
Тип | Описание |
---|---|
Возвращение запущенного выполнения. |
Комментарии
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
Обязательно
|
Дополнительные параметры, используемые для конфигураций в функции отправки. |
Возвращаемое значение
Тип | Описание |
---|---|
Выполнение. |
Комментарии
Отправка — это асинхронный вызов платформы Машинного обучения 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()
Дополнительные сведения о настройке выполнения доступны в описании типа конфигурации.
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
Обязательно
|
Ключ тега. |
value
Обязательно
|
Необязательное значение для тега. |
Комментарии
Теги в эксперименте хранятся в словаре со строковыми ключами и строковыми значениями. Теги можно задавать, обновлять и удалять. Теги предназначены для пользователей и, как правило, содержат понятные сведения для потребителей эксперимента.
experiment.tag('')
experiment.tag('DeploymentCandidate')
experiment.tag('modifiedBy', 'Master CI')
experiment.tag('modifiedBy', 'release pipeline') # Careful, tags are mutable
Атрибуты
archived_time
Возвращение архивного времени эксперимента. Для активного эксперимента значение должно быть равно None.
Возвращаемое значение
Тип | Описание |
---|---|
Архивное время эксперимента. |
id
Возвращение идентификатора эксперимента.
Возвращаемое значение
Тип | Описание |
---|---|
Идентификатор эксперимента. |
name
tags
Возвращение изменяемого набора тегов в эксперименте.
Возвращаемое значение
Тип | Описание |
---|---|
Теги эксперимента. |
workspace
Возвращение рабочей области, содержащей эксперимент.
Возвращаемое значение
Тип | Описание |
---|---|
Возвращение объекта рабочей области. |