你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
复制和备份“自定义视觉”项目
创建并训练“自定义视觉”项目后,你可能会想要将项目复制到另一个资源。 如果你的应用或业务依赖于“自定义视觉”项目,我们建议你将模型复制到另一个区域中的另一个“自定义视觉”帐户。 这样一来,如果发生区域性服务中断,便可在项目复制到的区域中访问项目。
ExportProject 和 ImportProject API 允许将项目从一个“自定义视觉”帐户复制到其他帐户,从而实现这种场景。 本指南演示如何将这些 REST API 与 cURL 配合使用。 还可以使用 HTTP 请求服务(例如 Visual Studio Code 的 REST 客户端)发出请求。
提示
有关使用 Python 客户端库的此方案示例,请参阅 GitHub 上的移动自定义视觉项目存储库。
提示
如果要将自定义视觉项目移动到 Azure AI 视觉图像分析 4.0,请参阅迁移指南。 若要比较这两个服务,请参阅“比较”页面。
先决条件
- 两个 Azure AI 自定义视觉资源。 如果你没有这些资源,请转到 Azure 门户并创建一个新的“自定义视觉”资源。
- “自定义视觉”资源的训练密钥和终结点 URL。 可以在 Azure 门户上资源的“概述”选项卡中找到这些值。
- 一个已创建的“自定义视觉”项目。 有关如何执行此操作的说明,请参阅生成分类器。
- PowerShell 6.0 或更高版本,或者类似的命令行实用工具。
过程概述
复制项目的过程包括以下步骤:
- 首先,获取源帐户中你想要复制的项目的 ID。
- 然后,使用该项目 ID 和源帐户的训练密钥调用 ExportProject API。 你将获得一个临时令牌字符串。
- 然后,使用该令牌字符串和目标帐户的训练密钥调用 ImportProject API。 然后,该项目将在目标帐户下列出。
获取项目 ID
首先,调用 GetProjects 以查看现有“自定义视觉”项目及其 ID 的列表。 使用源帐户的训练密钥和终结点。
curl -v -X GET "{endpoint}/customvision/v3.3/Training/projects"
-H "Training-key: {training key}"
你将收到一个 200\OK
响应,该响应的正文中包含项目及其元数据的列表。 "id"
值是要为后续步骤复制的字符串。
[
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string",
"settings": {
"domainId": "00000000-0000-0000-0000-000000000000",
"classificationType": "Multiclass",
"targetExportPlatforms": [
"CoreML"
],
"useNegativeSet": true,
"detectionParameters": "string",
"imageProcessingSettings": {
"augmentationMethods": {}
}
},
"created": "string",
"lastModified": "string",
"thumbnailUri": "string",
"drModeEnabled": true,
"status": "Succeeded"
}
]
导出项目
使用项目 ID 与源训练密钥和终结点调用 ExportProject 。
curl -v -X GET "{endpoint}/customvision/v3.3/Training/projects/{projectId}/export"
-H "Training-key: {training key}"
你将收到一个 200/OK
响应,其中包含有关已导出项目的元数据和一个引用字符串 "token"
。 复制令牌的值。
{
"iterationCount": 0,
"imageCount": 0,
"tagCount": 0,
"regionCount": 0,
"estimatedImportTimeInMS": 0,
"token": "string"
}
提示
如果在导入项目时收到“无效令牌”错误,则可能是令牌 URL 字符串未进行 web 编码。 你可以使用 URL 编码器对令牌进行编码。
导入项目
使用目标训练密钥和终结点以及引用令牌来调用 ImportProject 。 还可以在新帐户中为你的项目命名。
curl -v -G -X POST "{endpoint}/customvision/v3.3/Training/projects/import"
--data-urlencode "token={token}" --data-urlencode "name={name}"
-H "Training-key: {training key}" -H "Content-Length: 0"
你将收到一个 200/OK
响应,其中包含有关新导入的项目的元数据。
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string",
"settings": {
"domainId": "00000000-0000-0000-0000-000000000000",
"classificationType": "Multiclass",
"targetExportPlatforms": [
"CoreML"
],
"useNegativeSet": true,
"detectionParameters": "string",
"imageProcessingSettings": {
"augmentationMethods": {}
}
},
"created": "string",
"lastModified": "string",
"thumbnailUri": "string",
"drModeEnabled": true,
"status": "Succeeded"
}
后续步骤
在本指南中,你已学习如何在“自定义视觉”资源之间复制和移动项目。 接下来请浏览 API 参考文档,以了解“自定义视觉”的其他作用。