本文档介绍如何设置和运行 TensorBoard 以在 Cloud TPU 上直观呈现和分析程序性能。
概览
TensorBoard 提供了一套工具,旨在直观地呈现 TensorFlow 数据。当用于监控时,TensorBoard 可以帮助识别处理过程中的瓶颈,并提出改进性能的方法。
前提条件
以下说明假设您已在 Cloud Shell 中设置了 Cloud TPU,并已准备好运行训练应用。
如果您没有准备好要训练的模型,则可以开始使用 MNIST 教程。
安装 Cloud TPU 分析器
在运行模型的虚拟机上安装当前版本的 cloud-tpu-profiler 2.3.0
,以创建 capture-tpu-profile
脚本。
运行 TensorBoard
当您运行 ctpu up
创建 Compute Engine 虚拟机和 Cloud TPU 时,该工具会自动为 Cloud Shell 环境设置端口转发,以使 TensorBoard 可用。您需要在新的 Cloud Shell 中运行 Tensorboard,而不是在运行训练应用的 shell 中运行它。
请按照以下步骤在单独的 Cloud Shell 中运行 Tensorboard:
打开第二个 Cloud Shell 以捕获性能剖析数据并启动 TensorBoard。
在第二个 Cloud Shell 中运行
ctpu up
,以在新 shell 上设置一些所需的环境变量:$ ctpu up --name=tpu-name --zone=your-zone
注意,为了
ctpu up
能够正确找到您的 Compute Engine 虚拟机,需要参数--zone
。此操作应该会返回如下所示的输出:
2018/08/02 12:53:12 VM already running. 2018/08/02 12:53:12 TPU already running. About to ssh (with port forwarding enabled -- see docs for details)...
在第二个 Cloud Shell 中,为您的 Cloud Storage 存储分区和模型目录创建环境变量。模型目录变量 (
MODEL_DIR
) 包含在模型训练期间用于存储检查点、摘要和 TensorBoard 输出的 GCP 目录的名称。例如MODEL_DIR=${STORAGE_BUCKET}/model
。(vm)$ export STORAGE_BUCKET=gs://your-bucket-name (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/model-directory
运行模型、捕获监控输出并在 TensorBoard 中显示输出
您可以通过以下两种方法查看 TensorBoard 跟踪记录信息:Static Trace Viewer 或 Streaming Trace Viewer。Static Trace Viewer 针对每个 Cloud TPU 仅限访问 100 万个活动。如果您需要访问更多活动,请使用 Streaming Trace Viewer。两种查看器的设置如下所示。
-
在第一个 Cloud Shell 中,运行 TensorFlow 模型训练应用。例如,如果您使用的是 MNIST 模型,请按照 MNIST 教程中的说明运行
mnist_tpu.py
。 - 选择要使用的 Trace Viewer 类型:Static Trace Viewer 或 Streaming Trace Viewer。
- 执行以下任一过程:
- 在第二个 Cloud Shell 中,运行以下 TensorBoard 命令:
- 在 Cloud Shell 右上角的边栏上,点击网页预览按钮并打开端口 8080 以查看 TensorBoard 输出。TensorBoard 界面在浏览器中将以标签页的形式显示。
- 执行以下任一操作,以捕获性能剖析文件。
- 如果您运行的是 TensorBoard 1.15 或更高版本,请点击 TensorBoard UI 顶部的性能剖析文件链接。接下来,点击 TensorBoard 窗口顶部的捕获性能剖析文件按钮。
- 要通过命令行而不是通过捕获性能剖析文件按钮捕获性能剖析文件,请在第二个 Cloud Shell 中运行以下命令:
(vm)$ capture_tpu_profile --tpu=tpu-name --logdir=${MODEL_DIR}
-
在 Cloud Console 导航边栏中,依次选择 Compute Engine > TPU,复制 Cloud TPU 的内部 IP 地址。这是您在 TensorBoard 命令中为
--master_tpu_unsecure_channel
指定的值。 - 运行以下 TensorBoard 命令:
- 在 Cloud Shell 右上角的边栏上,点击网页预览按钮并打开端口 8080 以查看 TensorBoard 输出。TensorBoard 界面在浏览器中将以标签页的形式显示。
- 要捕获 Streaming Trace Viewer 输出,请在第二个 Cloud Shell 中运行以下
capture_tpu_profile
命令:
静态跟踪记录查看器
(vm)$ tensorboard --logdir=${MODEL_DIR} &
您会看到一个详细菜单,您可以在此菜单中指定捕获 TPU 输出的方式:按 IP 地址或按 TPU 名称。
输入 IP 地址或 TPU 名称以开始捕获跟踪记录数据,这些数据随后将显示在 TensorBoard 中。要详细了解如何更改“性能剖析时长”(Profiling Duration) 和“跟踪记录数据集操作”(Trace dataset ops) 值的默认设置,请参阅 Cloud TPU 工具指南。
流式跟踪记录查看器
对于流式传输跟踪记录查看器,请在运行 TensorBoard 命令之前从 Google Cloud Console 复制您的 TPU 主机的 IP 地址。
(vm)$ tensorboard --logdir=${MODEL_DIR} --master_tpu_unsecure_channel=tpu-ip-address &
(vm)$ capture_tpu_profile --tpu=tpu-name --logdir=${MODEL_DIR}
系统随即将开始捕获性能剖析文件数据并在 TensorBoard 上显示这些数据。