数据集包含要分类的内容类型的代表性样本,这些样本以您希望自定义模型使用的类别标签进行标记。数据集用作训练模型的输入。
构建数据集的主要步骤如下:
如果要导入已分配标签的数据项,则将第 2 步和第 3 步结合在一起即可。
创建数据集
如要创建自定义模型,首先需要创建一个空数据集,该数据集最终用于保存模型的训练数据。创建数据集时,您可以指定希望自定义模型执行的分类类型:
- 多类别 (MULTICLASS) 分类为每个分类的图片分配一个标签
- 多标签 (MULTILABEL) 分类可以为每个图片分配多个标签
自 v1 版 AutoML API 起,此请求会返回长时间运行的操作的 ID。
长时间运行的操作完成后,您可以将图片导入到该数据集中。 在您将图片导入到新创建的数据集之前,该数据集不包含任何数据。
保存响应中新数据集的 ID 以用于其他操作,例如,将图片导入到数据集中并训练模型。
网页界面
打开 Vision 信息中心。
您也可以在控制台中通过左侧导航菜单项人工智能 > Vision 访问此页面。系统会将您转至集成式 Vision 信息中心。选择 AutoML Vision 卡片。
从左侧导航菜单中选择数据集。
选择顶部的新建数据集按钮,更新数据集名称(可选),然后根据您拥有的数据选择
单标签分类或多标签分类。指定分类类型后,请选择创建数据集。
在创建数据集页面上,您可以从 Google Cloud Storage 中选择 CSV 文件,或选择要导入到数据集中的本地图片文件。
选择继续,开始将图片导入到数据集中。在导入过程中,数据集将显示正在运行:正在导入图片状态。
导入完成后,您会收到电子邮件通知。
REST
以下示例创建的数据集支持每个数据项一个标签(请参阅多类别 (MULTICLASS))。
在您将数据项导入到新创建的数据集之前,该数据集不包含任何数据。
保存响应中新数据集的 "name"
以用于其他操作,例如,将数据项导入到数据集中并训练模型。
在使用任何请求数据之前,请先进行以下替换:
- project-id:您的 GCP 项目 ID。
- display-name:您选择的字符串显示名。
HTTP 方法和网址:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets
请求 JSON 正文:
{ "displayName": "DISPLAY_NAME", "imageClassificationDatasetMetadata": { "classificationType": "MULTICLASS" } }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets" | Select-Object -Expand Content
您应该会看到类似如下所示的输出。可以使用操作 ID(本例中为 ICN3819960680614725486
)来获取任务的状态。如需查看示例,请参阅处理长时间运行的操作:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-11-14T16:49:13.667526Z", "updateTime": "2019-11-14T16:49:13.667526Z", "createDatasetDetails": {} } }
长时间运行的操作完成后,您可以使用同样的操作状态请求来获取数据集的 ID。响应应类似如下所示:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-11-14T16:49:13.667526Z", "updateTime": "2019-11-14T16:49:17.975314Z", "createDatasetDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Dataset", "name": "projects/PROJECT_ID/locations/us-central1/datasets/ICN5496445433112696489" } }
Go
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
Java
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
Node.js
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
Python
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
其他语言
C#: 请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 AutoML Vision 参考文档。
PHP: 请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 AutoML Vision 参考文档。
Ruby 版: 请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 AutoML Vision 参考文档。
将训练项导入数据集
创建数据集后,您可以从存储在 Google Cloud Storage 存储分区的 CSV 文件中导入各数据项的 URI 和标签。如需详细了解如何准备数据并创建 CSV 文件以供导入,请参阅准备训练数据。
您可将数据项导入空数据集,也可在现有数据集中导入其他数据项。
网页界面
在 AutoML Vision 界面中,您可以创建新数据集并在同一页面将数据项导入其中;请参阅创建数据集。如需将数据项导入现有数据集,请按以下步骤操作。
打开 Vision Dashboard,然后从数据集页面中选择相应数据集。
在图片页面上,点击标题栏中的添加项 (Add items),然后从下拉列表中选择导入方法。
您可以执行以下操作:
从本地机器或 Google Cloud Storage 上传一个包含训练图片及其关联类别标签的 .csv 文件。
从本地机器上传包含训练图片的 .txt 或 .zip 文件。
选择要导入的文件。
REST
在使用任何请求数据之前,请先进行以下替换:
- project-id:您的 GCP 项目 ID。
- dataset-id:您的数据集的 ID。此 ID 是数据集名称的最后一个元素。例如:
- 数据集名称:
projects/project-id/locations/location-id/datasets/3104518874390609379
- 数据集 ID:
3104518874390609379
- 数据集名称:
- input-storage-path:存储在 Google Cloud Storage 中的 CSV 文件的路径。 发出请求的用户必须至少具有相应存储分区的读取权限。
HTTP 方法和网址:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData
请求 JSON 正文:
{ "inputConfig": { "gcsSource": { "inputUris": [INPUT_STORAGE_PATH] } } }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData" | Select-Object -Expand Content
您应该会看到类似如下所示的输出。可以使用操作 ID(本例中为 ICN3819960680614725486
)来获取任务的状态。如需查看示例,请参阅处理长时间运行的操作。
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T15:56:29.176485Z", "importDataDetails": {} } }
Go
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
Java
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
Node.js
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
Python
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
为训练项添加标签
为了有助于训练模型,数据集中的每个训练项都必须至少分配一个类别标签。AutoML Vision 会忽略不带类别标签的训练项。您可以通过以下三种方式为训练项提供标签:
- 将标签添加到 CSV 文件中
- 如需详细了解如何为 .csv 文件中的各项添加标签,请参阅准备训练数据。
- 在 AutoML Vision 界面中为各训练项添加标签
- 请求通过人工标签服务(例如 AI Platform 数据标签服务)添加标签。
在界面中加标签
网页界面
如需在 AutoML Vision 界面中为各训练项添加标签,请从数据集列表页面中选择相应数据集以查看其详细信息。
侧边栏汇总了已加标签和未加标签的训练项数。您可以在此处按标签过滤训练项列表,或选择添加新标签以创建新标签。
在此屏幕中,您还可以添加或更改图片的标签。
选择图片即可添加或更改其标签。
请求加标签
您可以利用 Google 的 AI Platform Data Labeling Service 服务为您的图片添加标签。如需了解详情,请参阅产品文档。
处理长时间运行的操作
您可以使用以下代码示例获取长时间运行的操作的状态。
REST
在使用任何请求数据之前,请先进行以下替换:
- project-id:您的 GCP 项目 ID。
- operation-id:您的操作的 ID。此 ID 是操作名称的最后一个元素。例如:
- 操作名称:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- 操作 ID:
IOD5281059901324392598
- 操作名称:
HTTP 方法和网址:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID" | Select-Object -Expand Content
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T16:10:41.326614Z", "importDataDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
完成创建模型操作后,您应会看到如下输出:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T18:35:06.881193Z", "updateTime": "2019-07-22T19:58:44.972235Z", "createModelDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Model", "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID" } }
Go
在试用此示例之前,请按照 API 与参考文档 > 客户端库页面上与此编程语言对应的设置说明进行操作。
Java
在试用此示例之前,请按照 API 与参考文档 > 客户端库页面上与此编程语言对应的设置说明进行操作。
Node.js
在试用此示例之前,请按照 API 与参考文档 > 客户端库页面上与此编程语言对应的设置说明进行操作。
Python
在试用此示例之前,请按照 API 与参考文档 > 客户端库页面上与此编程语言对应的设置说明进行操作。
其他语言
C#: 请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 AutoML Vision 参考文档。
PHP: 请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 AutoML Vision 参考文档。
Ruby 版: 请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 AutoML Vision 参考文档。