TensorBoard
TensorBoard est une suite d'outils de visualisation pour le debugging, l'optimisation et la compréhension de TensorFlow, PyTorch, Hugging Face Transformers et d'autres programmes de Machine Learning.
Utiliser TensorBoard
Le démarrage de TensorBoard dans Databricks n'est pas différent de son démarrage sur un notebook Jupyter sur votre ordinateur local.
-
Chargez la commande magique
%tensorboardet définissez votre répertoire de logs.%load_ext tensorboard
experiment_log_dir = <log-directory> -
Invoquez la commande magique
%tensorboard.%tensorboard --logdir $experiment_log_dirLe serveur TensorBoard start et affiche l'interface utilisateur en ligne dans le Notebook. Il fournit également un link pour ouvrir TensorBoard dans un nouveau tab.
La capture d'écran suivante montre l'interface utilisateur de TensorBoard démarrée dans un répertoire de logs rempli.

Vous pouvez également start TensorBoard en utilisant directement le module notebook de TensorBoard.
from tensorboard import notebook
notebook.start("--logdir {}".format(experiment_log_dir))
Logs et répertoires de TensorBoard
TensorBoard visualise vos programmes de machine learning en lisant les logs générés par les rappels et fonctions TensorBoard dans TensorBoard ou PyTorch. Pour générer des logs pour d'autres bibliothèques de machine learning, vous pouvez directement écrire des logs à l'aide des rédacteurs de fichiers TensorFlow (voir Module: tf.summary pour TensorFlow 2.x et voir Module: tf.compat.v1.summary pour l'ancienne API dans TensorFlow 1.x).
Pour garantir que les logs de vos expérimentations sont stockés de manière fiable, Databricks recommande de stocker les logs dans le stockage cloud plutôt que sur le système de fichiers éphémère du cluster. Pour chaque expérimentation, start TensorBoard dans un répertoire unique. Pour chaque exécution de votre code Machine Learning dans l'expérimentation qui génère des logs, configurez le rappel TensorBoard ou l'enregistreur de fichier pour écrire dans un sous-répertoire du répertoire d'expérimentation. De cette façon, les données dans l'interface utilisateur de TensorBoard sont séparées en exécutions.
Consultez la documentation officielle de TensorBoard pour start à utiliser TensorBoard pour enregistrer des informations pour votre programme de Machine Learning.
Gérer les processus TensorBoard
Les processus TensorBoard démarrés dans un notebook Databricks ne sont pas arrêtés lorsque le notebook est détaché ou que le REPL est redémarré (par exemple, lorsque vous effacez l'état du notebook). Pour arrêter manuellement un processus TensorBoard, envoyez-lui un signal de terminaison à l'aide de %sh kill -15 pid. Des processus TensorBoard arrêtés de manière incorrecte peuvent corrompre notebook.list().
Pour répertorier les serveurs TensorBoard en cours d'exécution sur votre cluster, avec leurs répertoires de Log et leurs ID de processus correspondants, exécutez notebook.list() à partir du module Notebook TensorBoard.
Problèmes connus
- L'interface utilisateur TensorBoard intégrée est dans un iframe. Les fonctionnalités de sécurité du navigateur empêchent les liens externes dans l'interface utilisateur de fonctionner, sauf si vous ouvrez le lien dans un nouvel tab.
- L'option
--window_titlede TensorBoard est écrasée sur Databricks. - default, TensorBoard analyse une plage de ports pour sélectionner un port d'écoute. S'il y a trop de processus TensorBoard en cours d'exécution sur le cluster, tous les ports de la plage de ports pourraient être indisponibles. Vous pouvez contourner cette limitation en spécifiant un numéro de port avec l'argument
--port. Le port spécifié doit être compris entre 6006 et 6106. - Pour que les links de download fonctionnent, vous devez ouvrir TensorBoard dans un tab.
- Lorsque vous utilisez TensorBoard 1.15.0, l'onglet tab est vide. Pour contourner le problème, afin de visiter directement la page du projecteur, vous pouvez remplacer
#projectordans l'URL pardata/plugin/projector/projector_binary.html. - TensorBoard 2.4.0 présente un problème connu qui pourrait affecter le rendu de TensorBoard en cas de mise à niveau.
- Si vous journalisez des données liées à TensorBoard vers DBFS ou les volumes UC, vous risquez d'obtenir une erreur comme
No dashboards are active for the current data set. Pour surmonter cette erreur, il est conseillé d'appelerwriter.flush()etwriter.close()après avoir utilisé lewriterpour enregistrer les données. Cela garantit que toutes les données journalisées sont correctement écrites et disponibles pour être affichées par TensorBoard.