Run Класс
Определяет базовый класс для всех выполнений экспериментов Машинного обучения Azure.
Запуск представляет собой одну попытку выполнения эксперимента. Запуски используются для наблюдения за асинхронной реализацией попытки, записи метрик журнала и хранения выходных данных попытки, а также для анализа результатов и доступа к артефактам, формируемым в ходе попытки.
Объекты запуска создаются при отправке скрипта для обучения модели во множестве различных сценариев Машинного обучения Azure, в том числе при запусках HyperDrive, конвейера и AutoML. Объект запуска также создается при использовании submit или start_logging с классом Experiment.
Сведения о том, как приступить к работе с экспериментами и запусками, приведены в следующих статьях:
Инициализируйте объект Run.
- Наследование
-
azureml._run_impl.run_base._RunBaseRun
Конструктор
Run(experiment, run_id, outputs=None, **kwargs)
Параметры
- _run_dto
- <xref:azureml._restclient.models.run_dto.RunDto>
Только для внутреннего применения.
Комментарии
Выполнение представляет собой одну попытку запуска эксперимента. Объект запуска используется для наблюдения за асинхронным выполнением попытки, регистрации метрик и хранения выходных данных попытки, а также для анализа результатов и доступа к артефактам, формируемым в ходе попытки.
Внутри кода эксперимента запуск используется для регистрации метрик и артефактов в службе журнала выполнения.
За пределами экспериментов запуск используется для отслеживания хода выполнения, а также запроса и анализа созданных метрик и результатов.
Запуск выполняет следующие функции:
хранение и получение метрик и данных;
отправка и скачивание файлов;
применение тегов, а также иерархии дочерних элементов для простого поиска выполненных запусков;
регистрация файлов хранимых моделей в качестве модели, которую можно ввести в эксплуатацию;
хранение, изменение и получение свойств запуска;
загрузка текущего запуска из удаленной среды с помощью метода get_context;
эффективное создание моментального снимка файла или каталога для обеспечения воспроизводимости.
Этот класс работает с Experiment в следующих сценариях:
создание запуска путем выполнения кода с помощью submit;
создание интерактивного запуска в записной книжке с помощью start_logging;
регистрация метрик и отправленных артефактов в эксперименте, например при использовании log;
считывание метрик и скачивание артефактов при анализе результатов эксперимента, например при использовании get_metrics.
Чтобы отправить запуск, создайте объект конфигурации, описывающий запуск эксперимента. Ниже приведены примеры различных объектов конфигурации, которые можно использовать.
azureml.train.automl.automlconfig.AutoMLConfig
azureml.train.hyperdrive.HyperDriveConfig
azureml.pipeline.core.Pipeline
azureml.pipeline.core.PublishedPipeline
azureml.pipeline.core.PipelineEndpoint
Следующие метрики можно добавить к выполнению во время обучения эксперимента.
скалярная
Регистрирует числовое или строковое значение в запуске с заданным именем с помощью log. Запись метрики в выполнение приводит к тому, что метрика будет сохранена в записи о выполнении в эксперименте. Одну и ту же метрику можно несколько раз записать в рамках выполнения. Результат будет считаться вектором этой метрики.
Пример:
run.log("accuracy", 0.95)
Список
Регистрирует список значений в запуске с заданным именем с помощью log_list.
Пример:
run.log_list("accuracies", [0.6, 0.7, 0.87])
Строка
С помощью log_row создается метрика с несколькими столбцами, как описано в
kwargs
. Каждый именованный параметр создает столбец с указанным значением.log_row
можно вызвать один раз, чтобы записать произвольный кортеж, или несколько раз в цикле, чтобы создать полную таблицу.Пример:
run.log_row("Y over X", x=1, y=0.4)
Таблица
Регистрирует объект словаря в запуске с заданным именем с помощью log_table.
Пример:
run.log_table("Y over X", {"x":[1, 2, 3], "y":[0.6, 0.7, 0.89]})
Изображение
Запишите изображение в запись о выполнении. Используйте log_image, чтобы записать файл изображения или график matplotlib в запуск. Эти изображения будут видимы, и их можно сравнить в записи о выполнении.
Пример:
run.log_image("ROC", path)
Методы
add_properties |
Добавляет к запуску неизменяемые свойства. Теги и свойства (оба dict[str, str]) отличаются изменяемостью. Свойства являются неизменяемыми, поэтому они создают постоянную запись для целей аудита. Теги могут быть изменены. Дополнительные сведения о работе с тегами и свойствами см. в разделе Поиск запусков и добавление к ним тегов. |
add_type_provider |
Обработчик расширяемости для пользовательских типов запуска, хранящихся в журнале выполнения. |
cancel |
Обозначает запуск как отмененный. Если имеется связанное задание с заданным полем cancel_uri, завершает также это задание. |
child_run |
Создает дочерний запуск. |
clean |
Удаляет файлы, соответствующие текущему запуску для целевого объекта, указанного в конфигурации запуска. |
complete |
Ожидает обработки очереди задач. Затем запуск помечается как завершенный. Обычно используется в сценариях интерактивной записной книжки. |
create_children |
Создает один или несколько дочерних запусков. |
download_file |
Скачивает связанный файл из хранилища. |
download_files |
Скачивает файлы из расположения по заданному префиксу хранилища (имени папки) или со всего контейнера, если префикс не указан. |
fail |
Помечает запуск как неудачный. При необходимости задайте свойство Error для запуска с сообщением или исключением, переданным в |
flush |
Ожидает обработки очереди задач. |
get |
Получает запуск для этой рабочей области с соответствующим идентификатором запуска. |
get_all_logs |
Скачивает все журналы для запуска в каталоге. |
get_children |
Возвращает все дочерние запуски для текущего запуска, выбранного указанными фильтрами. |
get_context |
Возвращает текущий контекст службы. Используйте этот метод, чтобы получить текущий контекст службы для ведения журнала метрик и отправки файлов. Если |
get_detailed_status |
Получает последнее состояние запуска. Если состояние запуска — Queued (В очереди), будут отображены подробные сведения. |
get_details |
Получает определение, сведения о состоянии, текущие файлы журнала и другие сведения о запуске. |
get_details_with_logs |
Возвращает состояние запуска, включая содержимое файла журнала. |
get_environment |
Получает определение среды, которое использовалось этим запуском. |
get_file_names |
Список файлов, которые хранятся в связи с запуском. |
get_metrics |
Получает метрики, зарегистрированные для запуска в журнале. Если |
get_properties |
Получает последние свойства запуска из службы. |
get_secret |
Получает значения секрета из контекста запуска. Получает значения секрета для указанного имени. Имя секрета ссылается на значение, хранящееся в решении Azure Key Vault, связанном с рабочей областью. Пример работы с секретами см. в разделе Использование секретов при запусках обучения. |
get_secrets |
Получает значения секретов для заданного списка имен секретов. Получает словарь найденных и ненайденных секретов для списка указанных имен. Каждое имя секрета ссылается на значение, хранящееся в решении Azure Key Vault, связанном с рабочей областью. Пример работы с секретами см. в разделе Использование секретов при запусках обучения. |
get_snapshot_id |
Получает идентификатор последнего моментального снимка. |
get_status |
Получает последнее состояние запуска. Обычно возвращаются значения Running (Выполняется), Completed (Завершено) и Failed (Сбой). |
get_submitted_run |
НЕ РЕКОМЕНДУЕТСЯ. Используйте команду get_context. Получает отправленный запуск для этого эксперимента. |
get_tags |
Получает последний набор изменяемых тегов для запуска из службы. |
list |
Получение списка запусков в эксперименте, заданном необязательными фильтрами. |
list_by_compute |
Получение списка запусков в вычислении, заданном необязательными фильтрами. |
log |
Запишите значение метрики в выполнение с заданным именем. |
log_accuracy_table |
Регистрирует таблицу точности в хранилище артефактов. Метрика таблицы точности — это универсальная нескалярная метрика, которую можно использовать для создания нескольких типов графиков, которые могут постоянно меняться в зависимости от пространства прогнозируемых вероятностей. Примерами таких графиков являются ROC, кривые соотношения полноты и точности и кривые точности прогноза. Вычисление таблицы точности похоже на вычисление кривой ROC. Кривая ROC отражает частоты истинноположительных и ложноположительных результатов при всевозможных значениях вероятности. В таблице точности хранится необработанное число истинноположительных, ложноположительных, истинноотрицательных и ложноотрицательных результатов при всевозможных пороговых значениях вероятности. Для выбора пороговых значений используются два метода: "вероятность" и "процентиль". Они отличаются принципом выборки из пространства прогнозируемых вероятностей. Пороги вероятности — это однородные пороговые значения в диапазоне от 0 до 1. Если NUM_POINTS имеет значение 5, пороговые значения вероятности будут равны [0,0, 0,25, 0,5, 0,75, 1,0]. Пороговые значения процентиля распределяются в соответствии с распределением прогнозируемых вероятностей. Каждое пороговое значение соответствует процентилю данных при пороговом значении вероятности. Например, если NUM_POINTS имеет значение 5, то первое пороговое значение будет на 0-м процентиле, второе — на 25-ом, третье — на 50-й и т. д. Таблицы вероятностей и процентилей представляют собой трехмерные списки, в которых первое измерение представляет метку класса, второе — выборку при одном пороговом значении (масштабируется с использованием NUM_POINTS), а третье — всегда имеет 4 значения: истинноположительное (TP), ложноположительное (FP), истинноотрицательное (TN) и ложноотрицательное (FN) и всегда именно в таком порядке. Значения неточности (TP, FP, TN, FN) вычисляются с помощью стратегии "один — остальные". Дополнительные сведения см. по следующей ссылке: https://en.wikipedia.org/wiki/Multiclass_classification. N — число выборок в наборе данных для проверки (в примере 200); M — число пороговых значений или число выборок из пространства вероятностей (в примере 5); C — число классов в полном наборе данных (в примере 3) Некоторые инварианты таблицы точности:
Примечание. M может быть любым значением и определяет разрешение диаграмм. Значение не зависит от набора данных, определяется при вычислении метрик и меняется за счет использования дискового пространства, времени вычислений и разрешения. Метками классов должны быть строки, значения неточности должны быть целыми числами, а пороговые значения должны быть числами с плавающей точкой. |
log_confusion_matrix |
Регистрирует матрицу неточности в хранилище артефактов. При этом регистрируется программа-оболочка вокруг матрицы неточностей sklearn. Данные метрик содержат метки классов и двухмерный список для самой матрицы. Дополнительные сведения о вычислении метрики см. по следующей ссылке: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html. |
log_image |
Запишите метрику изображения в запись о выполнении. |
log_list |
Запишите список значений метрики в выполнение с заданным именем. |
log_predictions |
Регистрирует прогнозы в хранилище артефактов. При этом регистрируется показатель метрики, который можно использовать для сравнения распределений истинных целевых значений с распределением прогнозируемых значений для задачи регрессии. Прогнозируемые значения сегментируются, а для отображения на графике планок погрешностей вычисляются стандартные отклонения. |
log_residuals |
Регистрирует остатки в хранилище артефактов. При этом регистрируются данные, необходимые для отображения гистограммы остатков для задачи регрессии. Остатки прогнозируемые — фактические. Число краев должно быть на единицу больше, чем число количественных величин. Примеры использования количественных величин и краев для представления гистограммы см. в документации по гистограмме NumPy. https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html |
log_row |
Регистрирует метрику строки в запуске с заданным именем. |
log_table |
Запишите значение табличной метрики в выполнение с заданным именем. |
register_model |
Регистрирует модель для ввода в эксплуатации. |
remove_tags |
Удаляет список изменяемых тегов для этого запуска. |
restore_snapshot |
Восстанавливает моментальный снимок в виде ZIP-файла. Возвращает путь к ZIP-файлу. |
set_tags |
Добавляет или изменяет набор тегов в запуске. Теги, не передаваемые в словаре, остаются без изменений. Можно также добавлять простые строковые теги. Если эти теги отображаются в словаре тегов в качестве ключей, то они имеют значение None (Нет). Дополнительные сведения см. в разделе Поиск запусков и добавление к ним тегов. |
start |
Помечает запуск как начатый. Обычно используется в расширенных сценариях, когда запуск был создан другим субъектом. |
submit_child |
Отправьте эксперимент и верните активный дочерний запуск. |
tag |
Добавление тега к выполнению с использованием строкового ключа и дополнительного значения строки. |
take_snapshot |
Сохраняет моментальный снимок входного файла или папки. |
upload_file |
Отправка файла в запись о выполнении. |
upload_files |
Отправляет файлы в запись о запуске. |
upload_folder |
Отправляет указанную папку по заданному имени префикса. |
wait_for_completion |
Ожидает завершения этого запуска. Возвращает объект состояния после ожидания. |
add_properties
Добавляет к запуску неизменяемые свойства.
Теги и свойства (оба dict[str, str]) отличаются изменяемостью. Свойства являются неизменяемыми, поэтому они создают постоянную запись для целей аудита. Теги могут быть изменены. Дополнительные сведения о работе с тегами и свойствами см. в разделе Поиск запусков и добавление к ним тегов.
add_properties(properties)
Параметры
add_type_provider
Обработчик расширяемости для пользовательских типов запуска, хранящихся в журнале выполнения.
static add_type_provider(runtype, run_factory)
Параметры
- runtype
- str
Значение Run.type, для которого будет вызвана фабрика. Примерами могут служить hyperdrive и azureml.scriptrun, но их можно дополнить пользовательскими типами.
- run_factory
- <xref:function>
Функция с сигнатурой (Experiment, RunDto) —> "Запуск", которая вызывается при выводе списка запусков.
cancel
Обозначает запуск как отмененный.
Если имеется связанное задание с заданным полем cancel_uri, завершает также это задание.
cancel()
child_run
Создает дочерний запуск.
child_run(name=None, run_id=None, outputs=None)
Параметры
- name
- str
Необязательное имя дочернего запуска, обычно задаваемое для "части".
- run_id
- str
Необязательный идентификатор запуска для дочернего элемента. Если оно не задано, то создается автоматически. Обычно этот параметр не задан.
- outputs
- str
Необязательный каталог выходных данных для отслеживания дочернего запуска.
Возвращаемое значение
Дочерний запуск.
Возвращаемый тип
Комментарии
Используется для изоляции части запуска в подразделе. Может применяться для идентифицируемых частей запуска, которые имеет смысл отделить, или для захвата независимых метрик при взаимодействии между различными подпроцессами.
Если для дочернего запуска задан выходной каталог, содержимое этого каталога будет отправлено в запись дочернего запуска после его завершения.
clean
Удаляет файлы, соответствующие текущему запуску для целевого объекта, указанного в конфигурации запуска.
clean()
Возвращаемое значение
Список удаляемых файлов.
Возвращаемый тип
complete
Ожидает обработки очереди задач.
Затем запуск помечается как завершенный. Обычно используется в сценариях интерактивной записной книжки.
complete(_set_status=True)
Параметры
- _set_status
- bool
Указывает, следует ли отправить событие состояния для отслеживания.
create_children
Создает один или несколько дочерних запусков.
create_children(count=None, tag_key=None, tag_values=None)
Параметры
- tag_key
- str
Необязательный ключ для заполнения записи Tags во всех созданных дочерних запусках.
- tag_Values
Необязательный список значений, которые будут сопоставлены с Tags[tag_key] для списка созданных запусков.
- tag_values
Возвращаемое значение
Список дочерних запусков.
Возвращаемый тип
Комментарии
Необходимо указать параметр count
ИЛИ параметры tag_key
И tag_values
.
download_file
Скачивает связанный файл из хранилища.
download_file(name, output_file_path=None, _validate_checksum=False)
Параметры
download_files
Скачивает файлы из расположения по заданному префиксу хранилища (имени папки) или со всего контейнера, если префикс не указан.
download_files(prefix=None, output_directory=None, output_paths=None, batch_size=100, append_prefix=True, timeout_seconds=None)
Параметры
- output_directory
- str
Необязательный каталог, который используется в качестве префикса для всех путей к артефактам.
- output_paths
- [str]
Необязательные пути к файлам, по которых хранятся скачанные артефакты. Должно быть уникальным и соответствовать требованиям к длине путей.
- append_prefix
- bool
Необязательный флаг, указывающий на то, нужно ли добавлять указанный префикс в конечном пути к выходному файлу. Если значение равно false, префикс удаляется из пути к выходному файлу.
fail
Помечает запуск как неудачный.
При необходимости задайте свойство Error для запуска с сообщением или исключением, переданным в error_details
.
fail(error_details=None, error_code=None, _set_status=True)
Параметры
- _set_status
- bool
Указывает, следует ли отправить событие состояния для отслеживания.
flush
Ожидает обработки очереди задач.
flush(timeout_seconds=300)
Параметры
get
Получает запуск для этой рабочей области с соответствующим идентификатором запуска.
static get(workspace, run_id)
Параметры
Возвращаемое значение
Отправленный запуск.
Возвращаемый тип
get_all_logs
Скачивает все журналы для запуска в каталоге.
get_all_logs(destination=None)
Параметры
- destination
- str
Целевой путь для хранения журналов. Если этот параметр не указан, в каталоге проекта создается каталог, в качестве имени которого используется идентификатор запуска.
Возвращаемое значение
Список имен скачанных журналов.
Возвращаемый тип
get_children
Возвращает все дочерние запуски для текущего запуска, выбранного указанными фильтрами.
get_children(recursive=False, tags=None, properties=None, type=None, status=None, _rehydrate_runs=True)
Параметры
- recursive
- bool
Указывает, следует ли выполнять рекурсивный перебор всех потомков.
Если указан этот параметр, возвращает запуски, соответствующие указанными значениям "tag" или {"tag": "value"}.
Если указан этот параметр, возвращает запуски, соответствующие указанными значениям "property" или {"property": "value"}.
- type
- str
Если указан этот параметр, возвращает запуски, соответствующие этому типу.
- status
- str
Если указан этот параметр, возвращает запуски с указанным состоянием "status".
- _rehydrate_runs
- bool
Указывает, что следует создать: экземпляр запуска исходного типа или базовый запуск.
Возвращаемое значение
Список объектов Run.
Возвращаемый тип
get_context
Возвращает текущий контекст службы.
Используйте этот метод, чтобы получить текущий контекст службы для ведения журнала метрик и отправки файлов. Если allow_offline
имеет значение true (по умолчанию), действия с объектом запуска будут выводиться через стандартный выход.
get_context(allow_offline=True, used_for_context_manager=False, **kwargs)
Параметры
- cls
Указывает метод класса.
- allow_offline
- bool
Разрешает контексту службы возвращаться в автономный режим, чтобы скрипт обучения можно было протестировать локально, не отправляя задание с помощью пакета SDK. По умолчанию имеет значение TRUE.
- used_for_context_manager
Возвращаемое значение
Отправленный запуск.
Возвращаемый тип
Комментарии
Эта функция обычно используется для получения прошедшего проверку подлинности объекта запуска в скрипте, который будет отправлен для выполнения с помощью experiment.submit(). Этот объект запуска является прошедшим проверку подлинности контекстом для взаимодействия со службами Машинного обучения Azure, а также концептуальным контейнером, в котором содержатся метрики, файлы (артефакты) и модели.
run = Run.get_context() # allow_offline=True by default, so can be run locally as well
...
run.log("Accuracy", 0.98)
run.log_row("Performance", epoch=e, error=err)
get_detailed_status
Получает последнее состояние запуска. Если состояние запуска — Queued (В очереди), будут отображены подробные сведения.
get_detailed_status()
Возвращаемое значение
Последнее состояние и сведения
Возвращаемый тип
Комментарии
status: текущее состояние запуска. То же значение, которое было возвращено из get_status ().
details: подробные сведения о текущем состоянии.
run = experiment.submit(config)
details = run.get_detailed_status()
# details = {
# 'status': 'Queued',
# 'details': 'Run requested 1 node(s). Run is in pending status.',
# }
get_details
Получает определение, сведения о состоянии, текущие файлы журнала и другие сведения о запуске.
get_details()
Возвращаемое значение
Возвращает сведения о выполнении
Возвращаемый тип
Комментарии
Возвращаемый словарь содержит следующие пары "ключ-значение":
runId: идентификатор этого запуска.
target
status: текущее состояние запуска. То же значение, которое было возвращено из get_status ().
startTimeUtc: время начала выполнения этого запуска в формате UTC согласно стандарту ISO8601.
endTimeUtc: время завершения этого запуска в формате UTC (состояние Completed (Завершен) или Failed (Сбой)) согласно стандарту ISO8601.
Этот ключ не существует, если запуск еще выполняется.
properties: неизменяемые пары "ключ-значение", связанные с запуском. Свойства по умолчанию включают идентификатор моментального снимка запуска и сведения о репозитории Git, на основе которого был создан запуск (если таковой имеется). С помощью add_properties в запуск можно добавить дополнительные свойства.
inputDatasets: входные наборы данных, связанные с запуском.
outputDatasets: выходные наборы данных, связанные с запуском.
logFiles
submittedBy
run = experiment.start_logging()
details = run.get_details()
# details = {
# 'runId': '5c24aa28-6e4a-4572-96a0-fb522d26fe2d',
# 'target': 'sdk',
# 'status': 'Running',
# 'startTimeUtc': '2019-01-01T13:08:01.713777Z',
# 'endTimeUtc': '2019-01-01T17:15:65.986253Z',
# 'properties': {
# 'azureml.git.repository_uri': 'https://example.com/my/git/repo',
# 'azureml.git.branch': 'master',
# 'azureml.git.commit': '7dc972657c2168927a02c3bc2b161e0f370365d7',
# 'azureml.git.dirty': 'True',
# 'mlflow.source.git.repoURL': 'https://example.com/my/git/repo',
# 'mlflow.source.git.branch': 'master',
# 'mlflow.source.git.commit': '7dc972657c2168927a02c3bc2b161e0f370365d7',
# 'ContentSnapshotId': 'b4689489-ce2f-4db5-b6d7-6ad11e77079c'
# },
# 'inputDatasets': [{
# 'dataset': {'id': 'cdebf245-701d-4a68-8055-41f9cf44f298'},
# 'consumptionDetails': {
# 'type': 'RunInput',
# 'inputName': 'training-data',
# 'mechanism': 'Mount',
# 'pathOnCompute': '/mnt/datasets/train'
# }
# }],
# 'outputDatasets': [{
# 'dataset': {'id': 'd04e8a19-1caa-4b1f-b318-4cbff9af9615'},
# 'outputType': 'RunOutput',
# 'outputDetails': {
# 'outputName': 'training-result'
# }
# }],
# 'runDefinition': {},
# 'logFiles': {},
# 'submittedBy': 'Alan Turing'
# }
get_details_with_logs
Возвращает состояние запуска, включая содержимое файла журнала.
get_details_with_logs()
Возвращаемое значение
Возвращает состояние запуска с содержимым файла журнала.
Возвращаемый тип
get_environment
Получает определение среды, которое использовалось этим запуском.
get_environment()
Возвращаемое значение
Возвращает объект среды.
Возвращаемый тип
get_file_names
Список файлов, которые хранятся в связи с запуском.
get_file_names()
Возвращаемое значение
Список путей для существующих артефактов
Возвращаемый тип
get_metrics
Получает метрики, зарегистрированные для запуска в журнале.
Если recursive
имеет значение True (по умолчанию False), получает метрики для запусков в поддереве данного запуска.
get_metrics(name=None, recursive=False, run_type=None, populate=False)
Параметры
- recursive
- bool
Указывает, следует ли выполнять рекурсивный перебор всех потомков.
- run_type
- str
- populate
- bool
Указывает, следует ли получать содержимое внешних данных, связанных с метрикой.
Возвращаемое значение
Словарь, содержащий метрики пользователей.
Возвращаемый тип
Комментарии
run = experiment.start_logging() # run id: 123
run.log("A", 1)
with run.child_run() as child: # run id: 456
child.log("A", 2)
metrics = run.get_metrics()
# metrics = { 'A': 1 }
metrics = run.get_metrics(recursive=True)
# metrics = { '123': { 'A': 1 }, '456': { 'A': 2 } } note key is runId
get_properties
Получает последние свойства запуска из службы.
get_properties()
Возвращаемое значение
Свойства запуска.
Возвращаемый тип
Комментарии
Свойства представляют собой неизменяемую системную информацию, например о длительности, дате выполнения, пользователе и пользовательских свойствах, добавленных с помощью метода add_properties. Дополнительные сведения см. в разделе Поиск запусков и добавление к ним тегов.
Если исходные файлы хранятся в локальном репозитории Git, то при отправке задания в службу "Машинное обучение Azure" сведения о репозитории хранятся в виде свойств. Эти свойства Git добавляются при создании запуска или вызове Experiment.submit. Дополнительные сведения о свойствах Git см. в статье Интеграция с Git для Машинного обучения Azure.
get_secret
Получает значения секрета из контекста запуска.
Получает значения секрета для указанного имени. Имя секрета ссылается на значение, хранящееся в решении Azure Key Vault, связанном с рабочей областью. Пример работы с секретами см. в разделе Использование секретов при запусках обучения.
get_secret(name)
Параметры
Возвращаемое значение
Значение секрета.
Возвращаемый тип
get_secrets
Получает значения секретов для заданного списка имен секретов.
Получает словарь найденных и ненайденных секретов для списка указанных имен. Каждое имя секрета ссылается на значение, хранящееся в решении Azure Key Vault, связанном с рабочей областью. Пример работы с секретами см. в разделе Использование секретов при запусках обучения.
get_secrets(secrets)
Параметры
Возвращаемое значение
Возвращает словарь найденных и ненайденных секретов.
Возвращаемый тип
get_snapshot_id
Получает идентификатор последнего моментального снимка.
get_snapshot_id()
Возвращаемое значение
Идентификатор последнего моментального снимка.
Возвращаемый тип
get_status
Получает последнее состояние запуска.
Обычно возвращаются значения Running (Выполняется), Completed (Завершено) и Failed (Сбой).
get_status()
Возвращаемое значение
Последнее состояние.
Возвращаемый тип
Комментарии
NotStarted — это временное состояние объектов запуска на стороне клиента перед отправкой в облако.
Starting — началась обработка запуска в облаке. На этом этапе вызывающий объект имеет идентификатор запуска.
Provisioning — возвращается при создании вычисления по запросу для данной отправки задания.
Preparing — выполняется подготовка среды запуска:
сборка образа Docker;
настройка среды conda.
Queued — задание помещается в очередь целевого объекта вычислений. Например, в BatchAI задание находится в состоянии Queued,
ожидая готовности всех запрошенных узлов.
Running — начинается запуск задания в целевом объекте вычислений.
Finalizing — выполнение пользовательского кода завершено, а запуск находится на этапах последующей обработки.
CancelRequested — для задания запрошена отмена.
Completed — запуск успешно завершен. В частности завершены этапы постобработки
пользовательского кода и запуска.
Failed — сбой запуска. Подробное описание причины как правило предоставляет свойство Error.
Canceled — применяется после запроса отмены и указывает, что выполнение теперь успешно отменено.
NotResponding — для запусков с включенными пульсами недавно не отправлялся пульс.
run = experiment.submit(config)
while run.get_status() not in ['Completed', 'Failed']: # For example purposes only, not exhaustive
print('Run {} not in terminal state'.format(run.id))
time.sleep(10)
get_submitted_run
НЕ РЕКОМЕНДУЕТСЯ. Используйте команду get_context.
Получает отправленный запуск для этого эксперимента.
get_submitted_run(**kwargs)
Возвращаемое значение
Отправленный запуск.
Возвращаемый тип
get_tags
Получает последний набор изменяемых тегов для запуска из службы.
get_tags()
Возвращаемое значение
Теги, хранящиеся в объекте запуска.
Возвращаемый тип
list
Получение списка запусков в эксперименте, заданном необязательными фильтрами.
static list(experiment, type=None, tags=None, properties=None, status=None, include_children=False, _rehydrate_runs=True)
Параметры
- type
- str
Если указан этот параметр, возвращает запуски, соответствующие указанному типу.
Если указан этот параметр, возвращает запуски, соответствующие указанными значениям "tag" или {"tag": "value"}.
Если указан этот параметр, возвращает запуски, соответствующие указанными значениям "property" или {"property": "value"}.
- status
- str
Если указан этот параметр, возвращает запуски с указанным состоянием "status".
- include_children
- bool
Если задано значение true, получает все запуски, а не только запуски верхнего уровня.
- _rehydrate_runs
- bool
Если задано значение True (по умолчанию), для повторного создания экземпляра объекта для этого типа вместо базового запуска будет использоваться зарегистрированный поставщик.
Возвращаемое значение
Список запусков.
Возвращаемый тип
Комментарии
В следующем примере кода показано использование метода list
.
favorite_completed_runs = Run.list(experiment, status='Completed', tags='favorite')
all_distinct_runs = Run.list(experiment)
and_their_children = Run.list(experiment, include_children=True)
only_script_runs = Run.list(experiment, type=ScriptRun.RUN_TYPE)
list_by_compute
Получение списка запусков в вычислении, заданном необязательными фильтрами.
static list_by_compute(compute, type=None, tags=None, properties=None, status=None)
Параметры
- type
- str
Если указан этот параметр, возвращает запуски, соответствующие указанному типу.
Если указан этот параметр, возвращает запуски, соответствующие указанными значениям "tag" или {"tag": "value"}.
Если указан этот параметр, возвращает запуски, соответствующие указанными значениям "property" или {"property": "value"}.
- status
- str
Если указан этот параметр, возвращает запуски с указанным состоянием "status". Допустимы только значения Running (Выполняется) и Queued (В очереди).
Возвращаемое значение
генератор ~_restclient.models.RunDto
Возвращаемый тип
log
Запишите значение метрики в выполнение с заданным именем.
log(name, value, description='', step=None)
Параметры
- value
Значение, помещаемое в службу.
Комментарии
Запись метрики в выполнение приводит к тому, что метрика будет сохранена в записи о выполнении в эксперименте. Одну и ту же метрику можно несколько раз записать в рамках выполнения. Результат будет считаться вектором этой метрики. Если для метрики задан шаг, он должен быть указан для всех значений.
log_accuracy_table
Регистрирует таблицу точности в хранилище артефактов.
Метрика таблицы точности — это универсальная нескалярная метрика, которую можно использовать для создания нескольких типов графиков, которые могут постоянно меняться в зависимости от пространства прогнозируемых вероятностей. Примерами таких графиков являются ROC, кривые соотношения полноты и точности и кривые точности прогноза.
Вычисление таблицы точности похоже на вычисление кривой ROC. Кривая ROC отражает частоты истинноположительных и ложноположительных результатов при всевозможных значениях вероятности. В таблице точности хранится необработанное число истинноположительных, ложноположительных, истинноотрицательных и ложноотрицательных результатов при всевозможных пороговых значениях вероятности.
Для выбора пороговых значений используются два метода: "вероятность" и "процентиль". Они отличаются принципом выборки из пространства прогнозируемых вероятностей.
Пороги вероятности — это однородные пороговые значения в диапазоне от 0 до 1. Если NUM_POINTS имеет значение 5, пороговые значения вероятности будут равны [0,0, 0,25, 0,5, 0,75, 1,0].
Пороговые значения процентиля распределяются в соответствии с распределением прогнозируемых вероятностей. Каждое пороговое значение соответствует процентилю данных при пороговом значении вероятности. Например, если NUM_POINTS имеет значение 5, то первое пороговое значение будет на 0-м процентиле, второе — на 25-ом, третье — на 50-й и т. д.
Таблицы вероятностей и процентилей представляют собой трехмерные списки, в которых первое измерение представляет метку класса, второе — выборку при одном пороговом значении (масштабируется с использованием NUM_POINTS), а третье — всегда имеет 4 значения: истинноположительное (TP), ложноположительное (FP), истинноотрицательное (TN) и ложноотрицательное (FN) и всегда именно в таком порядке.
Значения неточности (TP, FP, TN, FN) вычисляются с помощью стратегии "один — остальные". Дополнительные сведения см. по следующей ссылке: https://en.wikipedia.org/wiki/Multiclass_classification.
N — число выборок в наборе данных для проверки (в примере 200); M — число пороговых значений или число выборок из пространства вероятностей (в примере 5); C — число классов в полном наборе данных (в примере 3)
Некоторые инварианты таблицы точности:
- TP + FP + TN + FN = N для всех пороговых значений для всех классов
- TP + FN одинаково во всех пороговых значениях для любого класса
- TN + FP одинаково во всех пороговых значениях для любого класса
- Таблицы вероятностей и таблицы процентилей имеют форму [C, M, 4]
Примечание. M может быть любым значением и определяет разрешение диаграмм. Значение не зависит от набора данных, определяется при вычислении метрик и меняется за счет использования дискового пространства, времени вычислений и разрешения.
Метками классов должны быть строки, значения неточности должны быть целыми числами, а пороговые значения должны быть числами с плавающей точкой.
log_accuracy_table(name, value, description='')
Параметры
Комментарии
Пример допустимого значения JSON:
{
"schema_type": "accuracy_table",
"schema_version": "1.0.1",
"data": {
"probability_tables": [
[
[82, 118, 0, 0],
[75, 31, 87, 7],
[66, 9, 109, 16],
[46, 2, 116, 36],
[0, 0, 118, 82]
],
[
[60, 140, 0, 0],
[56, 20, 120, 4],
[47, 4, 136, 13],
[28, 0, 140, 32],
[0, 0, 140, 60]
],
[
[58, 142, 0, 0],
[53, 29, 113, 5],
[40, 10, 132, 18],
[24, 1, 141, 34],
[0, 0, 142, 58]
]
],
"percentile_tables": [
[
[82, 118, 0, 0],
[82, 67, 51, 0],
[75, 26, 92, 7],
[48, 3, 115, 34],
[3, 0, 118, 79]
],
[
[60, 140, 0, 0],
[60, 89, 51, 0],
[60, 41, 99, 0],
[46, 5, 135, 14],
[3, 0, 140, 57]
],
[
[58, 142, 0, 0],
[56, 93, 49, 2],
[54, 47, 95, 4],
[41, 10, 132, 17],
[3, 0, 142, 55]
]
],
"probability_thresholds": [0.0, 0.25, 0.5, 0.75, 1.0],
"percentile_thresholds": [0.0, 0.01, 0.24, 0.98, 1.0],
"class_labels": ["0", "1", "2"]
}
}
log_confusion_matrix
Регистрирует матрицу неточности в хранилище артефактов.
При этом регистрируется программа-оболочка вокруг матрицы неточностей sklearn. Данные метрик содержат метки классов и двухмерный список для самой матрицы. Дополнительные сведения о вычислении метрики см. по следующей ссылке: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html.
log_confusion_matrix(name, value, description='')
Параметры
Комментарии
Пример допустимого значения JSON:
{
"schema_type": "confusion_matrix",
"schema_version": "1.0.0",
"data": {
"class_labels": ["0", "1", "2", "3"],
"matrix": [
[3, 0, 1, 0],
[0, 1, 0, 1],
[0, 0, 1, 0],
[0, 0, 0, 1]
]
}
}
log_image
Запишите метрику изображения в запись о выполнении.
log_image(name, path=None, plot=None, description='')
Параметры
- plot
- <xref:matplotlib.pyplot>
График регистрации в виде изображения.
Комментарии
Используйте этот метод, чтобы записать файл изображения или график matplotlib в запуск. Эти изображения будут видимы, и их можно сравнить в записи о выполнении.
log_list
Запишите список значений метрики в выполнение с заданным именем.
log_list(name, value, description='')
Параметры
log_predictions
Регистрирует прогнозы в хранилище артефактов.
При этом регистрируется показатель метрики, который можно использовать для сравнения распределений истинных целевых значений с распределением прогнозируемых значений для задачи регрессии.
Прогнозируемые значения сегментируются, а для отображения на графике планок погрешностей вычисляются стандартные отклонения.
log_predictions(name, value, description='')
Параметры
Комментарии
Пример допустимого значения JSON:
{
"schema_type": "predictions",
"schema_version": "1.0.0",
"data": {
"bin_averages": [0.25, 0.75],
"bin_errors": [0.013, 0.042],
"bin_counts": [56, 34],
"bin_edges": [0.0, 0.5, 1.0]
}
}
log_residuals
Регистрирует остатки в хранилище артефактов.
При этом регистрируются данные, необходимые для отображения гистограммы остатков для задачи регрессии. Остатки прогнозируемые — фактические.
Число краев должно быть на единицу больше, чем число количественных величин. Примеры использования количественных величин и краев для представления гистограммы см. в документации по гистограмме NumPy. https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html
log_residuals(name, value, description='')
Параметры
Комментарии
Пример допустимого значения JSON:
{
"schema_type": "residuals",
"schema_version": "1.0.0",
"data": {
"bin_edges": [50, 100, 200, 300, 350],
"bin_counts": [0.88, 20, 30, 50.99]
}
}
log_row
Регистрирует метрику строки в запуске с заданным именем.
log_row(name, description=None, **kwargs)
Параметры
Комментарии
С помощью log_row
создается метрика таблицы со столбцами, как описано в kwargs. Каждый именованный параметр создает столбец с указанным значением. log_row
можно вызвать один раз, чтобы записать произвольный кортеж, или несколько раз в цикле, чтобы создать полную таблицу.
citrus = ['orange', 'lemon', 'lime']
sizes = [ 10, 7, 3]
for index in range(len(citrus)):
run.log_row("citrus", fruit = citrus[index], size=sizes[index])
log_table
Запишите значение табличной метрики в выполнение с заданным именем.
log_table(name, value, description='')
Параметры
- value
- dict
Табличное значение метрики, словарь, где ключи представляют собой столбцы, которые должны быть помещены в службу.
register_model
Регистрирует модель для ввода в эксплуатации.
register_model(model_name, model_path=None, tags=None, properties=None, model_framework=None, model_framework_version=None, description=None, datasets=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None, **kwargs)
Параметры
- model_path
- str
Относительный путь к модели в облаке, например "outputs/modelname".
Если параметр не указан (None), в качестве пути используется model_name
.
Словарь тегов значений ключей, которые необходимо назначить модели.
Словарь свойств значений ключей, которые необходимо назначить модели. Эти свойства нельзя изменить после создания модели, однако можно добавить новые пары "ключ-значение".
- model_framework
- str
Структура регистрируемой модели. Поддерживаемые в настоящее время платформы: TensorFlow, ScikitLearn, Onnx, Custom, Multi
- datasets
- list[(str, AbstractDataset)]
Список кортежей, в которых первый элемент описывает связь между набором данных и моделью, а второй элемент — это набор данных.
- sample_input_dataset
- AbstractDataset
Необязательный элемент. Пример входного набора данных для зарегистрированной модели
- sample_output_dataset
- AbstractDataset
Необязательный элемент. Пример выходного набора данных для зарегистрированной модели
- resource_configuration
- ResourceConfiguration
Необязательный элемент. Конфигурация ресурсов для запуска зарегистрированной модели
Возвращаемое значение
Зарегистрированная модель.
Возвращаемый тип
Комментарии
model = best_run.register_model(model_name = 'best_model', model_path = 'outputs/model.pkl')
remove_tags
Удаляет список изменяемых тегов для этого запуска.
remove_tags(tags)
Параметры
Возвращаемое значение
Теги, хранящиеся в объекте запуска.
restore_snapshot
Восстанавливает моментальный снимок в виде ZIP-файла. Возвращает путь к ZIP-файлу.
restore_snapshot(snapshot_id=None, path=None)
Параметры
- snapshot_id
- str
Идентификатор моментального снимка для восстановления. Если не указан, используется последний.
Возвращаемое значение
Путь.
Возвращаемый тип
set_tags
Добавляет или изменяет набор тегов в запуске. Теги, не передаваемые в словаре, остаются без изменений.
Можно также добавлять простые строковые теги. Если эти теги отображаются в словаре тегов в качестве ключей, то они имеют значение None (Нет). Дополнительные сведения см. в разделе Поиск запусков и добавление к ним тегов.
set_tags(tags)
Параметры
start
Помечает запуск как начатый.
Обычно используется в расширенных сценариях, когда запуск был создан другим субъектом.
start()
submit_child
Отправьте эксперимент и верните активный дочерний запуск.
submit_child(config, tags=None, **kwargs)
Параметры
- tags
- dict
Теги, добавляемые в отправленный запуск, например {"tag": "value"}.
Возвращаемое значение
Объект запуска.
Возвращаемый тип
Комментарии
Отправка — это асинхронный вызов платформы Машинного обучения Azure для выполнения попытки на локальном или удаленном оборудовании. В зависимости от конфигурации при отправке автоматически подготавливаются среды выполнения, выполняется код, а в журнал выполнения записываются исходный код и результаты.
Чтобы отправить эксперимент, сначала необходимо создать объект конфигурации, описывающий, как этот эксперимент будет выполняться. Конфигурация зависит от типа требуемой попытки.
Ниже приведен пример того, как отправить дочерний эксперимент с локального компьютера, используя ScriptRunConfig.
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 = parent_run.submit_child(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()
Дополнительные сведения о настройке запуска см. в разделе submit.
tag
Добавление тега к выполнению с использованием строкового ключа и дополнительного значения строки.
tag(key, value=None)
Параметры
Комментарии
Как теги, так и свойства для запуска являются словарями типа "строка —> строка". Отличаются они друг от друга изменяемостью: теги можно устанавливать, обновлять и удалять, а свойства можно только добавлять. Это делает свойства более подходящими для триггеров поведения, связанных с системой и рабочим процессом, в то время как теги обычно ориентированы на пользователей и понятны для потребителей эксперимента.
run = experiment.start_logging()
run.tag('DeploymentCandidate')
run.tag('modifiedBy', 'Master CI')
run.tag('modifiedBy', 'release pipeline') # Careful, tags are mutable
run.add_properties({'BuildId': os.environ.get('VSTS_BUILD_ID')}) # Properties are not
tags = run.get_tags()
# tags = { 'DeploymentCandidate': None, 'modifiedBy': 'release pipeline' }
take_snapshot
Сохраняет моментальный снимок входного файла или папки.
take_snapshot(file_or_folder_path)
Параметры
Возвращаемое значение
Возвращает идентификатор моментального снимка.
Возвращаемый тип
Комментарии
Моментальные снимки должны быть исходным кодом, используемым для запуска эксперимента. Они сохраняются вместе с запуском, чтобы можно было реплицировать попытку запуска в будущем.
Примечание
Моментальные снимки автоматически создаются при вызове submit. Как правило, этот метод take_snapshot требуется только для интерактивных запусков (записных книжек).
upload_file
Отправка файла в запись о выполнении.
upload_file(name, path_or_stream, datastore_name=None)
Параметры
Возвращаемый тип
Комментарии
run = experiment.start_logging()
run.upload_file(name='important_file', path_or_stream="path/on/disk/file.txt")
Примечание
Выполняет автоматическую запись файла в указанном каталоге вывода, который по умолчанию имеет значение "./outputs" для большинства типов выполнения. Используйте upload_file только в том случае, если необходимо отправить дополнительные файлы или не указан выходной каталог.
upload_files
Отправляет файлы в запись о запуске.
upload_files(names, paths, return_artifacts=False, timeout_seconds=None, datastore_name=None)
Параметры
- names
- list
Имена отправляемых файлов. Если задан этот параметр, требуется также задать пути.
- paths
- list
Относительные локальные пути к файлам для отправки. Если задан этот параметр, имена являются обязательными.
- return_artifacts
- bool
Указывает, что для каждого переданного файла должен быть возвращен объект артефакта.
Комментарии
upload_files
имеет тот же результат, что и upload_file
для отдельных файлов, однако использование upload_files
имеет преимущества с точки зрения производительности и использования ресурсов.
import os
run = experiment.start_logging()
file_name_1 = 'important_file_1'
file_name_2 = 'important_file_2'
run.upload_files(names=[file_name_1, file_name_2],
paths=['path/on/disk/file_1.txt', 'other/path/on/disk/file_2.txt'])
run.download_file(file_name_1, 'file_1.txt')
os.mkdir("path") # The path must exist
run.download_file(file_name_2, 'path/file_2.txt')
Примечание
Выполняет автоматическую запись файла в указанном каталоге вывода (по умолчанию ./outputs) для большинства типов выполнения. Используйте upload_files только в том случае, если необходимо отправить дополнительные файлы или не указан выходной каталог.
upload_folder
Отправляет указанную папку по заданному имени префикса.
upload_folder(name, path, datastore_name=None)
Параметры
Комментарии
run = experiment.start_logging()
run.upload_folder(name='important_files', path='path/on/disk')
run.download_file('important_files/existing_file.txt', 'local_file.txt')
Примечание
Выполняет автоматическую запись файла в указанном каталоге вывода (по умолчанию ./outputs) для большинства типов выполнения. Используйте upload_folder только в том случае, если необходимо отправить дополнительные файлы или не указан выходной каталог.
wait_for_completion
Ожидает завершения этого запуска. Возвращает объект состояния после ожидания.
wait_for_completion(show_output=False, wait_post_processing=False, raise_on_error=True)
Параметры
- show_output
- bool
Указывает, следует ли отображать выходные данные запуска в sys.stdout.
- wait_post_processing
- bool
Указывает, следует ли дождаться завершения постобработки после завершения запуска.
- raise_on_error
- bool
Указывает, происходит ли ошибка, если выполнение находится в состоянии сбоя.
Возвращаемое значение
Объект состояния.
Возвращаемый тип
Атрибуты
description
Возвращает описание запуска.
Необязательное описание запуска — это заданная пользователем строка, которую удобно использовать для описания запуска.
Возвращаемое значение
Описание запуска.
Возвращаемый тип
display_name
Возвращает отображаемое имя запуска.
Необязательное отображаемое имя запуска — это заданная пользователем строка, которую удобно использовать для последующей идентификации запуска.
Возвращаемое значение
Отображаемое имя запуска.
Возвращаемый тип
experiment
Получает эксперимент, содержащий запуск.
Возвращаемое значение
Извлекает эксперимент, соответствующий запуску.
Возвращаемый тип
id
Получает идентификатор запуска.
Идентификатор запуска — это уникальный идентификатор в пределах эксперимента, в рамках которого он выполняется.
Возвращаемое значение
Идентификатор запуска.
Возвращаемый тип
name
НЕ РЕКОМЕНДУЕТСЯ. Используйте display_name.
Необязательное имя запуска — это заданная пользователем строка, которую удобно использовать для последующей идентификации запуска.
Возвращаемое значение
Идентификатор запуска.
Возвращаемый тип
number
Получает номер запуска.
Последовательно увеличивающееся число, представляющее собой порядковый номер запуска в эксперименте.
Возвращаемое значение
Номер запуска.
Возвращаемый тип
parent
Получает из службы родительский запуск для этого запуска.
Запуски могут иметь необязательный родительский элемент, в результате чего может образовываться иерархическая структура запусков. Чтобы записать в журнал метрики для родительского запуска, используйте метод log родительского объекта, например run.parent.log()
.
Возвращаемое значение
Родительский запуск или ничего (None), если он не задан.
Возвращаемый тип
properties
Возвращает неизменяемые свойства данного запуска.
Возвращаемое значение
Локально кэшированные свойства запуска.
Возвращаемый тип
Комментарии
Свойства включают в себя неизменяемую системную информацию, например длительность, дату выполнения, пользователя и т. д.
status
Возвращает состояние объекта запуска.
tags
Возвращает набор изменяемых тегов для данного запуска.
Возвращаемое значение
Теги, хранящиеся в объекте запуска.
Возвращаемый тип
type
Получает тип запуска.
Указывает, как был создан или настроен запуск.
Возвращаемое значение
Тип запуска.
Возвращаемый тип
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по