Subir registros a Vertex AI TensorBoard

Puedes subir registros a tu instancia de Vertex AI TensorBoard que se hayan creado durante un entrenamiento local, un entrenamiento fuera de Vertex AI, un compañero, o que sean registros de ejemplo o se hayan creado con otra instancia de Vertex AI TensorBoard. Los registros se pueden compartir entre varias instancias de Vertex AI TensorBoard.

Vertex AI TensorBoard ofrece la CLI de Google Cloud y el SDK de Vertex AI para Python para subir registros de TensorBoard. Puedes subir registros de cualquier entorno que pueda conectarse a Google Cloud.

SDK de Vertex AI para Python

Monitorización continua

Para la monitorización continua, llama a aiplatform.start_upload_tb_log al principio del entrenamiento. El SDK abre un nuevo hilo para la subida. Este hilo monitoriza si hay datos nuevos en el directorio y los sube a tu experimento de Vertex AI TensorBoard. Cuando se complete el entrenamiento, llama a end_upload_tb_log para finalizar el subproceso del uploader.

Ten en cuenta que, después de llamar a start_upload_tb_log(), tu hilo se mantendrá activo aunque se produzca una excepción. Para asegurarte de que el subproceso se cierra, coloca el código después de start_upload_tb_log() y antes de end_upload_tb_log() en una instrucción try y llama a end_upload_tb_log() en finally.

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: nombre del experimento de TensorBoard al que se subirá.
  • logdir: la ubicación del directorio en el que se buscarán los registros de TensorBoard.
  • tensorboard_id: el ID de instancia de TensorBoard. Si no se define, se usa el valor de tensorboard_id en aiplatform.init.
  • project: . Puedes encontrar el ID de tu proyecto en la página de Google Cloud bienvenida de la consola.
  • location: la ubicación de tu instancia de TensorBoard.
  • experiment_display_name: el nombre visible del experimento.
  • run_name_prefix: si está presente, todos los ejecuciones creados por esta invocación tendrán este valor como prefijo.
  • description: una descripción de cadena que se asignará al experimento.

Inicio de sesión único

Subir registros de TensorBoard

Llama a aiplatform.upload_tb_log para subir los registros de TensorBoard una sola vez. De esta forma, se suben los datos que ya hay en logdir y se devuelve el resultado inmediatamente.

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: nombre del experimento de TensorBoard.
  • logdir: la ubicación del directorio en el que se buscarán los registros de TensorBoard.
  • tensorboard_id: el ID de instancia de TensorBoard. Si no se define, se usa el valor de tensorboard_id en aiplatform.init.
  • project: . Puedes encontrar estos IDs de proyecto en la página de Google Cloud bienvenida de la consola.
  • location: la ubicación de tu instancia de TensorBoard.
  • experiment_display_name: el nombre visible del experimento.
  • run_name_prefix: si está presente, todos los ejecuciones creados por esta invocación tendrán este valor como prefijo.
  • description: una descripción de cadena que se asignará al experimento.
  • verbosity: nivel de detalle de las estadísticas (un número entero). Valores admitidos: 0 (no se imprimen estadísticas de subida). 1: Imprimir estadísticas de subida al subir datos (opción predeterminada).

Subir registros de perfil

Llama a aiplatform.upload_tb_log para subir los registros de perfil de TensorBoard a un experimento.

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: nombre del experimento de TensorBoard.
  • logdir: la ubicación del directorio en el que se buscarán los registros de TensorBoard.
  • project: . Puedes encontrar estos IDs de proyecto en la página Bienvenido de la Google Cloud consola.
  • location: la ubicación de tu instancia de TensorBoard.
  • run_name_prefix: en el caso de los datos de perfil, se trata del prefijo de ejecución. El formato del directorio de LOG_DIR debe coincidir con el siguiente:
    • /RUN_NAME_PREFIX/plugins/profile/YYYY_MM_DD_HH_SS/
  • allowed_plugins: lista de complementos adicionales que se pueden permitir. Para subir datos de perfil, debe incluir "profile"

CLI de gcloud

  1. (Opcional) Crea un entorno virtual específico para instalar la CLI de Python del uploader de Vertex AI TensorBoard.
    python3 -m venv PATH/TO/VIRTUAL/ENVIRONMENT
    source PATH/TO/VIRTUAL/ENVIRONMENT/bin/activate
    • PATH/TO/VIRTUAL/ENVIRONMENT: tu entorno virtual específico.
  2. Instala el paquete Vertex AI TensorBoard a través del SDK de Vertex AI.
    pip install -U pip
    pip install google-cloud-aiplatform[tensorboard]
  3. Subir registros de TensorBoard
    1. Datos de series temporales y blobs
      tb-gcp-uploader --tensorboard_resource_name \
      TENSORBOARD_RESOURCE_NAME \
      --logdir=LOG_DIR \
      --experiment_name=TB_EXPERIMENT_NAME --one_shot=True
    2. Datos de perfil
      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: el nombre de recurso de TensorBoard que se usa para identificar por completo la instancia de Vertex AI TensorBoard.
    • LOG_DIR: ubicación de los registros de eventos que se encuentran en el sistema de archivos local o en Cloud Storage.
    • TB_EXPERIMENT_NAME: el nombre del experimento de TensorBoard (por ejemplo, test-experiment).
    • RUN_NAME_PREFIX: en el caso de los datos de perfil, se trata del prefijo de ejecución. El formato del directorio de LOG_DIR debe coincidir con el siguiente:
      • /RUN_NAME_PREFIX/plugins/profile/YYYY_MM_DD_HH_SS/

La CLI de subida se ejecuta de forma indefinida de forma predeterminada, monitorizando los cambios en LOG_DIR, y subiendo los registros recién añadidos. --one_shot=True inhabilita el comportamiento. Ejecuta tb-gcp-uploader --help para obtener más información.