Skip to main content
W&B prend en charge l’intégration de TensorBoard pour W&B Multi-tenant SaaS.
Téléversez vos journaux TensorBoard dans le cloud, partagez rapidement vos résultats avec vos collègues et camarades de classe et conservez votre analyse au même endroit.
Code d’intégration TensorBoard

Premiers pas

import wandb

# Démarrer un run wandb avec `sync_tensorboard=True`
wandb.init(project="my-project", sync_tensorboard=True) as run:
  # Votre code d'entraînement utilisant TensorBoard
  ...

Consultez un exemple de run avec intégration TensorBoard. Une fois votre run terminé, vous pouvez accéder à vos fichiers d’événements TensorBoard dans W&B et visualiser vos métriques dans les graphiques natifs de W&B, avec d’autres informations utiles comme l’utilisation du CPU ou du GPU du système, l’état de git, la commande de terminal utilisée pour le run, et plus encore.
W&B prend en charge TensorBoard avec toutes les versions de TensorFlow. W&B prend également en charge TensorBoard 1.14 et les versions ultérieures avec PyTorch, ainsi que TensorBoardX.

Questions fréquentes

Comment puis-je consigner dans W&B des métriques qui ne sont pas enregistrées dans TensorBoard ?

Si vous devez consigner des métriques personnalisées supplémentaires qui ne sont pas enregistrées dans TensorBoard, vous pouvez appeler wandb.Run.log() dans votre code : run.log({"custom": 0.8}) Le paramètre step dans run.log() est désactivé lors de la synchronisation avec TensorBoard. Si vous souhaitez définir un nombre d’étapes différent, vous pouvez consigner les métriques avec une métrique d’étape, comme suit : run.log({"custom": 0.8, "global_step": global_step})

Comment puis-je configurer TensorBoard lorsque je l’utilise avec wandb ?

Si vous voulez mieux contrôler la manière dont TensorBoard est patché, vous pouvez appeler wandb.tensorboard.patch au lieu de passer sync_tensorboard=True à wandb.init.
import wandb

wandb.tensorboard.patch(root_logdir="<logging_directory>")
run = wandb.init()

# Terminer le run wandb pour envoyer les journaux TensorBoard vers W&B (si exécuté dans un Notebook)
run.finish()
Vous pouvez passer tensorboard_x=False à cette méthode pour vous assurer que le TensorBoard standard est patché. Si vous utilisez TensorBoard > 1.14 avec PyTorch, vous pouvez passer pytorch=True pour vous assurer qu’il est patché. Ces deux options ont des valeurs par défaut intelligentes selon les versions de ces bibliothèques qui ont été importées. Par défaut, nous synchronisons également les fichiers tfevents ainsi que tous les fichiers .pbtxt. Cela nous permet de lancer une instance TensorBoard pour votre compte. Vous verrez un onglet TensorBoard sur la page du run. Ce comportement peut être désactivé en passant save=False à wandb.tensorboard.patch
import wandb

run = wandb.init()
wandb.tensorboard.patch(save=False, tensorboard_x=True)

# Si vous exécutez dans un notebook, terminez le run wandb pour importer les journaux TensorBoard dans W&B
run.finish()
Vous devez appeler soit wandb.init(), soit wandb.tensorboard.patch avant d’appeler tf.summary.create_file_writer ou d’instancier un SummaryWriter via torch.utils.tensorboard.

Comment puis-je synchroniser d’anciens runs TensorBoard ?

Si vous avez des fichiers tfevents déjà stockés localement et que vous souhaitez les importer dans W&B, vous pouvez exécuter wandb sync log_dir, où log_dir est un répertoire local contenant les fichiers tfevents.

Comment puis-je utiliser Google Colab ou Jupyter avec TensorBoard ?

Si vous exécutez votre code dans un notebook Jupyter ou Colab, assurez-vous d’appeler wandb.Run.finish() à la fin de votre entraînement. Cela mettra fin au run wandb et importera les journaux TensorBoard dans W&B pour que vous puissiez les visualiser. Cela n’est pas nécessaire lorsque vous exécutez un script .py, car wandb se termine automatiquement à la fin du script. Pour exécuter des commandes shell dans un environnement de notebook, vous devez les faire précéder d’un !, comme dans !wandb sync directoryname.

Comment puis-je utiliser PyTorch avec TensorBoard ?

Si vous utilisez l’intégration TensorBoard de PyTorch, vous devrez peut-être importer manuellement le fichier JSON de PyTorch Profiler.
with wandb.init(project="my-project", sync_tensorboard=True) as run:
    run.save(glob.glob(f"runs/*.pt.trace.json")[0], base_path=f"runs")

Puis-je synchroniser des fichiers tfevents stockés dans le cloud ?

wandb 0.20.0 et les versions ultérieures prennent en charge la synchronisation des fichiers tfevents stockés dans S3, GCS ou Azure. wandb utilise les identifiants par défaut de chaque fournisseur cloud, correspondant aux commandes du tableau suivant :
Fournisseur cloudIdentifiantsFormat du répertoire des journaux
S3aws configures3://bucket/path/to/logs
GCSgcloud auth application-default logings://bucket/path/to/logs
Azureaz login1az://account/container/path/to/logs

Footnotes

  1. Vous devez également définir les variables d’environnement AZURE_STORAGE_ACCOUNT et AZURE_STORAGE_KEY.