快速入门

概览:本快速入门简要介绍如何使用 Cloud TPU。在本快速入门中,您将使用 Cloud TPU 来运行 MNIST,这是一种手写数字的规范数据集,通常用于测试新的机器学习方法。

本主题适合 Cloud TPU 新用户阅读学习。如需深入探索 Cloud TPU,请尝试运行我们的 Colab。您还可以在教程部分中查看许多相关示例。

准备工作

在开始学习本教程之前,请检查您的 Google Cloud 项目是否已正确设置。如需了解详情,请参阅设置帐号和 Cloud TPU 项目

本教程使用 Google Cloud 的以下收费组件:

  • Compute Engine
  • Cloud TPU
  • Cloud Storage

请使用价格计算器根据您的预计使用情况来估算费用。 Google Cloud 新用户可能有资格申请免费试用

本部分提供有关如何设置 Cloud Storage 存储和 Compute Engine 虚拟机的信息。

  1. 打开一个 Cloud Shell 窗口。

    打开 Cloud Shell

  2. 为项目 ID 创建一个变量。

    export PROJECT_ID=project-id
    
  3. 配置 gcloud 命令行工具,以使用要在其中创建 Cloud TPU 的项目。

    gcloud config set project $PROJECT_ID
    
  4. 使用以下命令创建 Cloud Storage 存储分区:

    gsutil mb -p ${PROJECT_ID} -c standard -l us-central1 -b on gs://bucket-name
    

    此 Cloud Storage 存储分区存储您用于训练模型的数据和训练结果。

  5. 使用 ctpu up 命令启动 Compute Engine 虚拟机和 Cloud TPU。

    $ ctpu up --zone=us-central1-b  \
    --tf-version=2.3.1 \
    --name=tpu-quickstart
    
  6. 此时会显示您指定的配置。输入 y 批准或输入 n 取消。

  7. ctpu up 命令执行完毕后,验证 shell 提示符已从 username@project 更改为 username@tpuname。此变化表明您现已登录 Compute Engine 虚拟机。

    如果未连接到 Compute Engine 实例,请通过运行以下命令进行连接:

    gcloud compute ssh tpu-quickstart --zone=us-central1-b
    

    在您继续按照这些说明操作时,请在虚拟机会话窗口中运行以 (vm)$ 开头的每个命令。

运行 MNIST TPU 模型

MNIST TPU 模型的源代码可在 GitHub 上找到。

设置环境变量

创建以下变量。将 bucket-name 替换为您的存储分区名称。

(vm)$ export STORAGE_BUCKET=gs://bucket-name
(vm)$ export TPU_NAME=tpu-quickstart
(vm)$ export MODEL_DIR=$STORAGE_BUCKET/mnist
(vm)$ DATA_DIR=$STORAGE_BUCKET/data
(vm)$ export PYTHONPATH="$PYTHONPATH:/usr/share/models"

在 Cloud TPU 上训练模型

  1. 切换至存储模型的目录。

    (vm)$ cd /usr/share/models/official/vision/image_classification
    
  2. 运行 MNIST 训练脚本:

    (vm)$ python3 mnist_main.py \
      --tpu=$TPU_NAME \
      --model_dir=$MODEL_DIR \
      --data_dir=$DATA_DIR \
      --train_epochs=10 \
      --distribution_strategy=tpu \
      --download
    

训练脚本在 v3-8 Cloud TPU 上运行的时间不到 5 分钟,并显示类似以下内容的输出:

I1203 03:43:15.936553 140096948798912 mnist_main.py:165]
Run stats: {'loss': 0.11427700750786683, 'training_accuracy_top_1': 0.9657697677612305,
'accuracy_top_1': 0.9730902910232544, 'eval_loss': 0.08600160645114051}

清理

为避免系统因本快速入门中使用的资源向您的 Google Cloud 帐号收取费用,请按照以下步骤操作。

  1. 断开与 Compute Engine 实例的连接(如果您尚未这样做):

    (vm)$ exit
    

    您的提示符现在应为 user@projectname,表明您位于 Cloud Shell 中。

  2. 在 Cloud Shell 中,使用您在设置 Compute Engine 虚拟机和 Cloud TPU 时使用的 --zone 标志运行 ctpu delete。这会同时删除您的虚拟机和 Cloud TPU。

    $ ctpu delete --zone=us-central1-b \
      --name=tpu-quickstart
    
  3. 运行 ctpu status 以确保未分配任何实例,避免产生不必要的 TPU 使用费。删除操作可能需要几分钟时间才能完成。 如下所示的响应表明不再有已分配的实例:

    $ ctpu status --zone=us-central1-b
    
       2018/04/28 16:16:23 WARNING: Setting zone to "us-central1-b"
       No instances currently exist.
           Compute Engine VM:     --
           Cloud TPU:             --
    
  4. 如下所示运行 gsutil,将 bucket-name 替换为您为本教程创建的 Cloud Storage 存储分区的名称:

    $ gsutil rm -r gs://bucket-name
    

后续步骤

本快速入门简要介绍了如何使用 Cloud TPU。此时您已具备一些基础知识,接下来,您可以执行以下操作:

  • 详细了解 Cloud TPU
  • 为您自己的应用设置 Cloud TPU

了解详情

使用 Keras 的 MNIST 在 Colab 环境中运行 MNIST 模型以试用 Cloud TPU。
产品概览 了解 Cloud TPU 的主要功能和优势。
Cloud Tensor Processing Unit(云张量处理单元) 详细了解 Cloud TPU 及其功能和优势。
价格 查看 Cloud TPU 的价格信息。

设置

选择 TPU 服务 了解使用 Cloud TPU 的不同选项,例如 Compute EngineGoogle Kubernetes Engine、或 AI Platform
TPU 类型和地区 了解各个地区中可用的 TPU 类型。
TPU 版本 了解不同的 TPU 版本以及如何为您的应用选择合适的版本。