Vertex AI TensorBoard 入门

必须先存在 Vertex AI TensorBoard 实例(该实例是存储 Vertex AI TensorBoard 实验的区域化资源),然后才能直观呈现实验。您可以在一个项目中创建多个实例(例如,在实验 SDK 中手动创建的实例或默认创建的实例)。

创建 Vertex AI TensorBoard 实例

Python 版 Vertex AI SDK

使用 Python 版 Vertex AI SDK 创建 Vertex AI TensorBoard 实例。

Python 版 Vertex AI SDK

def create_tensorboard_sample(
    project: str,
    location: str,
    display_name: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    tensorboard = aiplatform.Tensorboard.create(
        display_name=display_name,
        project=project,
        location=location,
    )

    aiplatform.init(
        project=project,
        location=location,
        experiment_tensorboard=tensorboard
    )

    return tensorboard

  • project:您的项目 ID。您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • display_name:为您的 TensorBoard 实例提供名称。
  • location:请参阅可用位置列表。如果要创建 TensorBoard 实例,请务必使用支持 TensorBoard 的区域。

Google Cloud 控制台

请按照以下步骤使用 Google Cloud 控制台创建 Vertex AI TensorBoard 实例。

  1. 如果您刚开始接触 Vertex AI 或要启动新项目,请设置项目和开发环境
  2. 在 Google Cloud 控制台的 Vertex AI 部分,前往实验页面。

    前往“实验”页面
  3. 转到 TensorBoard 实例标签页。
  4. 点击页面顶部的创建
  5. 区域下拉列表中选择一个区域。
  6. 添加说明。 (可选)
  7. 点击创建以创建 TensorBoard 实例

创建 TensorBoard 实例

gcloud CLI

使用 Google Cloud CLI 创建 Vertex AI TensorBoard 实例。
  1. 安装 gcloud CLI
  2. 通过运行 gcloud init 初始化 Google Cloud CLI。
  3. 如需确认安装,请探索以下命令。
     gcloud ai tensorboards --help 

    这些命令包括 createdescribelistdelete。如果需要,您可以先按照这些步骤设置项目和区域的默认值,然后再继续操作。
    现在,您可以创建 Vertex AI TensorBoard 实例了。
  4. 向 gcloud CLI 进行身份验证。
    gcloud auth application-default login
  5. 通过提供项目名称和显示名来创建 Vertex AI TensorBoard 实例。第一次在项目中执行此步骤时,可能需要几分钟时间才能完成。记下将在以下命令结束时输出的 Vertex AI TensorBoard 实例名称(例如 projects/123/locations/us-central1/tensorboards/456)。您将在后续步骤中用到此名称。
    gcloud ai tensorboards create --display-name DISPLAY_NAME \
         --project PROJECT_NAME
       

    请替换以下内容:
    • PROJECT_NAME:要在其中创建 TensorBoard 实例的项目
    • DISPLAY_NAME:TensorBoard 实例的描述性名称


TensorBoard 日志

Vertex AI TensorBoard 提供 Google Cloud CLI 和 Python 版 Vertex AI SDK,用于上传 TensorBoard 日志。您可以从任何能够连接到 Google Cloud 的环境上传日志。

创建虚拟环境(可选)

可选但建议执行的第 1 步:

  1. 创建一个专用的虚拟环境来安装 Vertex AI TensorBoard Uploader Python CLI。
python3 -m venv PATH/TO/VIRTUAL/ENVIRONMENT
source PATH/TO/VIRTUAL/ENVIRONMENT/bin/activate
  1. PATH/TO/VIRTUAL/ENVIRONMENT 替换为专用虚拟环境的路径。

通过 Vertex AI SDK 安装 Vertex AI TensorBoard 软件包

Uploader 需要安装最新版本的 pip 才能正确安装。

pip install -U pip
pip install google-cloud-aiplatform[tensorboard]

上传 Vertex AI TensorBoard 日志

Python 版 Vertex AI SDK

持续监控

在训练开始时调用 aiplatform.start_upload_tb_log。SDK 会打开一个新线程以进行上传。当目录中有新数据时,此线程会持续监控。 训练完成后,调用终止上传者线程的 end_upload_tb_log。 如果未调用 end_upload_tb_log,超时计划会关闭线程。

Python 版 Vertex AI SDK

def upload_tensorboard_log_continuously_sample(
    tensorboard_experiment_name: str,
    logdir: str,
    tensorboard_id: str,
    project: str,
    location: str,
    experiment_display_name: Optional[str] = None,
    run_name_prefix: Optional[str] = None,
    description: Optional[str] = None,
) -> None:

    aiplatform.init(project=project, location=location)

    # Continuous monitoring
    aiplatform.start_upload_tb_log(
        tensorboard_id=tensorboard_id,
        tensorboard_experiment_name=tensorboard_experiment_name,
        logdir=logdir,
        experiment_display_name=experiment_display_name,
        run_name_prefix=run_name_prefix,
        description=description,
    )
    aiplatform.end_upload_tb_log()

  • tensorboard_experiment_name:此实验的名称。
  • logdir:TensorBoard 日志的位置,位于本地文件系统或 Cloud Storage 中。
  • tensorboard_id
    • 如需查找 tensorboard_id,请转到 Google Cloud 控制台的 Vertex AI 部分中的“实验”页面,然后选择 TensorBoard 实例标签页。
      转到“实验”页面

      创建 TensorBoard 实例
    如果未设置,则使用 aiplatform.init 中的 tensorboard_id
  • project:您的项目 ID。您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • location:请参阅可用位置列表
  • experiment_display_name:实验的显示名称。
  • run_name_prefix:如果存在,则通过此调用创建的所有运行都将以此值为前缀。
  • description:分配给实验的字符串说明。

一次性日志记录

调用 aiplatform.upload_tb_log 以执行一次性上传 TensorBoard 日志。它仅上传 logdir 中的现有数据,然后立即返回。

Python 版 Vertex AI SDK

def upload_tensorboard_log_one_time_sample(
    tensorboard_experiment_name: str,
    logdir: str,
    tensorboard_id: str,
    project: str,
    location: str,
    experiment_display_name: Optional[str] = None,
    run_name_prefix: Optional[str] = None,
    description: Optional[str] = None,
    verbosity: Optional[int] = 1,
) -> None:

    aiplatform.init(project=project, location=location)

    # one time upload
    aiplatform.upload_tb_log(
        tensorboard_id=tensorboard_id,
        tensorboard_experiment_name=tensorboard_experiment_name,
        logdir=logdir,
        experiment_display_name=experiment_display_name,
        run_name_prefix=run_name_prefix,
        description=description,
    )

  • tensorboard_experiment_name:这是此 TensorBoard 实验的名称。projects/{project}/locations/{location}/tensorboards/{tensorboard_id}
  • logdir:TensorBoard 日志的位置,位于本地文件系统或 Cloud Storage 中。
  • tensorboard_id
    • 如需查找 tensorboard_id,请转到 Google Cloud 控制台的 Vertex AI 部分中的“实验”页面,然后选择 TensorBoard 实例标签页。
      转到“实验”页面

      创建 TensorBoard 实例
    如果未设置,则使用 aiplatform.init 中的 tensorboard_id
  • project:您的项目 ID。您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • location:请参阅可用位置列表
  • experiment_display_name:实验的显示名称。
  • run_name_prefix:如果存在,则通过此调用创建的所有运行都将以此值为前缀。
  • description:分配给实验的字符串说明。
  • verbosity:统计信息的详细程度,一个整数。支持的值:0 - 不输出任何上传统计信息。1 - 上传数据时输出上传统计信息(默认)。

gcloud CLI


tb-gcp-uploader --tensorboard_resource_name \
  TENSORBOARD_INSTANCE_NAME \
  --logdir=LOG_DIR \
  --experiment_name=TB_EXPERIMENT_NAME --one_shot=True
  • TENSORBOARD_INSTANCE_NAME:可通过以下两种方式标识实例名称:
    • 您之前使用的 gcloud ai tensorboards create 命令末尾会输出全名。
    • 如果 TensorBoard 实例是使用 Google Cloud 控制台创建的,则 TENSORBOARD_INSTANCE_NAMEprojects/PROJECT_ID_OR_NUMBER/locations/REGION/tensorboards/TENSORBOARD_INSTANCE_ID
      • 如需查找 TENSORBOARD_INSTANCE_ID,请转到 Google Cloud 控制台的 Vertex AI 部分中的“实验”页面,然后选择 TensorBoard 实例标签页。
        转到“实验”页面

        创建 TensorBoard 实例
  • LOG_DIR:事件日志的位置,位于本地文件系统或 Cloud Storage 中
  • TB_EXPERIMENT_NAME:实验的名称,例如 test-experiment。实验名称在 TensorBoard 资源中应该是唯一的

默认情况下,Uploader CLI 会无限期运行,监控 LOG_DIR 中的更改,并上传新添加的日志。--one_shot=True 会停用此行为。如需了解详情,请运行 tb-gcp-uploader --help

查看 Vertex AI TensorBoard 实验

您可以从 Google Cloud 控制台访问 Vertex AI TensorBoard 实验,或者,在使用 Vertex AI TensorBoard 软件包时,Google Cloud CLI 会输出 Vertex AI TensorBoard 实例的链接。

使用 Google Cloud 控制台访问 Vertex AI TensorBoard

您可以通过以下步骤从 Google Cloud 控制台访问 Vertex AI TensorBoard 实验。

  1. 在 Google Cloud 控制台的 Vertex AI 部分中,转到实验页面。

    转到“实验”页面

  2. 在“实验”标签页中,滚动或过滤实验列表以找到实验。

  3. 如需打开 Vertex AI TensorBoard Web 应用页面,请点击实验旁边的打开 TensorBoard

查看 TensorBoard

此时将显示 Vertex AI TensorBoard Web 应用视图。

TensorBoard 视图出现

您可以与拥有权限的其他人共享此视图的链接。

如果您将 Vertex AI TensorBoard 与自定义训练搭配使用,请从 Experiments Tracking 页面中选择实验。页面顶部会显示一个 Open TensorBoard 按钮。同样,如果您在 Vertex AI Pipelines 流水线中使用 Vertex AI TensorBoard,当您选择关联的组件时,会显示打开 TensorBoard 按钮。

此外,使用 Vertex AI TensorBoard 软件包时,Google Cloud CLI 会在日志的前几行中输出 Vertex AI TensorBoard 实例的链接,您可以在其中查看实验。例如:View your TensorBoard at https://us-central1.tensorboard.googleusercontent.com/experiment/projects+123+locations+us-central1+tensorboards+4567+experiments+my-experiment-name

笔记本

后续步骤