本页面介绍了如何使用 Google Cloud 控制台或 Vertex AI API 根据视频数据集训练 AutoML 对象跟踪模型。
训练 AutoML 模型
Google Cloud 控制台
在 Google Cloud 控制台的 Vertex AI 部分中,前往数据集页面。
点击要用于训练模型的数据集的名称,以打开其详情页面。
点击训练新模型。
输入新模型的显示名。
如果您要手动设置训练数据的拆分方式,请展开高级选项,然后选择数据拆分选项。了解详情。
点击继续。
选择模型训练方法。
AutoML
非常适合各种用例。Seq2seq+
非常适合进行实验。该算法可能比AutoML
收敛更快,因为它的架构更简单,并且使用较小的搜索空间。我们的实验发现,在时间预算较少的情况下以及在小于 1 GB 的数据集上,Seq2Seq+ 性能较好。
点击开始训练。
模型训练可能需要几个小时,具体取决于数据的大小和复杂性,以及训练预算(如果指定)。您可以关闭此标签页,稍后再返回。模型完成训练后,您会收到电子邮件。
训练开始几分钟后,您即可在模型的属性信息中查看训练节点时的估算值。如果您取消训练,当前产品不会产生费用。
API
在下面选择您的语言或环境对应的标签页:
REST
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:数据集所在且用于存储模型的区域。例如
us-central1
。 - PROJECT:您的项目 ID。
- MODEL_DISPLAY_NAME:新训练模型的显示名称。
- DATASET_ID:训练数据集的 ID。
-
filterSplit
对象为可选;您可使用它来控制数据拆分。如需详细了解如何控制数据拆分,请参阅使用 REST 控制数据拆分。 - PROJECT_NUMBER:您项目的自动生成的项目编号
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "MODE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_object_tracking_1.0.0.yaml", "trainingTaskInputs": {}, "modelToUpload": {"displayName": "MODE_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", "filterSplit": { "trainingFilter": "labels.ml_use = training", "validationFilter": "labels.ml_use = -", "testFilter": "labels.ml_use = test" } } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/2307109646608891904", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_object_tracking_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-04-18T01:22:57.479336Z", "updateTime": "2020-04-18T01:22:57.479336Z" }
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
如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。 如需了解详情,请参阅 Python 版 Vertex AI SDK API 参考文档。
使用 REST 控制数据拆分
您可以控制在训练集、验证集和测试集之间拆分训练数据的方式。使用 Vertex AI API 时,请使用 Split
对象来确定数据拆分。Split
对象可以包含在 InputConfig
对象中作为多种对象类型中的一种,其中每种类型都提供一种不同的训练数据拆分方式。您只能选择一种方法。
-
FractionSplit
:- TRAINING_FRACTION:要用于训练集的训练数据的比例。
- VALIDATION_FRACTION:要用于验证集的训练数据的比例。不用于视频数据。
- TEST_FRACTION:要用于测试集的训练数据的比例。
如果指定了任一比例,则必须指定所有比例。这些比例之和必须等于 1.0。比例的默认值会因数据类型而异。了解详情。
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
-
FilterSplit
: - TRAINING_FILTER:与此过滤条件匹配的数据项用于训练集。
- VALIDATION_FILTER:与此过滤条件匹配的数据项用于验证集。对于视频数据,该值必须为“-”。
- TEST_FILTER:与此过滤条件匹配的数据项用于测试集。
这些过滤条件可以与 ml_use
标签或应用于数据的任何标签结合使用。详细了解如何使用 ml-use 标签和其他标签来过滤数据。
以下示例展示了如何将 filterSplit
对象与 ml_use
标签结合使用,其中包含验证集:
"filterSplit": { "trainingFilter": "labels.aiplatform.googleapis.com/ml_use=training", "validationFilter": "labels.aiplatform.googleapis.com/ml_use=validation", "testFilter": "labels.aiplatform.googleapis.com/ml_use=test" }