Logs in Vertex AI TensorBoard hochladen

Sie können vorhandene Logs in Ihre Vertex AI TensorBoard-Instanz hochladen, die durch lokales Training oder Training außerhalb von Vertex AI erstellt wurden, von einem Kollegen erstellt wurden, bei denen es sich um Beispiel-Logs handelt oder die mit einer anderen Vertex AI TensorBoard-Instanz erstellt wurden. Logs können von mehreren Vertex AI TensorBoard-Instanzen gemeinsam genutzt werden.

Vertex AI TensorBoard bietet die Google Cloud CLI und das Vertex AI SDK für Python zum Hochladen von TensorBoard-Logs. Sie können Logs aus jeder Umgebung hochladen, mit der sich eine Verbindung zu Google Cloud herstellen lässt.

Vertex AI SDK für Python

Unterbrechungsfreies Monitoring

Für ein kontinuierliches Monitoring rufen Sie aiplatform.start_upload_tb_log zu Beginn des Trainings auf. Das SDK öffnet einen neuen Thread zum Hochladen. Dieser Thread überwacht neue Daten im Verzeichnis und lädt sie in Ihren Vertex AI TensorBoard-Test hoch. Wenn das Training abgeschlossen ist, rufen Sie end_upload_tb_log auf, um den Uploader-Thread zu beenden.

Beachten Sie, dass nach dem Aufrufen von start_upload_tb_log() der Thread aktiv bleibt, auch wenn eine Ausnahme ausgelöst wird. Damit der Thread heruntergefahren wird, fügen Sie beliebigen Code nach start_upload_tb_log() und vor end_upload_tb_log() in eine try-Anweisung ein und rufen Sie end_upload_tb_log() in finally auf.

Python

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: Der Name des TensorBoard-Tests, in den hochgeladen werden soll.
  • logdir: Der Verzeichnisstandort, der auf TensorBoard-Logs geprüft werden soll.
  • tensorboard_id: Die TensorBoard-Instanz-ID. Wenn nicht festgelegt, wird die tensorboard_id in aiplatform.init verwendet.
  • project: Ihre Projekt-ID. Sie finden die Projekt-ID auf der Begrüßungsseite der Google Cloud Console.
  • location: Die Region, in der sich Ihre TensorBoard-Instanz befindet.
  • experiment_display_name: Der Anzeigename des Tests.
  • run_name_prefix: Wenn vorhanden, wird dem Namen aller Ausführungen, die durch diesen Aufruf erstellt werden, dieser Wert vorangestellt.
  • description: Eine Stringbeschreibung, die dem Test zugewiesen werden soll.

Einmaliges Logging

TensorBoard-Logs hochladen

Rufen Sie aiplatform.upload_tb_log auf, um einen einmaligen Upload von TensorBoard-Logs durchzuführen. Dadurch werden vorhandene Daten in das Logdir hochgeladen und dann sofort zurückgegeben.

Python

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: Der Name des TensorBoard-Tests.
  • logdir: Der Verzeichnisstandort, der auf TensorBoard-Logs geprüft werden soll.
  • tensorboard_id: Die TensorBoard-Instanz-ID. Wenn nicht festgelegt, wird die tensorboard_id in aiplatform.init verwendet.
  • project: Ihre Projekt-ID. Sie finden die Projekt-IDs auf der Begrüßungsseite der Google Cloud Console.
  • location: Die Region, in der sich Ihre TensorBoard-Instanz befindet.
  • experiment_display_name: Der Anzeigename des Tests.
  • run_name_prefix: Wenn vorhanden, wird dem Namen aller Ausführungen, die durch diesen Aufruf erstellt werden, dieser Wert vorangestellt.
  • description: Eine Stringbeschreibung, die dem Test zugewiesen werden soll.
  • verbosity: Ausführlichkeitsstufe für Statistiken, eine Ganzzahl. Unterstützter Wert: 0 – Es werden keine Uploadstatistiken ausgegeben. 1 - Uploadstatistiken beim Hochladen von Daten ausgeben (Standardeinstellung).

Profillogs hochladen

Rufen Sie aiplatform.upload_tb_log auf, um TensorBoard-Profillogs in einen Test hochzuladen.

Python

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: Der Name des TensorBoard-Tests.
  • logdir: Der Verzeichnisstandort, der auf TensorBoard-Logs geprüft werden soll.
  • project: Ihre Projekt-ID. Sie finden diese Projekt-IDs auf der Begrüßungsseite der Google Cloud Console.
  • location: die Region, in der sich Ihre TensorBoard-Instanz befindet.
  • run_name_prefix: Bei Profildaten ist dies das Ausführungspräfix. Das Verzeichnisformat in LOG_DIR sollte Folgendem entsprechen:
    • /RUN_NAME_PREFIX/plugins/profile/YYYY_MM_DD_HH_SS/
  • allowed_plugins: Eine Liste zusätzlicher Plug-ins, die zugelassen werden sollen. Zum Hochladen von Profildaten sollte dies "profile" enthalten.

gcloud-CLI

  1. (Optional) Erstellen Sie eine dedizierte virtuelle Umgebung, um die Vertex AI TensorBoard-Uploader-Python-Befehlszeile zu installieren.
    python3 -m venv PATH/TO/VIRTUAL/ENVIRONMENT
    source PATH/TO/VIRTUAL/ENVIRONMENT/bin/activate
    
    • PATH/TO/VIRTUAL/ENVIRONMENT: Ihre dedizierte virtuelle Umgebung.
  2. Installieren Sie das Vertex AI TensorBoard-Paket über das Vertex AI SDK.
    pip install -U pip
    pip install google-cloud-aiplatform[tensorboard]
    
  3. TensorBoard-Logs hochladen
    1. Zeitachsen- und Blob-Daten
      tb-gcp-uploader --tensorboard_resource_name \
      TENSORBOARD_RESOURCE_NAME \
      --logdir=LOG_DIR \
      --experiment_name=TB_EXPERIMENT_NAME --one_shot=True
      
    2. Profildaten
      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: Der TensorBoard-Ressourcenname, der zur vollständigen Identifizierung der Vertex AI TensorBoard-Instanz verwendet wird.
    • LOG_DIR: Der Speicherort der Ereignislogs, die sich entweder im lokalen Dateisystem oder in Cloud Storage befinden
    • TB_EXPERIMENT_NAME: Der Name des TensorBoard-Tests, z. B. test-experiment.
    • RUN_NAME_PREFIX: Bei Profildaten ist dies das Ausführungspräfix. Das Verzeichnisformat in LOG_DIR sollte Folgendem entsprechen:
      • /RUN_NAME_PREFIX/plugins/profile/YYYY_MM_DD_HH_SS/

Die Uploader-Befehlszeile wird standardmäßig unbegrenzt ausgeführt, überwacht die Änderungen in LOG_DIR und lädt neu hinzugefügte Logs hoch. --one_shot=True deaktiviert das Verhalten. Führen Sie tb-gcp-uploader --help aus, um weitere Informationen zu erhalten.