本页面介绍如何通过图片数据创建 Vertex AI 数据集,以便您可以开始训练对象检测模型。您可以使用 Google Cloud 控制台或 Vertex AI API 创建数据集。
创建空数据集并导入或关联数据
Google Cloud 控制台
请按照以下说明创建一个空数据集,然后导入或关联数据。
- 在 Google Cloud 控制台的 Vertex AI 部分中,前往数据集页面。
- 点击创建以打开创建数据集详情页面。
- 修改数据集名称字段,以创建描述性的数据集显示名。
- 选择图片标签页。
- 选择对象检测作为模型的目标。
- 从区域下拉列表中选择一个区域。
- 点击创建以创建空数据集,并转到数据导入页面。
- 从选择导入方法部分中选择以下选项之一:
从您的计算机上传数据
- 在选择导入方法部分,选择从计算机上传数据。
- 点击选择文件,然后选择要上传到 Cloud Storage 存储桶的所有本地文件。
- 在选择 Cloud Storage 路径部分中,点击浏览以选择要将数据上传到的 Cloud Storage 存储桶位置。
从您的计算机上传导入文件
- 点击 Upload an import file from your computer。
- 点击选择文件,然后选择要上传到 Cloud Storage 存储桶的本地导入文件。
- 在选择 Cloud Storage 路径部分中,点击浏览以选择要将文件上传到的 Cloud Storage 存储桶位置。
从 Cloud Storage 中选择导入文件
- 点击 Select an import file from Cloud Storage。
- 在选择 Cloud Storage 路径部分,点击浏览,以选择 Cloud Storage 中的导入文件。
- 点击继续。
数据导入可能需要几个小时,具体取决于数据的大小。您可以关闭此标签页,稍后再返回。数据导入完成后,您会收到电子邮件。
API
如需创建机器学习模型,您必须先有一组用于训练的代表性数据。导入数据后,您可以进行修改并开始模型训练。
创建数据集
使用以下示例为您的数据创建数据集。
REST
在使用任何请求数据之前,请先进行以下替换:
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets
请求 JSON 正文:
{ "display_name": "DATASET_NAME", "metadata_schema_uri": "gs://google-cloud-aiplatform/schema/dataset/metadata/image_1.0.0.yaml" }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets" | Select-Object -Expand Content
您应该会看到类似如下所示的输出。您可以使用响应中的 OPERATION_ID 来获取操作的状态。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateDatasetOperationMetadata", "genericMetadata": { "createTime": "2020-07-07T21:27:35.964882Z", "updateTime": "2020-07-07T21:27:35.964882Z" } } }
Terraform
以下示例会使用 google_vertex_ai_dataset
Terraform 资源创建名为 image-dataset
的图片数据集。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
Java
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Java 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Java API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Node.js 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。 如需了解详情,请参阅 Python API 参考文档。
以下示例使用 Vertex AI SDK for Python 创建数据集并导入数据。如果您运行此示例代码,则可以跳过本指南的导入数据部分。
此特定示例导入用于单标签分类的数据。如果模型的目标不同,则必须调整代码。
导入数据
创建空数据集后,您可以将数据导入数据集。如果您之前使用 Vertex AI SDK for Python 创建数据集,则可能在创建数据集时已经导入数据。如果是这样,您可以跳过此部分。
REST
在使用任何请求数据之前,请先进行以下替换:
-
LOCATION:数据集所在的区域。例如
us-central1
。 - PROJECT_ID:您的项目 ID。
- DATASET_ID:数据集的 ID。
- IMPORT_FILE_URI:Cloud Storage 中 CSV 或 JSON 行文件的路径,该文件列出了存储在 Cloud Storage 中用于模型训练的数据项;如需了解导入文件格式和限制,请参阅准备图片数据。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:import
请求 JSON 正文:
{ "import_configs": [ { "gcs_source": { "uris": "IMPORT_FILE_URI" }, "import_schema_uri" : "gs://google-cloud-aiplatform/schema/dataset/ioformat/image_bounding_box_io_format_1.0.0.yaml" } ] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:import"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:import" | Select-Object -Expand Content
您应该会看到类似如下所示的输出。您可以使用响应中的 OPERATION_ID 来获取操作的状态。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ImportDataOperationMetadata", "genericMetadata": { "createTime": "2020-07-08T20:32:02.543801Z", "updateTime": "2020-07-08T20:32:02.543801Z" } } }
Java
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Java 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Java API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Node.js 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。 如需了解详情,请参阅 Python API 参考文档。
获取操作状态
某些请求会启动需要一些时间才能完成的长时间运行的操作。这些请求会返回操作名称,您可以使用该名称查看操作状态或取消操作。Vertex AI 提供辅助方法来调用长时间运行的操作。如需了解详情,请参阅使用长时间运行的操作。