概览:本快速入门简要介绍如何使用 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 虚拟机的信息。
打开一个 Cloud Shell 窗口。
为项目 ID 创建一个变量。
export PROJECT_ID=project-id
配置
gcloud
命令行工具,以使用要在其中创建 Cloud TPU 的项目。gcloud config set project $PROJECT_ID
当您第一次在新的 Cloud Shell 虚拟机中运行此命令时,系统会显示
Authorize Cloud Shell
页面。点击页面底部的Authorize
以允许gcloud
使用您的凭据进行 GCP API 调用。使用以下命令创建 Cloud Storage 存储分区:
gsutil mb -p ${PROJECT_ID} -c standard -l us-central1 -b on gs://bucket-name
此 Cloud Storage 存储分区存储您用于训练模型的数据和训练结果。
使用
ctpu up
命令启动 Compute Engine 虚拟机和 Cloud TPU。$ ctpu up --project=${PROJECT_ID} \ --zone=us-central1-b \ --tf-version=2.3.1 \ --name=tpu-quickstart
此时会显示您指定的配置。输入 y 批准或输入 n 取消。
当
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)$ export DATA_DIR=$STORAGE_BUCKET/data (vm)$ export PYTHONPATH="$PYTHONPATH:/usr/share/models"
在 Cloud TPU 上训练模型
切换至存储模型的目录。
(vm)$ cd /usr/share/models/official/vision/image_classification
运行 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 帐号收取费用,请按照以下步骤操作。
断开与 Compute Engine 实例的连接(如果您尚未这样做):
(vm)$ exit
您的提示符现在应为
user@projectname
,表明您位于 Cloud Shell 中。在 Cloud Shell 中,使用您在设置 Compute Engine 虚拟机和 Cloud TPU 时使用的
--zone
标志运行ctpu delete
。这会同时删除您的虚拟机和 Cloud TPU。$ ctpu delete --project=${PROJECT_ID} \ --zone=us-central1-b \ --name=tpu-quickstart
运行
ctpu status
以确保未分配任何实例,避免产生不必要的 TPU 使用费。删除操作可能需要几分钟时间才能完成。 如下所示的响应表明不再有已分配的实例:$ ctpu status --project=${PROJECT_ID} \ --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: --
如下所示运行
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 Engine、Google Kubernetes Engine、或 AI Platform。 |
TPU 类型和地区 | 了解各个地区中可用的 TPU 类型。 |
TPU 版本 | 了解不同的 TPU 版本以及如何为您的应用选择合适的版本。 |