TensorBoard

TensorBoard is een suite visualisatiehulpprogramma's voor foutopsporing, optimalisatie en inzicht in TensorFlow, PyTorch, Hugging Face Transformers en andere machine learning-programma's.

TensorBoard gebruiken

Het starten van TensorBoard in Azure Databricks is niet anders dan het starten op een Jupyter-notebook op uw lokale computer.

  1. Laad de %tensorboard magic-opdracht en definieer uw logboekmap.

    %load_ext tensorboard
    experiment_log_dir = <log-directory>
    
  2. Roep de %tensorboard magic-opdracht aan.

    %tensorboard --logdir $experiment_log_dir
    

    De TensorBoard-server wordt gestart en de gebruikersinterface wordt inline weergegeven in het notebook. Het bevat ook een koppeling om TensorBoard op een nieuw tabblad te openen.

    In de volgende schermopname ziet u hoe de Gebruikersinterface van TensorBoard is gestart in een gevulde logboekmap.

    TensorBoard UI gestart in gevulde logboekmap

U kunt TensorBoard ook rechtstreeks starten met behulp van de notebookmodule van TensorBoard.

from tensorboard import notebook
notebook.start("--logdir {}".format(experiment_log_dir))

TensorBoard-logboeken en -mappen

TensorBoard visualiseert uw machine learning-programma's door logboeken te lezen die zijn gegenereerd door Callbacks en functies van TensorBoard of PyTorch. Als u logboeken voor andere machine learning-bibliotheken wilt genereren, kunt u rechtstreeks logboeken schrijven met behulp van TensorFlow-bestandsschrijvers (zie Module: tf.summary voor TensorFlow 2.x en zie Module: tf.compat.v1.summary voor de oudere API in TensorFlow 1.x ).

Om ervoor te zorgen dat uw experimentlogboeken betrouwbaar worden opgeslagen, raadt Databricks aan logboeken te schrijven naar cloudopslag in plaats van naar het tijdelijke clusterbestandssysteem. Start TensorBoard voor elk experiment in een unieke map. Voor elke uitvoering van uw machine learning-code in het experiment waarmee logboeken worden gegenereerd, stelt u de TensorBoard-callback of -schrijver in op schrijven naar een submap van de map experiment. Op die manier worden de gegevens in de Gebruikersinterface van TensorBoard onderverdeeld in uitvoeringen.

Lees de officiële TensorBoard-documentatie om aan de slag te gaan met TensorBoard om informatie voor uw machine learning-programma te registreren.

TensorBoard-processen beheren

De TensorBoard-processen die in Azure Databricks-notebook zijn gestart, worden niet beëindigd wanneer het notebook wordt losgekoppeld of de REPL opnieuw wordt gestart (bijvoorbeeld wanneer u de status van het notebook wist). Als u een TensorBoard-proces handmatig wilt beëindigen, stuurt u het een beëindigingssignaal met behulp van %sh kill -15 pid. TensorBoard-processen die onjuist zijn beëindigd, kunnen beschadigd raken notebook.list().

Als u de TensorBoard-servers wilt weergeven die momenteel in uw cluster worden uitgevoerd, met de bijbehorende logboekmappen en proces-id's, voert notebook.list() u uit vanuit de TensorBoard-notebookmodule.

Bekende problemen

  • De inline Gebruikersinterface van TensorBoard bevindt zich in een iframe. Beveiligingsfuncties van de browser voorkomen dat externe koppelingen in de gebruikersinterface werken, tenzij u de koppeling op een nieuw tabblad opent.
  • De --window_title optie van TensorBoard wordt overschreven in Azure Databricks.
  • TensorBoard scant standaard een poortbereik op het selecteren van een poort om naar te luisteren. Als er te veel TensorBoard-processen worden uitgevoerd op het cluster, zijn alle poorten in het poortbereik mogelijk niet beschikbaar. U kunt deze beperking omzeilen door een poortnummer op te geven met het --port argument . De opgegeven poort moet tussen 6006 en 6106 zijn.
  • Downloadkoppelingen werken alleen als u TensorBoard op een tabblad opent.
  • Wanneer u TensorBoard 1.15.0 gebruikt, is het tabblad Projector leeg. Als tijdelijke oplossing kunt u de projectorpagina rechtstreeks bezoeken door in de URL vervangen door #projectordata/plugin/projector/projector_binary.html.
  • TensorBoard 2.4.0 heeft een bekend probleem dat van invloed kan zijn op tensorBoard-rendering bij een upgrade.