Sube registros a Vertex AI TensorBoard

Puedes subir registros existentes a tu instancia de Vertex AI TensorBoard que se crearon mediante un entrenamiento local, un entrenamiento fuera de Vertex AI, que creó un colega, que son registros de ejemplo o que se crearon con una instancia de Vertex AI TensorBoard diferente. Los registros se pueden compartir entre varias instancias de Vertex AI TensorBoard.

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

SDK de Vertex AI para Python

Supervisión continua

Para la supervisión continua, llama a aiplatform.start_upload_tb_log al comienzo del entrenamiento. El SDK abre un nuevo subproceso para la carga. Este subproceso supervisa 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 cargador.

Ten en cuenta que, después de llamar a start_upload_tb_log(), tu subproceso se mantendrá activo, incluso si se genera una excepción. Para asegurarte de que el subproceso se cierre, coloca cualquier código después de start_upload_tb_log() y antes de end_upload_tb_log() en una sentencia try, y llama a end_upload_tb_log() en finally.

SDK de Vertex AI para 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: Es el nombre del experimento de TensorBoard al que se subirán los datos.
  • logdir: Es la ubicación del directorio para verificar los registros de TensorBoard.
  • tensorboard_id: El ID de la instancia de TensorBoard. Si no se establece, se usa el tensorboard_id en aiplatform.init.
  • project: El ID del proyecto. Puedes encontrar el ID del proyecto en la página de bienvenida de la consola de Google Cloud.
  • location: La ubicación en la que se encuentra tu instancia de TensorBoard.
  • experiment_display_name: Es el nombre visible del experimento.
  • run_name_prefix: Si está presente, todas las ejecuciones creadas por esta invocación tendrán su nombre con este valor como prefijo.
  • description: Una descripción de cadena para asignar al experimento.

Registro único

Sube registros de TensorBoard

Llama a aiplatform.upload_tb_log para realizar una carga única de los registros de TensorBoard. Esto sube los datos existentes en el directorio de registro y, luego, los muestra de inmediato.

SDK de Vertex AI para 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: Es el nombre del experimento de TensorBoard.
  • logdir: Es la ubicación del directorio para verificar los registros de TensorBoard.
  • tensorboard_id: El ID de la instancia de TensorBoard. Si no se establece, se usa el tensorboard_id en aiplatform.init.
  • project: El ID del proyecto. Puedes encontrar estos IDs en la página de bienvenida de la consola de Google Cloud.
  • location: La ubicación en la que se encuentra tu instancia de TensorBoard.
  • experiment_display_name: Es el nombre visible del experimento.
  • run_name_prefix: Si está presente, todas las ejecuciones creadas por esta invocación tendrán su nombre con este valor como prefijo.
  • description: Una descripción de cadena para asignar al experimento.
  • verbosity: El nivel de verbosidad de las estadísticas, un número entero. Valores admitidos: 0 - No se imprimen estadísticas de carga. 1 - Imprime estadísticas de carga mientras se suben datos (predeterminado).

Sube registros de perfil

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

SDK de Vertex AI para 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: Es el nombre del experimento de TensorBoard.
  • logdir: Es la ubicación del directorio para verificar los registros de TensorBoard.
  • project: El ID del proyecto. Puedes encontrar estos IDs del proyecto en la página de bienvenida de la consola de Google Cloud.
  • location: La ubicación en la que se encuentra tu instancia de TensorBoard.
  • run_name_prefix: Para los datos de perfil, este es el prefijo de ejecución. El formato del directorio dentro de LOG_DIR debe coincidir con lo siguiente:
    • /RUN_NAME_PREFIX/plugins/profile/YYYY_MM_DD_HH_SS/
  • allowed_plugins: Es una lista de complementos adicionales que se permitirán. Para subir datos de perfil, debes incluir "profile"

CLI de gcloud

  1. (Opcional) Crea un entorno virtual dedicado para instalar la CLI de Python del cargador de Vertex AI TensorBoard.
    python3 -m venv PATH/TO/VIRTUAL/ENVIRONMENT
    source PATH/TO/VIRTUAL/ENVIRONMENT/bin/activate
    • PATH/TO/VIRTUAL/ENVIRONMENT: Es tu entorno virtual dedicado.
  2. Instala el paquete de Vertex AI TensorBoard mediante el SDK de Vertex AI
    pip install -U pip
    pip install google-cloud-aiplatform[tensorboard]
  3. Sube registros de TensorBoard
    1. Datos de series temporales y de 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 del recurso de TensorBoard que se usa para identificar por completo la instancia de Vertex AI TensorBoard.
    • LOG_DIR: Es la ubicación de los registros de eventos, que se encuentra en el sistema de archivos local o en Cloud Storage.
    • TB_EXPERIMENT_NAME: Es el nombre del experimento de TensorBoard. por ejemplo, test-experiment.
    • RUN_NAME_PREFIX: Para los datos de perfil, este es el prefijo de ejecución. El formato del directorio dentro de LOG_DIR debe coincidir con lo siguiente:
      • /RUN_NAME_PREFIX/plugins/profile/YYYY_MM_DD_HH_SS/

De forma predeterminada, la CLI del cargador se ejecuta de forma indefinida, supervisa los cambios en LOG_DIR y sube los registros recién agregados. --one_shot=True inhabilita el comportamiento. Ejecuta tb-gcp-uploader --help para más información.