Edge 设备模型快速入门

本快速入门将引导您完成以下过程:

  • 将一组图片复制到 Google Cloud Storage 中。
  • 创建一个列有图片及其标签的 CSV 文件。
  • 使用 AutoML Vision 创建数据集、训练自定义 AutoML Vision Edge 模型,并进行预测。
  • 导出和部署 AutoML Vision Edge 模型。

准备工作

设置项目

  1. 登录您的 Google 帐号。

    如果您还没有 Google 帐号,请注册一个新帐号

  2. 在 Cloud Console 的项目选择器页面上,选择或创建 Cloud 项目。

    转到项目选择器页面

  3. 确保您的 Google Cloud 项目已启用结算功能。 了解如何确认您的项目已启用结算功能

  4. 启用 AutoML and Cloud Storage API。

    启用 API

  5. 安装 gcloud 命令行工具
  6. 按照说明创建服务帐号并为该帐号下载密钥文件
  7. GOOGLE_APPLICATION_CREDENTIALS 环境变量设置为如下路径:指向您在创建服务帐号时所下载的服务帐号密钥文件的路径。
    export GOOGLE_APPLICATION_CREDENTIALS=key-file
  8. PROJECT_ID 环境变量设置为项目 ID
    export PROJECT_ID=your-project-id
    AutoML API 调用和资源名称中包含您的项目 ID。PROJECT_ID 环境变量提供了一种指定此 ID 的便捷方式。
  9. 如果您是项目的所有者,请将您的服务帐号添加到 AutoML Editor IAM 角色,将 service-account-name 替换为新服务帐号的名称。例如 service-account1@myproject.iam.gserviceaccount.com
    gcloud auth login
    gcloud projects add-iam-policy-binding $PROJECT_ID \
       --member="serviceAccount:service-account-name" \
       --role="roles/automl.editor"
    
  10. 否则(如果您不是项目所有者),请让项目所有者将您的用户 ID 和服务帐号添加到 AutoML Editor IAM 角色。

创建 Cloud Storage 存储分区

使用 Cloud Shell(一个连接到 Cloud Console 项目的基于浏览器的 Linux 命令行)创建 Cloud Storage 存储分区:

  1. 打开 Cloud Shell

  2. 创建 Google Cloud Storage 存储分区。存储分区名称必须采用以下格式:project-id-vcm。以下命令将在 us-central1 区域中创建一个名为 project-id-vcm 的存储分区。如需查看可用区域的完整列表,请参阅“存储分区位置”页面

    gsutil mb -p ${PROJECT_ID} -c regional -l us-central1 gs://${PROJECT_ID}-vcm/

  3. 设置 BUCKET 变量。

    export BUCKET=${PROJECT_ID}-vcm

将示例图片复制到存储分区中

接下来,复制此 Tensorflow 博文中使用的花卉数据集。 这些图片存储在公共 Cloud Storage 存储分区中,因此您可以直接将它们从该公共存储分区复制到自己的存储分区。

  1. 在 Cloud Shell 会话中,输入以下内容:

    gsutil -m cp -R gs://cloud-ml-data/img/flower_photos/ gs://${BUCKET}/img/
    

    文件复制操作需要大约 20 分钟才能完成。

创建 CSV 文件

样本数据集包含一个 CSV 文件,其中包含所有图片位置以及每个图片的标签。您将基于这一文件创建您自己的 CSV 文件:

  1. 更新 CSV 文件,使其指向您自己的存储分区中的文件:

    gsutil cat gs://${BUCKET}/img/flower_photos/all_data.csv | sed "s:cloud-ml-data:${BUCKET}:" > all_data.csv
    
  2. 将 CSV 文件复制到您的存储分区中:

    gsutil cp all_data.csv gs://${BUCKET}/csv/
    

创建数据集

访问 AutoML Vision 界面,开始创建数据集并训练模型。

收到提示时,请务必选择用于您的 Cloud Storage 存储分区的项目。

  1. 在 AutoML Vision 页面中,点击新建数据集

    控制台中的“新建数据集”按钮

  2. 为此数据集指定名称(可选)。选择创建数据集以继续数据集创建过程。

    新数据集名称字段

  3. 选择要导入的文件屏幕中,选择选择 Cloud Storage 上的 CSV 文件单选选项。指定 CSV 文件的 Cloud Storage URI。在本快速入门中,CSV 文件的位置为:

    • gs://${PROJECT_ID}-vcm/csv/all_data.csv

    PROJECT_ID 替换为您的特定项目 ID。

    选择文件导入窗口

  4. 点击继续以开始导入图片。导入过程需要几分钟时间。完成后,您将会被引导至下一页面,其中包含为数据集识别出的所有图片(包括已添加标签和未添加标签的图片)的详细信息。

    导入完成后列出的图片

