Importer des journaux dans Vertex AI TensorBoard

Vous pouvez importer des journaux existants sur votre instance Vertex AI TensorBoard qui ont été créés en local pour l'entraînement, en dehors de Vertex AI, par un collègue, qui sont des exemples de journaux ou qui ont été créés à l'aide d'une autre instance Vertex AI TensorBoard. Les journaux peuvent être partagés entre plusieurs instances Vertex AI TensorBoard.

Vertex AI TensorBoard propose Google Cloud CLI et le SDK Vertex AI pour Python permettant d'importer des journaux TensorBoard. Vous pouvez importer des journaux à partir de n'importe quel environnement pouvant se connecter à Google Cloud.

SDK Vertex AI pour Python

Surveillance continue

Pour une surveillance continue, appelez aiplatform.start_upload_tb_log au début de l'entraînement. Le SDK ouvre un nouveau thread pour l'importation. Ce thread surveille les nouvelles données dans le répertoire et les importe dans votre test Vertex AI TensorBoard. Une fois l'entraînement terminé, appelez end_upload_tb_log pour mettre fin au thread d'importation.

Notez qu'après avoir appelé start_upload_tb_log(), votre thread reste actif même si une exception est générée. Pour vous assurer que le thread est arrêté, placez n'importe quel code après start_upload_tb_log() et avant end_upload_tb_log() dans une instruction try, puis appelez end_upload_tb_log() dans 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 : nom du test TensorBoard dans lequel effectuer l'importation.
  • logdir : emplacement du répertoire dans lequel rechercher les journaux TensorBoard.
  • tensorboard_id : ID de l'instance TensorBoard. Si ce paramètre n'est pas défini, la valeur tensorboard_id dans aiplatform.init est utilisée.
  • project : l'ID de votre projet. Vous pouvez trouver l'ID du projet sur la page Accueil de la console Google Cloud.
  • location : emplacement où se trouve votre instance TensorBoard.
  • experiment_display_name : nom à afficher du test.
  • run_name_prefix : si cet élément est présent, le nom de toutes les exécutions créées par cet appel commence par cette valeur.
  • description : description de la chaîne à attribuer au test.

Journalisation unique

Importer des journaux TensorBoard

Appelez aiplatform.upload_tb_log pour effectuer une importation unique des journaux TensorBoard. Les données existantes sont importées dans le répertoire logdir, puis renvoyées immédiatement.

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 : nom du test TensorBoard.
  • logdir : emplacement du répertoire dans lequel rechercher les journaux TensorBoard.
  • tensorboard_id : ID de l'instance TensorBoard. Si ce paramètre n'est pas défini, la valeur tensorboard_id dans aiplatform.init est utilisée.
  • project : l'ID de votre projet. Vous pouvez trouver ces ID de projet sur la page d'accueil de la console Google Cloud.
  • location : emplacement où se trouve votre instance TensorBoard.
  • experiment_display_name : nom à afficher du test.
  • run_name_prefix : si cet élément est présent, le nom de toutes les exécutions créées par cet appel commence par cette valeur.
  • description : description de la chaîne à attribuer au test.
  • verbosity : niveau de verbosité des statistiques (entier). Valeurs acceptées : 0 - Aucune statistique d'importation n'est imprimée. 1 - Imprimer les statistiques d'importation lors de l'importation des données (par défaut)

Importer des journaux de profil

Appelez aiplatform.upload_tb_log pour importer les journaux de profil TensorBoard dans un test.

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 : nom du test TensorBoard.
  • logdir : emplacement du répertoire dans lequel rechercher les journaux TensorBoard.
  • project : l'ID de votre projet. Vous pouvez trouver ces ID de projet sur la page Accueil de la console Google Cloud.
  • location : emplacement où se trouve votre instance TensorBoard.
  • run_name_prefix : pour les données de profil, il s'agit du préfixe d'exécution. Le format du répertoire dans LOG_DIR doit correspondre au format suivant :
    • /RUN_NAME_PREFIX/plugins/profile/YYYY_MM_DD_HH_SS/
  • allowed_plugins : liste de plug-ins supplémentaires à autoriser. Pour importer des données de profil, vous devez inclure "profile"

gcloud CLI

  1. (Facultatif) Créez un environnement virtuel dédié pour installer la CLI Python de l'outil d'importation Vertex AI TensorBoard.
    python3 -m venv PATH/TO/VIRTUAL/ENVIRONMENT
    source PATH/TO/VIRTUAL/ENVIRONMENT/bin/activate
    
    • PATH/TO/VIRTUAL/ENVIRONMENT : votre environnement virtuel dédié.
  2. Installer le package Vertex AI TensorBoard via le SDK Vertex AI.
    pip install -U pip
    pip install google-cloud-aiplatform[tensorboard]
    
  3. Importer des journaux TensorBoard
    1. Séries temporelles et données blob
      tb-gcp-uploader --tensorboard_resource_name \
      TENSORBOARD_RESOURCE_NAME \
      --logdir=LOG_DIR \
      --experiment_name=TB_EXPERIMENT_NAME --one_shot=True
      
    2. Données de profil
      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 : nom de la ressource TensorBoard permettant d'identifier complètement l'instance Vertex AI TensorBoard.
    • LOG_DIR : emplacement des journaux d'événements qui réside dans le système de fichiers local ou Cloud Storage.
    • TB_EXPERIMENT_NAME : nom du test TensorBoard, par exemple test-experiment.
    • RUN_NAME_PREFIX : pour les données de profil, il s'agit du préfixe d'exécution. Le format du répertoire LOG_DIR doit correspondre au format suivant :
      • /RUN_NAME_PREFIX/plugins/profile/YYYY_MM_DD_HH_SS/

Par défaut, la CLI de l'outil d'importation s'exécute indéfiniment, surveille les modifications apportées à LOG_DIR et importe les journaux nouvellement ajoutés. --one_shot=True désactive le comportement. Exécutez tb-gcp-uploader --help pour plus d'informations.