將記錄上傳至 Vertex AI TensorBoard

您可以將現有記錄上傳至 Vertex AI TensorBoard 執行個體,這些記錄可能是在本機訓練時建立、在 Vertex AI 以外的環境訓練時建立、由同事建立、屬於範例記錄,或是使用其他 Vertex AI TensorBoard 執行個體建立。多個 Vertex AI TensorBoard 執行個體可以共用記錄。

Vertex AI TensorBoard 提供 Google Cloud CLI 和 Python 適用的 Vertex AI SDK,可上傳 TensorBoard 記錄。您可以從任何可連線至 Google Cloud的環境上傳記錄。

Python 適用的 Vertex AI SDK

持續監控

如要持續監控,請在訓練開始時呼叫 aiplatform.start_upload_tb_log。 SDK 會開啟新執行緒來上傳檔案。這個執行緒會監控目錄中的新資料,並將資料上傳至 Vertex AI TensorBoard 實驗。訓練完成後,請呼叫 end_upload_tb_log 結束上傳器執行緒。

請注意,呼叫 start_upload_tb_log() 後,即使擲回例外狀況,執行緒仍會保持運作。為確保執行緒關閉,請在 try 陳述式中,將任何程式碼放在 start_upload_tb_log()end_upload_tb_log() 之間,並在 finally 中呼叫 end_upload_tb_log()

Python

from typing import Optional

from google.cloud import aiplatform


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,
    )

    try:
        print("Insert your code here")
    finally:
        aiplatform.end_upload_tb_log()

  • tensorboard_experiment_name:要上傳至 TensorBoard 的實驗名稱。
  • logdir:檢查 TensorBoard 記錄的目錄位置。
  • tensorboard_idTensorBoard 執行個體 ID。 如未設定,系統會使用 aiplatform.init 中的 tensorboard_id
  • project:。您可以在 Google Cloud 控制台歡迎頁面中找到專案 ID。
  • location:TensorBoard 執行個體所在位置。
  • experiment_display_name:實驗的顯示名稱。
  • run_name_prefix:如果存在,這個值會做為前置字元,加到這次呼叫建立的所有執行作業名稱中。
  • description:要指派給實驗的字串說明。

一次性登入

上傳 TensorBoard 記錄

呼叫 aiplatform.upload_tb_log,一次性上傳 TensorBoard 記錄。 這會上傳 logdir 中的現有資料,然後立即傳回。

Python

from typing import Optional

from google.cloud import aiplatform


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 實驗的名稱。
  • logdir:檢查 TensorBoard 記錄的目錄位置。
  • tensorboard_idTensorBoard 執行個體 ID。 如未設定,系統會使用 aiplatform.init 中的 tensorboard_id
  • project:。您可以在 Google Cloud 控制台歡迎頁面中找到這些專案 ID。
  • location:TensorBoard 執行個體所在位置。
  • experiment_display_name:實驗的顯示名稱。
  • run_name_prefix:如果存在,這個值會做為前置字元,加到這次呼叫建立的所有執行作業名稱中。
  • description:要指派給實驗的字串說明。
  • verbosity:統計資料詳細程度,為整數。支援的值:0 - 不會列印上傳統計資料。1 - Print upload statistics while uploading data (default)。

上傳設定檔記錄

呼叫 aiplatform.upload_tb_log,將 TensorBoard 設定檔記錄上傳至實驗。

Python

from typing import FrozenSet

from google.cloud import aiplatform


def upload_tensorboard_profile_logs_to_experiment_sample(
    experiment_name: str,
    logdir: str,
    project: str,
    location: str,
    run_name_prefix: str,
    allowed_plugins: FrozenSet[str] = ["profile"],
) -> None:

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

    # one time upload
    aiplatform.upload_tb_log(
        tensorboard_experiment_name=experiment_name,
        logdir=logdir,
        run_name_prefix=run_name_prefix,
        allowed_plugins=allowed_plugins,
    )

  • experiment_name:TensorBoard 實驗的名稱。
  • logdir:檢查 TensorBoard 記錄的目錄位置。
  • project:。您可以在 Google Cloud 控制台歡迎頁面中找到這些專案 ID。
  • location:TensorBoard 執行個體所在位置。
  • run_name_prefix:如果是設定檔資料,這是執行前置字元。LOG_DIR 內的目錄格式應符合下列條件:
    • /RUN_NAME_PREFIX/plugins/profile/YYYY_MM_DD_HH_SS/
  • allowed_plugins:允許使用的外掛程式清單。如要上傳設定檔資料,請一併上傳 "profile"

gcloud CLI

  1. (選用) 建立專屬虛擬環境,安裝 Vertex AI TensorBoard 上傳工具 Python CLI。
    python3 -m venv PATH/TO/VIRTUAL/ENVIRONMENT
    source PATH/TO/VIRTUAL/ENVIRONMENT/bin/activate
    • PATH/TO/VIRTUAL/ENVIRONMENT:專屬虛擬環境。
  2. 透過 Vertex AI SDK 安裝 Vertex AI TensorBoard 套件。
    pip install -U pip
    pip install google-cloud-aiplatform[tensorboard]
  3. 上傳 TensorBoard 記錄
    1. 時間序列和 Blob 資料
      tb-gcp-uploader --tensorboard_resource_name \
      TENSORBOARD_RESOURCE_NAME \
      --logdir=LOG_DIR \
      --experiment_name=TB_EXPERIMENT_NAME --one_shot=True
    2. 設定檔資料
      tb-gcp-uploader \
      --tensorboard_resource_name TENSORBOARD_RESOURCE_NAME \
      --logdir=LOG_DIR --experiment_name=TB_EXPERIMENT_NAME \
      --allowed_plugins="profile" --run_name_prefix=RUN_NAME_PREFIX \
      --one_shot=True
    • TENSORBOARD_RESOURCE_NAME:用於完整識別 Vertex AI TensorBoard 執行個體的 TensorBoard 資源名稱
    • LOG_DIR:事件記錄檔的位置,位於本機檔案系統或 Cloud Storage
    • TB_EXPERIMENT_NAME:TensorBoard 實驗的名稱,例如 test-experiment
    • RUN_NAME_PREFIX:如果是設定檔資料,這是執行前置字元。LOG_DIR 內的目錄格式應符合下列條件:
      • /RUN_NAME_PREFIX/plugins/profile/YYYY_MM_DD_HH_SS/

上傳工具 CLI 預設會無限期執行,監控 LOG_DIR 中的變更,並上傳新加入的記錄。--one_shot=True 會停用這項行為。如要瞭解詳情,請執行 tb-gcp-uploader --help