Model 类
表示机器学习训练的结果。
模型是 Azure 机器学习训练 Run 或 Azure 外部的其他某种模型训练过程的结果。 无论模型的生成方式如何,它都可以在工作区中进行注册,由名称和版本表示。 使用模型 Model 类,可以将模型打包,以便与 Docker 一起使用,并将它部署为可用于推理请求的实时终结点。
有关演示如何创建、管理和使用模型的端到端教程,请参阅使用 Azure 机器学习通过 MNIST 数据和 scikit-learn 训练映像分类模型。
模型构造函数。
模型构造函数用于检索与提供的工作区关联的 Model 对象的云表示形式。 必须提供名称或 ID。
- 继承
-
builtins.objectModel
构造函数
Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)
参数
- tags
- list
用于筛选返回的结果的可选标记列表。 根据提供的列表筛选结果,按“key”或“[key, value]”搜索。 例如: ['key', ['key2', 'key2 value']]
- properties
- list
用于筛选返回的结果的可选属性列表。 根据提供的列表筛选结果,按“key”或“[key, value]”搜索。 例如: ['key', ['key2', 'key2 value']]
- tags
- list
用于筛选返回的结果的可选标记列表。 根据提供的列表筛选结果,按“key”或“[key, value]”搜索。 例如: ['key', ['key2', 'key2 value']]
- properties
- list
用于筛选返回的结果的可选属性列表。 根据提供的列表筛选结果,按“key”或“[key, value]”搜索。 例如: ['key', ['key2', 'key2 value']]
注解
Model 构造函数用于检索与指定工作区关联的模型对象的云表示形式。 必须至少提供名称或 ID 才能检索模型,但还可以使用其他选项进行筛选,包括按标记、属性、版本、运行 ID 和框架进行筛选。
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)
“变量”部分列出了云模型对象的本地表示形式的属性。 应将这些变量视为只读。 更改其值不会反映在对应的云对象中。
变量
- created_by
- dict
创建模型的用户。
- created_time
- datetime
创建模型的时间。
- azureml.core.Model.description
模型对象的说明。
- azureml.core.Model.id
模型 ID。 其格式为<模型名称>:<模型版本>。
- mime_type
- str
模型 mime 类型。
- azureml.core.Model.name
模型的名称。
- model_framework
- str
模型的框架。
- model_framework_version
- str
模型的框架版本。
- azureml.core.Model.tags
模型对象的标记字典。
- azureml.core.Model.properties
模型的键值属性字典。 这些属性在注册后无法更改,但是可以添加新的键值对。
- unpack
- bool
模型在拉取到本地上下文时是否需要解包(解压缩)。
- url
- str
模型的 URL 位置。
- azureml.core.Model.version
模型的版本。
- azureml.core.Model.workspace
包含模型的工作区。
- azureml.core.Model.experiment_name
创建模型的试验的名称。
- azureml.core.Model.run_id
创建模型的运行的 ID。
- parent_id
- str
模型的父模型的 ID。
- resource_configuration
- ResourceConfiguration
此模型的 ResourceConfiguration。 用于分析。
方法
add_dataset_references |
将提供的数据集与此模型相关联。 |
add_properties |
将键值对添加到此模型的属性字典中。 |
add_tags |
将键值对添加到此模型的标记字典中。 |
delete |
将此模型从其关联的工作区中删除。 |
deploy |
从零个或多个 Model 对象部署 Web 服务。 生成的 Web 服务是可用于推理请求实时终结点。 模型 |
deserialize |
将 JSON 对象转换为模型对象。 如果指定的工作区不是模型注册到的工作区,则转换将会失败。 |
download |
将模型下载到本地文件系统的目标目录。 |
get_model_path |
返回模型的路径。 该函数将在以下位置搜索模型。 如果
如果
|
get_sas_urls |
返回包含文件名和对应 SAS URL 的键值对字典。 |
list |
使用可选筛选器检索与提供的工作区关联的所有模型的列表。 |
package |
以 Docker 映像或 Dockerfile 生成上下文的形式创建模型包。 |
print_configuration |
打印用户配置。 |
profile |
分析模型以获取资源要求建议。 这是一个长期运行的操作,最长可能需要花费 25 分钟,具体取决于数据集的大小。 |
register |
将模型注册到提供的工作区。 |
remove_tags |
从此模型的标记字典中删除指定的键。 |
serialize |
将此模型转换为 JSON 序列化字典。 |
update |
对模型执行就地更新。 将替换指定的参数的现有值。 |
update_tags_properties |
对模型的标记和属性执行更新。 |
add_dataset_references
将提供的数据集与此模型相关联。
add_dataset_references(datasets)
参数
例外
add_properties
将键值对添加到此模型的属性字典中。
add_properties(properties)
参数
例外
add_tags
将键值对添加到此模型的标记字典中。
add_tags(tags)
参数
例外
delete
deploy
从零个或多个 Model 对象部署 Web 服务。
生成的 Web 服务是可用于推理请求实时终结点。 模型 deploy
函数类似于 Webservice 类的 deploy
函数,但不注册模型。 如果具有已注册的模型对象,请使用模型 deploy
函数。
static deploy(workspace, name, models, inference_config=None, deployment_config=None, deployment_target=None, overwrite=False, show_output=False)
参数
- deployment_config
- WebserviceDeploymentConfiguration
用于配置 Web 服务的 WebserviceDeploymentConfiguration。 如果未提供,将基于所需目标使用空配置对象。
- deployment_target
- ComputeTarget
要将 Web 服务部署到的 ComputeTarget。 由于 Azure 容器实例没有关联的 ComputeTarget,因此将此参数保留为“无”以部署到 Azure 容器实例。
返回
对应于已部署的 Web 服务的 Web 服务对象。
返回类型
例外
deserialize
将 JSON 对象转换为模型对象。
如果指定的工作区不是模型注册到的工作区,则转换将会失败。
static deserialize(workspace, model_payload)
参数
返回
所提供的 JSON 对象的模型表示形式。
返回类型
例外
download
将模型下载到本地文件系统的目标目录。
download(target_dir='.', exist_ok=False, exists_ok=None)
参数
返回
模型的文件或文件夹的路径。
返回类型
例外
get_model_path
返回模型的路径。
该函数将在以下位置搜索模型。
如果 version
为“无”:
- 远程下载到缓存(如果提供了工作区)
- 从缓存 azureml-models/$MODEL_NAME/$LATEST_VERSION/ 中加载
- ./$MODEL_NAME
如果 version
不为 None:
- 从缓存 azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/ 中加载
- 远程下载到缓存(如果提供了工作区)
static get_model_path(model_name, version=None, _workspace=None)
参数
返回
模型在磁盘上的路径。
返回类型
例外
get_sas_urls
返回包含文件名和对应 SAS URL 的键值对字典。
get_sas_urls()
返回
包含文件名和对应 SAS URL 的键值对字典
返回类型
例外
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)
参数
返回
模型列表(选择性地筛选)。
返回类型
例外
package
以 Docker 映像或 Dockerfile 生成上下文的形式创建模型包。
static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)
参数
返回
ModelPackage 对象。
返回类型
例外
print_configuration
打印用户配置。
static print_configuration(models, inference_config, deployment_config, deployment_target)
参数
- deployment_config
- WebserviceDeploymentConfiguration
用于配置 Web 服务的 WebserviceDeploymentConfiguration。
例外
profile
分析模型以获取资源要求建议。
这是一个长期运行的操作,最长可能需要花费 25 分钟,具体取决于数据集的大小。
static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)
参数
返回类型
例外
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)
参数
- model_path
- str
模型资产所在的本地文件系统上的路径。 这可以是指向单个文件或文件夹的直接指针。 如果指向文件夹,则 child_paths
参数可用于指定作为模型对象捆绑在一起的各个文件,而不是使用文件夹的整个内容。
返回
已注册的模型对象。
返回类型
例外
注解
除了模型文件本身的内容,注册模型还将存储模型元数据(包括模型说明、标记和框架信息),在工作区中管理和部署模型时,这些元数据非常有用。 例如,使用标记可以对模型进行分类,并在工作区中列出模型时应用筛选器。
以下示例演示如何注册一个指定标签和说明的模型。
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)
如果你有一个作为试验运行结果生成的模型,可以直接从运行对象注册它,而无需先将其下载到本地文件。 为此,请使用 Run 类中记录的 register_model 方法。
remove_tags
serialize
update
对模型执行就地更新。
将替换指定的参数的现有值。
update(tags=None, description=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
参数
例外
update_tags_properties
对模型的标记和属性执行更新。
update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)
参数
例外
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