设置 TensorBoard

本文档介绍如何设置和运行 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:

  1. 打开第二个 Cloud Shell 以捕获性能剖析数据并启动 TensorBoard。

  2. 在第二个 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)...
    

  3. 在第二个 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。两种查看器的设置如下所示。

  1. 在第一个 Cloud Shell 中,运行 TensorFlow 模型训练应用。例如,如果您使用的是 MNIST 模型,请按照 MNIST 教程中的说明运行 mnist_tpu.py
  2. 选择要使用的 Trace Viewer 类型:Static Trace ViewerStreaming Trace Viewer
  3. 执行以下任一过程:
  4. 静态跟踪记录查看器

    1. 在第二个 Cloud Shell 中,运行以下 TensorBoard 命令:
    2. (vm)$ tensorboard --logdir=${MODEL_DIR} &
      
    3. 在 Cloud Shell 右上角的边栏上,点击网页预览按钮并打开端口 8080 以查看 TensorBoard 输出。TensorBoard 界面在浏览器中将以标签页的形式显示。
    4. 执行以下任一操作,以捕获性能剖析文件。
    • 如果您运行的是 TensorBoard 1.15 或更高版本,请点击 TensorBoard UI 顶部的性能剖析文件链接。接下来,点击 TensorBoard 窗口顶部的捕获性能剖析文件按钮。
    • 您会看到一个详细菜单,您可以在此菜单中指定捕获 TPU 输出的方式:按 IP 地址或按 TPU 名称。

      输入 IP 地址或 TPU 名称以开始捕获跟踪记录数据,这些数据随后将显示在 TensorBoard 中。要详细了解如何更改“性能剖析时长”(Profiling Duration) 和“跟踪记录数据集操作”(Trace dataset ops) 值的默认设置,请参阅 Cloud TPU 工具指南

    • 要通过命令行而不是通过捕获性能剖析文件按钮捕获性能剖析文件,请在第二个 Cloud Shell 中运行以下命令:
      (vm)$ capture_tpu_profile --tpu=tpu-name --logdir=${MODEL_DIR}
      

    流式跟踪记录查看器

    对于流式传输跟踪记录查看器,请在运行 TensorBoard 命令之前从 Google Cloud Console 复制您的 TPU 主机的 IP 地址。

    1. 在 Cloud Console 导航边栏中,依次选择 Compute Engine > TPU,复制 Cloud TPU 的内部 IP 地址。这是您在 TensorBoard 命令中为 --master_tpu_unsecure_channel 指定的值。
    2. 运行以下 TensorBoard 命令:
    3. (vm)$ tensorboard --logdir=${MODEL_DIR} --master_tpu_unsecure_channel=tpu-ip-address &
      
    4. 在 Cloud Shell 右上角的边栏上,点击网页预览按钮并打开端口 8080 以查看 TensorBoard 输出。TensorBoard 界面在浏览器中将以标签页的形式显示。
    5. 要捕获 Streaming Trace Viewer 输出,请在第二个 Cloud Shell 中运行以下 capture_tpu_profile 命令:
    6. (vm)$ capture_tpu_profile --tpu=tpu-name --logdir=${MODEL_DIR}
      

      系统随即将开始捕获性能剖析文件数据并在 TensorBoard 上显示这些数据。

后续步骤