Model Класс
Представляет результат обучения машинного обучения.
Модель является результатом обучения Run машинного обучения Azure или какого-либо другого процесса обучения модели за пределами Azure. Независимо от того, как создается модель, она может быть зарегистрирована в рабочей области, где она представлена именем и версией. С помощью класса Model можно упаковывать модели для использования с Docker и развертывать их как конечную точку в режиме реального времени, которая может использоваться для запросов вывода.
Комплексное руководство по созданию, управлении и использованию моделей см. в статье Обучение модели классификации изображений с помощью данных MNIST и Scikit-learn с помощью Машинного обучения Azure.
Конструктор модели.
Конструктор модели используется для получения облачного представления объекта Model, связанного с предоставленной рабочей областью. Должен указать имя или идентификатор.
Конструктор
Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Объект рабочей области, содержащий модель для извлечения. |
name
|
Имя извлекаемой модели. Возвращается последняя модель с указанным именем, если она существует. Default value: None
|
id
|
Идентификатор извлекаемой модели. Модель с указанным идентификатором возвращается, если она существует. Default value: None
|
tags
|
Необязательный список тегов, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, выполняя поиск по ключу или [ключу, значению]. Пример. ['key', ['key2', 'key2 value']] Default value: None
|
properties
|
Необязательный список свойств, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, выполняя поиск по ключу или [ключу, значению]. Пример. ['key', ['key2', 'key2 value']] Default value: None
|
version
|
Возвращаемая версия модели. При предоставлении вместе с Default value: None
|
run_id
|
Необязательный идентификатор, используемый для фильтрации возвращаемых результатов. Default value: None
|
model_framework
|
Необязательное имя платформы, используемое для фильтрации возвращаемых результатов. При указании результаты возвращаются для моделей, соответствующих указанной платформе. См Framework . допустимые значения. Default value: None
|
workspace
Обязательно
|
Объект рабочей области, содержащий модель для извлечения. |
name
Обязательно
|
Имя извлекаемой модели. Возвращается последняя модель с указанным именем, если она существует. |
id
Обязательно
|
Идентификатор извлекаемой модели. Модель с указанным идентификатором возвращается, если она существует. |
tags
Обязательно
|
Необязательный список тегов, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, выполняя поиск по ключу или [ключу, значению]. Пример. ['key', ['key2', 'key2 value']] |
properties
Обязательно
|
Необязательный список свойств, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, выполняя поиск по ключу или [ключу, значению]. Пример. ['key', ['key2', 'key2 value']] |
version
Обязательно
|
Возвращаемая версия модели. При предоставлении вместе с |
run_id
Обязательно
|
Необязательный идентификатор, используемый для фильтрации возвращаемых результатов. |
model_framework
Обязательно
|
Необязательное имя платформы, используемое для фильтрации возвращаемых результатов. При указании результаты возвращаются для моделей, соответствующих указанной платформе. См Framework . допустимые значения. |
expand
|
Если значение true, возвращает модели со всеми вложенными свойствами, заполненными, например выполнением, набором данных и экспериментом. Default value: True
|
Комментарии
Конструктор модели используется для получения облачного представления объекта Model, связанного с указанной рабочей областью. Для получения моделей необходимо указать по крайней мере имя или идентификатор, но существуют и другие параметры фильтрации, включая теги, свойства, версию, идентификатор запуска и платформу.
from azureml.core.model import Model
model = Model(ws, 'my_model_name')
В следующем примере показано, как получить определенную версию модели.
from azureml.core.model import Model
model = Model(ws, 'my_model_name', version=1)
Регистрация модели создает логический контейнер для одного или нескольких файлов, составляющих модель. Помимо содержимого самого файла модели, зарегистрированная модель также сохраняет метаданные модели, включая описание модели, теги и сведения о платформе, которые полезны при управлении и развертывании модели в рабочей области. Например, с тегами можно классифицировать модели и применять фильтры при перечислении моделей в рабочей области. После регистрации вы можете скачать или развернуть зарегистрированную модель и получить все файлы и метаданные, зарегистрированные.
В следующем примере показано, как зарегистрировать модель, указывающую теги и описание.
from azureml.core.model import Model
model = Model.register(model_path="sklearn_regression_model.pkl",
model_name="sklearn_regression_model",
tags={'area': "diabetes", 'type': "regression"},
description="Ridge regression model to predict diabetes",
workspace=ws)
В следующем примере показано, как зарегистрировать модель, указывающую платформу, входные и выходные наборы данных и конфигурацию ресурсов.
import sklearn
from azureml.core import Model
from azureml.core.resource_configuration import ResourceConfiguration
model = Model.register(workspace=ws,
model_name='my-sklearn-model', # Name of the registered model in your workspace.
model_path='./sklearn_regression_model.pkl', # Local file to upload and register as a model.
model_framework=Model.Framework.SCIKITLEARN, # Framework used to create the model.
model_framework_version=sklearn.__version__, # Version of scikit-learn used to create the model.
sample_input_dataset=input_dataset,
sample_output_dataset=output_dataset,
resource_configuration=ResourceConfiguration(cpu=1, memory_in_gb=0.5),
description='Ridge regression model to predict diabetes progression.',
tags={'area': 'diabetes', 'type': 'regression'})
print('Name:', model.name)
print('Version:', model.version)
В разделе "Переменные" перечислены атрибуты локального представления объекта cloud Model. Эти переменные должны рассматриваться только для чтения. Изменение их значений не будет отражено в соответствующем облачном объекте.
Переменные
Имя | Описание |
---|---|
created_by
|
Пользователь, создавший модель. |
created_time
|
Когда модель была создана. |
azureml.core.Model.description
|
Описание объекта Model. |
azureml.core.Model.id
|
Идентификатор модели. Это принимает форму <модели name>:<model version>. |
mime_type
|
Тип mime модели. |
azureml.core.Model.name
|
Имя модели. |
model_framework
|
Платформа модели. |
model_framework_version
|
Версия платформы модели. |
azureml.core.Model.tags
|
Словарь тегов для объекта Model. |
azureml.core.Model.properties
|
Словарь свойств значений ключа для модели. Эти свойства нельзя изменить после регистрации, однако можно добавить новые пары значений ключей. |
unpack
|
Следует ли распаковывать модель (ненацеленный) при извлечении в локальный контекст. |
url
|
Url-адрес модели. |
azureml.core.Model.version
|
Версия модели. |
azureml.core.Model.workspace
|
Рабочая область, содержащая модель. |
azureml.core.Model.experiment_name
|
Имя эксперимента, создавшего модель. |
azureml.core.Model.run_id
|
Идентификатор запуска, создавшего модель. |
parent_id
|
Идентификатор родительской модели модели модели. |
derived_model_ids
|
Список идентификаторов моделей, производных от этой модели. |
resource_configuration
|
ResourceConfiguration для этой модели. Используется для профилирования. |
Методы
add_dataset_references |
Свяжите предоставленные наборы данных с этой моделью. |
add_properties |
Добавьте пары значений ключей в словарь свойств этой модели. |
add_tags |
Добавьте пары значений ключей в словарь тегов этой модели. |
delete |
Удалите эту модель из связанной рабочей области. |
deploy |
Разверните веб-службу из нуля или нескольких Model объектов. Результирующая веб-служба — это конечная точка в режиме реального времени, которая может использоваться для запросов вывода. Функция Model |
deserialize |
Преобразуйте объект JSON в объект модели. Преобразование завершается ошибкой, если указанная рабочая область не является рабочей областью, в ней зарегистрирована модель. |
download |
Скачайте модель в целевой каталог локальной файловой системы. |
get_model_path |
Путь к модели. Функция будет искать модель в следующих расположениях. Значение
Если
|
get_sas_urls |
Возвращает словарь пар "ключ-значение", содержащих имена файлов и соответствующие URL-адреса SAS. |
list |
Получение списка всех моделей, связанных с предоставленной рабочей областью, с дополнительными фильтрами. |
package |
Создайте пакет модели в виде образа Docker или контекста сборки Dockerfile. |
print_configuration |
Печать конфигурации пользователя. |
profile |
Профили модели для получения рекомендаций по требованию к ресурсу. Это длительная операция, которая может занять до 25 минут в зависимости от размера набора данных. |
register |
Зарегистрируйте модель в предоставленной рабочей области. |
remove_tags |
Удалите указанные ключи из словаря тегов этой модели. |
serialize |
Преобразуйте эту модель в сериализованный словарь json. |
update |
Выполните обновление модели на месте. Заменяются существующие значения указанных параметров. |
update_tags_properties |
Выполните обновление тегов и свойств модели. |
add_dataset_references
Свяжите предоставленные наборы данных с этой моделью.
add_dataset_references(datasets)
Параметры
Имя | Описание |
---|---|
datasets
Обязательно
|
Список кортежей, представляющих связывание назначения набора данных с объектом набора данных. |
Исключения
Тип | Описание |
---|---|
add_properties
Добавьте пары значений ключей в словарь свойств этой модели.
add_properties(properties)
Параметры
Имя | Описание |
---|---|
properties
Обязательно
|
dict(<xref:str : str>)
Словарь добавляемых свойств. |
add_tags
Добавьте пары значений ключей в словарь тегов этой модели.
add_tags(tags)
Параметры
Имя | Описание |
---|---|
tags
Обязательно
|
dict(<xref:{str : str}>)
Словарь добавляемых тегов. |
Исключения
Тип | Описание |
---|---|
delete
Удалите эту модель из связанной рабочей области.
delete()
Исключения
Тип | Описание |
---|---|
deploy
Разверните веб-службу из нуля или нескольких Model объектов.
Результирующая веб-служба — это конечная точка в режиме реального времени, которая может использоваться для запросов вывода. Функция Model deploy
аналогична deploy
функции Webservice класса, но не регистрирует модели. Используйте функцию модели deploy
, если у вас уже зарегистрированы объекты модели.
static deploy(workspace, name, models, inference_config=None, deployment_config=None, deployment_target=None, overwrite=False, show_output=False)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Объект рабочей области для связывания веб-службы с. |
name
Обязательно
|
Имя для предоставления развернутой службы. Должен быть уникальным для рабочей области, состоящий только из строчных букв, чисел или дефисов, начинаться с буквы и иметь длину от 3 до 32 символов. |
models
Обязательно
|
Список объектов модели. Может быть пустым списком. |
inference_config
|
Объект InferenceConfig, используемый для определения необходимых свойств модели. Default value: None
|
deployment_config
|
Служба WebserviceDeploymentConfiguration, используемая для настройки веб-службы. Если он не указан, пустой объект конфигурации будет использоваться на основе требуемого целевого объекта. Default value: None
|
deployment_target
|
A ComputeTarget для развертывания веб-службы в. Так как экземпляры контейнеров Azure не связаны ComputeTarget, оставьте этот параметр как None для развертывания в экземплярах контейнеров Azure. Default value: None
|
overwrite
|
Указывает, следует ли перезаписать существующую службу, если служба с указанным именем уже существует. Default value: False
|
show_output
|
Указывает, следует ли отображать ход развертывания службы. Default value: False
|
Возвращаемое значение
Тип | Описание |
---|---|
Объект веб-службы, соответствующий развернутой веб-службе. |
Исключения
Тип | Описание |
---|---|
deserialize
Преобразуйте объект JSON в объект модели.
Преобразование завершается ошибкой, если указанная рабочая область не является рабочей областью, в ней зарегистрирована модель.
static deserialize(workspace, model_payload)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Объект рабочей области, в который зарегистрирована модель. |
model_payload
Обязательно
|
Объект JSON для преобразования в объект Model. |
Возвращаемое значение
Тип | Описание |
---|---|
Представление модели предоставленного объекта JSON. |
download
Скачайте модель в целевой каталог локальной файловой системы.
download(target_dir='.', exist_ok=False, exists_ok=None)
Параметры
Имя | Описание |
---|---|
target_dir
|
Путь к каталогу, в котором нужно скачать модель. Значение по умолчанию — "." Default value: .
|
exist_ok
|
Указывает, следует ли заменить скачанный dir/files, если они существуют. По умолчанию False. Default value: False
|
exists_ok
|
УСТАРЕВШИЕ. Используйте Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Путь к файлу или папке модели. |
get_model_path
Путь к модели.
Функция будет искать модель в следующих расположениях.
Значение version
None:
- Скачивание из удаленного в кэш (если рабочая область предоставлена)
- Загрузка из кэша azureml-models/$MODEL_NAME/$LATEST_VERSION/
- ./$MODEL_NAME
Если version
нет:
- Загрузка из кэша azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/
- Скачивание из удаленного в кэш (если рабочая область предоставлена)
static get_model_path(model_name, version=None, _workspace=None)
Параметры
Имя | Описание |
---|---|
model_name
Обязательно
|
Имя извлекаемой модели. |
version
|
Версия модели, извлекаемой. По умолчанию используется последняя версия. Default value: None
|
_workspace
|
Рабочая область, из которого извлекается модель. Не удается использовать удаленно. Если не указан только локальный кэш, выполняется поиск. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Путь к модели на диске. |
Исключения
Тип | Описание |
---|---|
get_sas_urls
Возвращает словарь пар "ключ-значение", содержащих имена файлов и соответствующие URL-адреса SAS.
get_sas_urls()
Возвращаемое значение
Тип | Описание |
---|---|
Словарь пар "ключ-значение", содержащих имена файлов и соответствующие URL-адреса SAS |
list
Получение списка всех моделей, связанных с предоставленной рабочей областью, с дополнительными фильтрами.
static list(workspace, name=None, tags=None, properties=None, run_id=None, latest=False, dataset_id=None, expand=True, page_count=255, model_framework=None)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Объект рабочей области для получения моделей. |
name
|
Если задано, возвращается только модели с указанным именем, если таковые есть. Default value: None
|
tags
|
Фильтруется по указанному списку по ключу или [ключу, значению]. Пример. ['key', ['key2', 'key2 value']] Default value: None
|
properties
|
Фильтруется по указанному списку по ключу или [ключу, значению]. Пример. ['key', ['key2', 'key2 value']] Default value: None
|
run_id
|
Будет фильтроваться на основе предоставленного идентификатора выполнения. Default value: None
|
latest
|
Если значение true, возвращает только модели с последней версией. Default value: False
|
dataset_id
|
Будет фильтроваться на основе предоставленного идентификатора набора данных. Default value: None
|
expand
|
Если значение true, возвращает модели со всеми вложенными свойствами, заполненными, например выполнением, набором данных и экспериментом. Если задано значение false, это значение должно ускорить завершение метода list() в случае многих моделей. Default value: True
|
page_count
|
Количество элементов, извлекаемых на странице. В настоящее время поддерживаются значения до 255. Значение по умолчанию — 255. Default value: 255
|
model_framework
|
Если это указано, возвращает только модели с указанной платформой, если таковые есть. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Список моделей, при необходимости отфильтрованный. |
Исключения
Тип | Описание |
---|---|
package
Создайте пакет модели в виде образа Docker или контекста сборки Dockerfile.
static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Рабочая область, в которой создается пакет. |
models
Обязательно
|
Список объектов модели для включения в пакет. Может быть пустым списком. |
inference_config
|
Объект InferenceConfig для настройки операции моделей. Это должно включать объект Environment. Default value: None
|
generate_dockerfile
|
Следует ли создать Dockerfile, который можно запускать локально, а не создавать образ. Default value: False
|
image_name
|
При создании изображения имя результирующего изображения. Default value: None
|
image_label
|
При создании изображения метка для полученного изображения. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Объект ModelPackage. |
print_configuration
Печать конфигурации пользователя.
static print_configuration(models, inference_config, deployment_config, deployment_target)
Параметры
Имя | Описание |
---|---|
models
Обязательно
|
Список объектов модели. Может быть пустым списком. |
inference_config
Обязательно
|
Объект InferenceConfig, используемый для определения необходимых свойств модели. |
deployment_config
Обязательно
|
Служба WebserviceDeploymentConfiguration, используемая для настройки веб-службы. |
deployment_target
Обязательно
|
A ComputeTarget для развертывания веб-службы в. |
profile
Профили модели для получения рекомендаций по требованию к ресурсу.
Это длительная операция, которая может занять до 25 минут в зависимости от размера набора данных.
static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Объект рабочей области, в котором необходимо профилировать модель. |
profile_name
Обязательно
|
Имя запуска профилирования. |
models
Обязательно
|
Список объектов модели. Может быть пустым списком. |
inference_config
Обязательно
|
Объект InferenceConfig, используемый для определения необходимых свойств модели. |
input_dataset
Обязательно
|
Входной набор данных для профилирования. Входной набор данных должен иметь один столбец и образец входных данных должен иметь строковый формат. |
cpu
|
Количество ядер ЦП, используемых в крупнейшем тестовом экземпляре. В настоящее время поддерживаются значения до 3,5. Default value: None
|
memory_in_gb
|
Объем памяти (в ГБ) для использования в крупнейшем тестовом экземпляре. Может быть десятичным. В настоящее время поддерживаются значения до 15,0. Default value: None
|
description
|
Описание, связанное с выполнением профилирования. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Исключения
Тип | Описание |
---|---|
<xref:azureml.exceptions.WebserviceException>, <xref:azureml.exceptions.UserErrorException>
|
register
Зарегистрируйте модель в предоставленной рабочей области.
static register(workspace, model_path, model_name, tags=None, properties=None, description=None, datasets=None, model_framework=None, model_framework_version=None, child_paths=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Рабочая область для регистрации модели. |
model_path
Обязательно
|
Путь к локальной файловой системе, в которой находятся ресурсы модели. Это может быть прямой указатель на один файл или папку. Если указывает на папку, |
model_name
Обязательно
|
Имя для регистрации модели с помощью. |
tags
|
dict(<xref:{str : str}>)
Необязательный словарь тегов значений ключа для назначения модели. Default value: None
|
properties
|
dict(<xref:{str : str}>)
Необязательный словарь свойств значения ключа для назначения модели. Эти свойства нельзя изменить после создания модели, однако можно добавить новые пары значений ключей. Default value: None
|
description
|
Текстовое описание модели. Default value: None
|
datasets
|
Список кортежей, в которых первый элемент описывает отношение модели набора данных, а второй — набор данных. Default value: None
|
model_framework
|
Платформа зарегистрированной модели. Использование системных констант из Framework класса позволяет упростить развертывание для некоторых популярных платформ. Default value: None
|
model_framework_version
|
Версия платформы зарегистрированной модели. Default value: None
|
child_paths
|
Если указано в сочетании с Default value: None
|
sample_input_dataset
|
Пример входного набора данных для зарегистрированной модели. Default value: None
|
sample_output_dataset
|
Пример выходного набора данных для зарегистрированной модели. Default value: None
|
resource_configuration
|
Конфигурация ресурса для запуска зарегистрированной модели. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Зарегистрированный объект модели. |
Комментарии
Помимо содержимого самого файла модели, зарегистрированная модель также сохраняет метаданные модели, включая описание модели, теги и сведения о платформе, которые полезны при управлении и развертывании модели в рабочей области. Например, с тегами можно классифицировать модели и применять фильтры при перечислении моделей в рабочей области.
В следующем примере показано, как зарегистрировать модель, указывающую теги и описание.
from azureml.core.model import Model
model = Model.register(model_path="sklearn_regression_model.pkl",
model_name="sklearn_regression_model",
tags={'area': "diabetes", 'type': "regression"},
description="Ridge regression model to predict diabetes",
workspace=ws)
Если у вас есть модель, созданная в результате выполнения эксперимента, вы можете зарегистрировать ее из объекта запуска напрямую, не скачивая его в локальный файл. Для этого используйте register_model метод, как описано в Run классе.
remove_tags
serialize
Преобразуйте эту модель в сериализованный словарь json.
serialize()
Возвращаемое значение
Тип | Описание |
---|---|
Представление json этой модели |
update
Выполните обновление модели на месте.
Заменяются существующие значения указанных параметров.
update(tags=None, description=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
Параметры
Имя | Описание |
---|---|
tags
|
dict(<xref:{str : str}>)
Словарь тегов для обновления модели. Эти теги заменяют существующие теги для модели. Default value: None
|
description
|
Новое описание, используемое для модели. Это имя заменяет существующее имя. Default value: None
|
sample_input_dataset
|
Образец входного набора данных, используемый для зарегистрированной модели. Этот пример входного набора данных заменяет существующий набор данных. Default value: None
|
sample_output_dataset
|
Пример выходного набора данных, используемый для зарегистрированной модели. Этот пример выходного набора данных заменяет существующий набор данных. Default value: None
|
resource_configuration
|
Конфигурация ресурса, используемая для запуска зарегистрированной модели. Default value: None
|
Исключения
Тип | Описание |
---|---|
update_tags_properties
Выполните обновление тегов и свойств модели.
update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)
Параметры
Имя | Описание |
---|---|
add_tags
|
dict(<xref:{str : str}>)
Словарь тегов для добавления. Default value: None
|
remove_tags
|
Список имен тегов для удаления. Default value: None
|
add_properties
|
dict(<xref:{str : str}>)
Словарь свойств для добавления. Default value: None
|
Исключения
Тип | Описание |
---|---|