训练模型

  1. 创建数据集并完成相应处理后,选择训练标签页可开始训练模型。

    选择“训练”标签页

  2. 选择开始训练以继续。这将打开一个训练新模型窗口,其中包含训练选项。

  3. 在新模型训练窗口的定义模型部分,更改模型名称(可选)并选择 Edge 模型单选选项。选择继续以转到下一部分。

    定义要训练的模型部分

  4. 模型优化选项部分,接受最佳权衡选项,然后选择继续

  5. 设置节点时预算部分,接受建议的节点预算(4 个节点时)。

    训练 Edge 模型

  6. 选择开始训练以开始训练模型。

    系统将针对您的模型开始训练,训练时间大约为一小时。 训练可能会在达到您选择的节点时之前停止。该服务将在训练完成后或发生任何错误时通过电子邮件通知您。

部署模型

在导出模型之前,必须先部署模型以供使用。

  1. 要部署模型,请选择测试和使用标签页。在标签页中,点击模型名称附近的部署模型选项。

  2. 在接下来的窗口中,指定要部署模型的 1 个节点,然后选择部署以开始模型部署过程。

    选择要部署的节点时数

模型部署完成后,您将收到通知。

导出模型

使用 AutoML Vision Edge 模型的最后一步是导出(优化和下载)和部署(使用)模型。

您可以通过多种方式导出和部署模型,以将这些模型用于在 Edge 设备上进行预测。

在本快速入门中,您将使用 TensorFlow Lite (TF Lite) 作为示例。TF Lite 模型易于使用,并且适用于多种使用场景。

  1. 测试和使用标签页的使用您的模型部分,选择 TF Lite 选项。

    导出 TF Lite 模型

  2. 在显示的导出 TF Lite 软件包窗口中,指定保存导出的 TF Lite 软件包的 Cloud Storage 存储分区位置,然后选择导出。导出过程通常需要几分钟时间。

    导出 TF Lite 模型侧边窗口

在 Google Cloud Storage 目标位置,您将找到一个以时间戳和模型格式命名的文件夹,其中包含以下文件:

  • 一个 tflite 文件 (model.tflite)
  • 一个字典文件 (dict.txt)
  • 一个元数据文件 (tflite_metadata.json)

后续步骤

借助这些文件,您可以按照教程的说明在 Android 设备iOS 设备Raspberry Pi 3Web 上部署模型。

其他模型使用选项

  • 您可以将模型导出为 CoreML (iOS/macOS) 支持的模型。训练结束后,您可以在 测试和使用 标签页中选择 Coral 选项以导出模型,并遵循 CoreML 教程
  • 您可以导出模型以在 Edge TPU 上运行。训练结束后,您可以在 测试和使用 标签页中选择 Coral 选项以导出模型。导出模型后,请按照 Coral 的官方文档介绍如何 在 Edge TPU 上运行推断
  • 您可以将模型导出为 TensorFlow SavedModel,并将其与 Docker 容器搭配使用。训练完成后,您可以通过选择 测试和使用 标签页中的 容器 选项导出模型,并按照边界容器教程了解如何导出到容器。
  • 您可以导出模型以在浏览器中使用或在节点 .js 作为一个 Tensorflow.js 模型训练完成后,您可以通过在测试和使用标签中选择 Tensorflow.js 选项导出模型,然后按照 Edge TensorFlow.js 教程操作。

清理

如果您不再需要自己的自定义模型或数据集,可以将其删除。

为避免产生不必要的 Google Cloud Platform 费用,请使用 GCP Console 删除您不需要的项目。

取消部署模型

模型部署后即会产生费用。

  1. 选择标题栏正下方的测试和使用标签页。
  2. 从模型名称下方的横幅中选择移除部署,以打开取消部署选项窗口。

    取消部署弹出式菜单

  3. 选择移除部署以取消部署该模型。

    模型部署

  4. 模型取消部署完成后,您会收到电子邮件通知。

删除项目(可选)

为避免产生不必要的 Google Cloud Platform 费用,请使用 Cloud Console 删除您不需要的项目。