TensorBoard

Upload your TensorBoard logs to the cloud, quickly share your results among colleagues and classmates and keep your analysis in one centralized location.

Get started

import wandb

# Start a wandb run with `sync_tensorboard=True`
wandb.init(project="my-project", sync_tensorboard=True)

# Your training code using TensorBoard
...

# [Optional]Finish the wandb run to upload the tensorboard logs to W&B (if running in Notebook)
wandb.finish()

Review an example.

Once your run finishes, you can access your TensorBoard event files in W&B and you can visualize your metrics in native W&B charts, together with additional useful information like the system’s CPU or GPU utilization, the git state, the terminal command the run used, and more.

Frequently asked questions

How can I log metrics to W&B that aren’t logged to TensorBoard?

If you need to log additional custom metrics that aren’t being logged to TensorBoard, you can call wandb.log in your code wandb.log({"custom": 0.8})

Setting the step argument in wandb.log is turned off when syncing Tensorboard. If you’d like to set a different step count, you can log the metrics with a step metric as:

wandb.log({"custom": 0.8, "global_step": global_step})

How do I configure Tensorboard when I’m using it with wandb?

If you want more control over how TensorBoard is patched you can call wandb.tensorboard.patch instead of passing sync_tensorboard=True to wandb.init.

import wandb

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

# Finish the wandb run to upload the tensorboard logs to W&B (if running in Notebook)
wandb.finish()

You can pass tensorboard_x=False to this method to ensure vanilla TensorBoard is patched, if you’re using TensorBoard > 1.14 with PyTorch you can pass pytorch=True to ensure it’s patched. Both of these options have smart defaults depending on what versions of these libraries have been imported.

By default, we also sync the tfevents files and any .pbtxt files. This enables us to launch a TensorBoard instance on your behalf. You will see a TensorBoard tab on the run page. This behavior can be turned off by passing save=False to wandb.tensorboard.patch

import wandb

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

# If running in a notebook, finish the wandb run to upload the tensorboard logs to W&B
wandb.finish()

How do I sync historical TensorBoard runs?

If you have existing tfevents files stored locally and you would like to import them into W&B, you can run wandb sync log_dir, where log_dir is a local directory containing the tfevents files.

How do I use Google Colab or Jupyter with TensorBoard?

If running your code in a Jupyter or Colab notebook, make sure to call wandb.finish() and the end of your training. This will finish the wandb run and upload the tensorboard logs to W&B so they can be visualized. This is not necessary when running a .py script as wandb finishes automatically when a script finishes.

To run shell commands in a notebook environment, you must prepend a !, as in !wandb sync directoryname.

How do I use PyTorch with TensorBoard?

If you use PyTorch’s TensorBoard integration, you may need to manually upload the PyTorch Profiler JSON file.

wandb.save(glob.glob(f"runs/*.pt.trace.json")[0], base_path=f"runs")

Last modified February 13, 2025: a09c831