Hello 自定义训练:训练自定义图片分类模型

本页面介绍如何在 Vertex AI 上运行 TensorFlow Keras 训练应用。该特定模型会训练可按类型对花卉进行分类的图片分类模型。

本文档是“Hello 自定义训练”教程的一部分,该教程逐步演示如何使用 Vertex AI 训练图片分类模型以及使用模型执行预测。在本教程中,您将使用 Vertex AI 的自定义训练功能在 Vertex AI 的预构建容器环境中运行 TensorFlow Keras 训练应用。此自定义训练作业将训练一个机器学习模型,以根据花卉类型对花卉图片进行分类。训练机器学习模型后,本教程将介绍如何创建端点,并从该端点向简单的 Web 应用提供预测结果。


如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示

操作演示


本教程包含多个页面:

  1. 设置项目和环境

  2. 训练自定义图片分类模型。

  3. 提供自定义图片分类模型的预测结果

  4. 清理项目

每个页面均假定您已经按照本教程中之前页面的说明操作。

本文档的其余部分假定您使用的是您在本教程的第一页中创建的 Cloud Shell 环境。如果原始的 Cloud Shell 会话不再处于打开状态,您可以执行以下操作来返回该环境:

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

  2. 在 Cloud Shell 会话中,运行以下命令:

    cd hello-custom-sample
    

运行自定义训练流水线

本部分介绍如何使用您上传到 Cloud Storage 的训练软件包来运行 Vertex AI 自定义训练流水线。

  1. 在 Google Cloud 控制台的 Vertex AI 部分中,转到训练流水线页面。

    转到“训练流水线”

  2. 点击 创建以打开训练新模型窗格。

  3. 选择训练方法步骤中,执行以下操作:

    1. 数据集下拉列表中,选择无代管式数据集。此特定训练应用从 TensorFlow 数据集库(而非托管 Vertex AI 数据集)加载数据。

    2. 确保选择自定义训练(高级)

    点击继续

  4. 模型详细信息步骤的名称字段中,输入 hello_custom。点击继续

  5. 训练容器步骤中,为 Vertex AI 提供使用您上传到 Cloud Storage 的训练软件包所需的信息:

    1. 选择预构建的容器

    2. 模型框架下拉列表中,选择 TensorFlow

    3. 模型框架版本下拉列表中,选择 2.3

    4. 软件包位置字段中,输入 cloud-samples-data/ai-platform/hello-custom/hello-custom-sample-v1.tar.gz

    5. Python 模块字段中,输入 trainer.tasktrainer 是 tarball 压缩文件中的 Python 软件包的名称,task.py 包含您的训练代码。因此,trainer.task 是您希望 Vertex AI 运行的模块的名称。

    6. 模型输出目录字段中,点击浏览。在选择文件夹窗格中执行以下操作:

      1. 导航到您的 Cloud Storage 存储分区。

      2. 点击创建新文件夹

      3. 将新文件夹命名为 output。 然后,点击创建

      4. 点击选择

      确认该字段的值为 gs://BUCKET_NAME/output,其中 BUCKET_NAME 是 Cloud Storage 存储分区的名称。

      此值会在 baseOutputDirectory API 字段中传递给 Vertex AI,该字段设置训练应用在其运行时可以访问的几个环境变量。

      例如,当您将此字段设置为 gs://BUCKET_NAME/output 时,Vertex AI 会将 AIP_MODEL_DIR 环境变量设置为 gs://BUCKET_NAME/output/model。在训练结束时,Vertex AI 会使用 AIP_MODEL_DIR 目录中的任何工件来创建模型资源。

      详细了解此字段设置的环境变量

    点击继续

  6. 在可选的超参数步骤中,确保清除启用超参数调节复选框。本教程不使用超参数调节。点击继续

  7. 计算和价格步骤中,为自定义训练作业分配资源:

    1. 地区下拉列表中,选择 us-central1(爱荷华州)

    2. 机器类型下拉列表中,从标准部分选择 n1-standard-4

    请勿为本教程添加任何加速器或工作器池。点击继续

  8. 预测容器步骤中,为 Vertex AI 提供执行预测所需的信息:

    1. 选择预构建的容器

    2. 预构建容器设置部分,执行以下操作:

      1. 模型框架下拉列表中,选择 TensorFlow

      2. 模型框架版本下拉列表中,选择 2.3

      3. 加速器类型下拉列表中,选择

      4. 确认模型目录字段的值为 gs://BUCKET_NAME/output,其中 BUCKET_NAME 是 Cloud Storage 存储分区的名称。这与您在上一步中提供的模型输出目录值匹配。

    3. 预测架构部分中的字段留空。

  9. 点击开始训练以启动自定义训练流水线。

您现在可以在训练页面上查看新的训练流水线(名为 hello_custom)。您可能需要刷新页面。此训练流水线执行两个主要任务:

  1. 训练流水线会创建一个自定义作业资源(名为 hello_custom-custom-job)。片刻之后,您可以在训练部分的自定义作业页面上查看此资源:

    打开“自定义作业”

    自定义作业使用您在此部分中指定的计算资源运行训练应用。

  2. 自定义作业完成后,训练流水线会在 Cloud Storage 存储分区的 output/model/ 目录中找到您的训练应用创建的工件。其使用这些工件来创建模型资源。

监控训练

如需查看训练日志,请执行以下操作:

  1. 在 Google Cloud 控制台的 Vertex AI 部分中,转到自定义作业页面。

    转到“自定义作业”

  2. 如需查看您刚刚创建的 CustomJob 的详细信息,请点击列表中的 hello_custom-custom-job

  3. 在作业详情页面上,点击查看日志

查看经过训练的模型

自定义训练流水线完成后,您可以在 Google Cloud 控制台的 Vertex AI 部分的模型页面上找到经过训练的模型。

转到“模型”

该模型的名称为 hello_custom

后续步骤

按照本教程的下一页,处理来自经过训练的机器学习模型的预测。