MCPcopy Index your code
hub / github.com/lanpa/tensorboardX

github.com/lanpa/tensorboardX @v2.6.5 sqlite

repository ↗ · DeepWiki ↗ · release v2.6.5 ↗
418 symbols 1,607 edges 84 files 121 documented · 29% 16 cross-repo links
README

tensorboardX

PyPI version Documentation Status Coverage Status

Write TensorBoard events with simple function call.

The current release (v2.6.3) is tested with PyTorch 2.6 / torchvision 0.21.0 / tensorboard 2.19.0 on Python 3.9 to 3.12

  • Support scalar, image, figure, histogram, audio, text, graph, onnx_graph, embedding, pr_curve, mesh, hyper-parameters and video summaries.

  • FAQ

Install

pip install tensorboardX

or build from source:

pip install 'git+https://github.com/lanpa/tensorboardX'

You can optionally install crc32c to speed up.

pip install crc32c

Starting from tensorboardX 2.1, You need to install soundfile for the add_audio() function (200x speedup).

pip install soundfile

Example

  • Clone the files in https://github.com/lanpa/tensorboardX/tree/master/examples
  • Run the demo script: e.g. python examples/demo.py
  • Start TensorBoard with tensorboard --logdir runs
# demo.py

import torch
import torchvision.utils as vutils
import numpy as np
import torchvision.models as models
from torchvision import datasets
from tensorboardX import SummaryWriter

resnet18 = models.resnet18(False)
writer = SummaryWriter()
sample_rate = 44100
freqs = [262, 294, 330, 349, 392, 440, 440, 440, 440, 440, 440]

for n_iter in range(100):

    dummy_s1 = torch.rand(1)
    dummy_s2 = torch.rand(1)
    # data grouping by `slash`
    writer.add_scalar('data/scalar1', dummy_s1[0], n_iter)
    writer.add_scalar('data/scalar2', dummy_s2[0], n_iter)

    writer.add_scalars('data/scalar_group', {'xsinx': n_iter * np.sin(n_iter),
                                             'xcosx': n_iter * np.cos(n_iter),
                                             'arctanx': np.arctan(n_iter)}, n_iter)

    dummy_img = torch.rand(32, 3, 64, 64)  # output from network
    if n_iter % 10 == 0:
        x = vutils.make_grid(dummy_img, normalize=True, scale_each=True)
        writer.add_image('Image', x, n_iter)

        dummy_audio = torch.zeros(sample_rate * 2)
        for i in range(x.size(0)):
            # amplitude of sound should in [-1, 1]
            dummy_audio[i] = np.cos(freqs[n_iter // 10] * np.pi * float(i) / float(sample_rate))
        writer.add_audio('myAudio', dummy_audio, n_iter, sample_rate=sample_rate)

        writer.add_text('Text', 'text logged at step:' + str(n_iter), n_iter)

        for name, param in resnet18.named_parameters():
            writer.add_histogram(name, param.clone().cpu().data.numpy(), n_iter)

        # needs tensorboard 0.4RC or later
        writer.add_pr_curve('xoxo', np.random.randint(2, size=100), np.random.rand(100), n_iter)

dataset = datasets.MNIST('mnist', train=False, download=True)
images = dataset.test_data[:100].float()
label = dataset.test_labels[:100]

features = images.view(100, 784)
writer.add_embedding(features, metadata=label, label_img=images.unsqueeze(1))

# export scalar data to JSON for external processing
writer.export_scalars_to_json("./all_scalars.json")
writer.close()

Screenshots

Using TensorboardX with Comet

TensorboardX now supports logging directly to Comet. Comet is a free cloud based solution that allows you to automatically track, compare and explain your experiments. It adds a lot of functionality on top of tensorboard such as dataset management, diffing experiments, seeing the code that generated the results and more.

This works out of the box and just require an additional line of code. See a full code example in this Colab Notebook

Tweaks

To add more ticks for the slider (show more image history), check https://github.com/lanpa/tensorboardX/issues/44 or https://github.com/tensorflow/tensorboard/pull/1138

Reference

Core symbols most depended-on inside this repo

add_scalar
called by 61
tensorboardX/writer.py
write
called by 29
tensorboardX/record_writer.py
make_np
called by 26
tensorboardX/x2num.py
_get_file_writer
called by 24
tensorboardX/writer.py
compare_proto
called by 20
tests/expect_reader.py
add_graph
called by 19
tensorboardX/writer.py
add_summary
called by 18
tensorboardX/writer.py
_get_comet_logger
called by 18
tensorboardX/writer.py

Shape

Method 284
Function 81
Class 53

Languages

Python100%

Modules by API surface

tensorboardX/writer.py58 symbols
examples/demo_graph.py33 symbols
tests/test_summary.py31 symbols
tensorboardX/record_writer.py31 symbols
tensorboardX/summary.py21 symbols
tensorboardX/comet_utils.py21 symbols
tensorboardX/visdom_writer.py20 symbols
tensorboardX/event_file_writer.py17 symbols
tests/event_file_writer_test.py12 symbols
tests/test_writer.py9 symbols
tensorboardX/utils.py8 symbols
tensorboardX/global_writer.py8 symbols

Dependencies from manifests, versioned

packaging
protobuf3.20 · 1×

For agents

$ claude mcp add tensorboardX \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact