Tensorboard for pytorch (and chainer, mxnet, numpy, ...)

Overview

tensorboardX

Build Status PyPI version Documentation Status Documentation Status

Write TensorBoard events with simple function call.

The current release (v2.3) is tested on anaconda3, with PyTorch 1.8.1 / torchvision 0.9.1 / tensorboard 2.5.0.

  • 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

# 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

Comments
  • demo_graph.py error on pytorch 0.4.0

    demo_graph.py error on pytorch 0.4.0

    I tried running the demo_graph.py and got the following error.

    python demo_graph.py 
    Traceback (most recent call last):
      File "demo_graph.py", line 56, in <module>
        w.add_graph(model, (dummy_input, ))
      File "/home/dana/Desktop/tensorboard-pytorch/tensorboardX/writer.py", line 400, in add_graph
        self.file_writer.add_graph(graph(model, input_to_model, verbose))
      File "/home/dana/Desktop/tensorboard-pytorch/tensorboardX/graph.py", line 52, in graph
        trace, _ = torch.jit.trace(model, args)
    TypeError: 'function' object is not iterable
    

    The return of torch.jit.trace is this wrapper, from this commit

    I'm using the Python 3.6 on Ubuntu 16.04

    • torch==0.4.0 built from source
    • tensorboardX==1.1
    • tensorboard==1.6.0

    Edit: Updated my pytorch version

    onnx 
    opened by danakianfar 25
  • upsample_bilinear2d() got an unexpected keyword argument 'align_corners' (occurred when translating upsample_bilinear2d)

    upsample_bilinear2d() got an unexpected keyword argument 'align_corners' (occurred when translating upsample_bilinear2d)

    tensorboardX1.2 may not support upsample module in pytorch0.4

    File "/home/wanghongzhen/anaconda2/lib/python2.7/site-packages/tensorboardX/writer.py", line 422, in add_graph self.file_writer.add_graph(graph(model, input_to_model, verbose)) File "/home/wanghongzhen/anaconda2/lib/python2.7/site-packages/tensorboardX/graph.py", line 94, in graph torch.onnx._optimize_trace(trace, False) File "/home/wanghongzhen/anaconda2/lib/python2.7/site-packages/torch/onnx/init.py", line 30, in _optimize_trace trace.set_graph(utils._optimize_graph(trace.graph(), aten)) File "/home/wanghongzhen/anaconda2/lib/python2.7/site-packages/torch/onnx/utils.py", line 95, in _optimize_graph graph = torch._C._jit_pass_onnx(graph, aten) File "/home/wanghongzhen/anaconda2/lib/python2.7/site-packages/torch/onnx/init.py", line 40, in _run_symbolic_function return utils._run_symbolic_function(*args, **kwargs) File "/home/wanghongzhen/anaconda2/lib/python2.7/site-packages/torch/onnx/utils.py", line 368, in _run_symbolic_function return fn(g, *inputs, **attrs) TypeError: upsample_bilinear2d() got an unexpected keyword argument 'align_corners' (occurred when translating upsample_bilinear2d)

    onnx 
    opened by hongzhenwang 22
  • RuntimeError: Only tuples, lists and Variables supported as JIT inputs, but got numpy.ndarray

    RuntimeError: Only tuples, lists and Variables supported as JIT inputs, but got numpy.ndarray

    I am pretty sure that the inputs are lists. I am not sure whether I am using tensorboard rightly.

    for epoch in range(epochs):    
        batch_loss_list = []
        
        batch_list = seqHelper.gen_batch_list_of_lists(train_list,batch_size,(random_seed+epoch))
    
        #run through training minibatches
        for counter, train_batch in enumerate(batch_list):
            x_atom,x_bonds,x_atom_index,x_bond_index,x_mask,y_val = seqHelper.get_info_with_smiles_list(train_batch,\
                    smiles_to_measurement,smiles_to_atom_info,smiles_to_bond_info,\
                    smiles_to_atom_neighbors,smiles_to_bond_neighbors,smiles_to_atom_mask)
    
            atoms_prediction, mol_prediction = model(x_atom,x_bonds,x_atom_index,x_bond_index,x_mask)
            with SummaryWriter(comment='Fingerprint') as w:
                w.add_graph(model, (x_atom,x_bonds,x_atom_index,x_bond_index,x_mask))
    

    It returns:

    RuntimeError                              Traceback (most recent call last)
    <ipython-input-6-fd2c7c65a5f0> in <module>()
          1 with SummaryWriter(comment='Fingerprint') as w:
    ----> 2     w.add_graph(model, (x_atom,x_bonds,x_atom_index,x_bond_index,x_mask))
          3 
    
    ~/anaconda3/envs/deepchem/lib/python3.5/site-packages/tensorboardX/writer.py in add_graph(self, model, input_to_model, verbose)
        398                 print('add_graph() only supports PyTorch v0.2.')
        399                 return
    --> 400         self.file_writer.add_graph(graph(model, input_to_model, verbose))
        401 
        402     @staticmethod
    
    ~/anaconda3/envs/deepchem/lib/python3.5/site-packages/tensorboardX/graph.py in graph(model, args, verbose)
         50     if LooseVersion(torch.__version__) >= LooseVersion("0.4"):
         51         with torch.onnx.set_training(model, False):
    ---> 52             trace, _ = torch.jit.get_trace_graph(model, args)
         53         torch.onnx._optimize_trace(trace, False)
         54     else:
    
    ~/anaconda3/envs/deepchem/lib/python3.5/site-packages/torch/jit/__init__.py in get_trace_graph(f, args, kwargs, nderivs)
        251     if not isinstance(args, tuple):
        252         args = (args,)
    --> 253     return LegacyTracedModule(f, nderivs=nderivs)(*args, **kwargs)
        254 
        255 
    
    ~/anaconda3/envs/deepchem/lib/python3.5/site-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
        369             result = self._slow_forward(*input, **kwargs)
        370         else:
    --> 371             result = self.forward(*input, **kwargs)
        372         for hook in self._forward_hooks.values():
        373             hook_result = hook(self, input, result)
    
    ~/anaconda3/envs/deepchem/lib/python3.5/site-packages/torch/jit/__init__.py in forward(self, *args)
        277     def forward(self, *args):
        278         global _tracing
    --> 279         in_vars, in_desc = _flatten(args)
        280         # NOTE: use full state, because we need it for BatchNorm export
        281         # This differs from the compiler path, which doesn't support it at the moment.
    
    RuntimeError: Only tuples, lists and Variables supported as JIT inputs, but got numpy.ndarray\
    
    opened by xiongzhp 22
  • add_graph() show error 'torch._C.Value' object has no attribute 'uniqueName' with torch 1.2.0

    add_graph() show error 'torch._C.Value' object has no attribute 'uniqueName' with torch 1.2.0

    Describe the bug add_graph() with torch 1.2.0 will show error 'torch._C.Value' object has no attribute 'uniqueName' but work well with torch 1.1.0

    Minimal runnable code to reproduce the behavior

    from tensorboardX import SummaryWriter
    class LeNet(nn.Module):
        def __init__(self):
            super(LeNet, self).__init__()
            self.conv1 = nn.Sequential(     #input_size=(1*28*28)
                nn.Conv2d(1, 6, 5, 1, 2),
                nn.ReLU(),      #(6*28*28)
                nn.MaxPool2d(kernel_size=2, stride=2),  #output_size=(6*14*14)
            )
            self.conv2 = nn.Sequential(
                nn.Conv2d(6, 16, 5),
                nn.ReLU(),      #(16*10*10)
                nn.MaxPool2d(2, 2)  #output_size=(16*5*5)
            )
            self.fc1 = nn.Sequential(
                nn.Linear(16 * 5 * 5, 120),
                nn.ReLU()
            )
            self.fc2 = nn.Sequential(
                nn.Linear(120, 84),
                nn.ReLU()
            )
            self.fc3 = nn.Linear(84, 10)
    
        def forward(self, x):
            x = self.conv1(x)
            x = self.conv2(x)
            x = x.view(x.size()[0], -1)
            x = self.fc1(x)
            x = self.fc2(x)
            x = self.fc3(x)
            return x
    
    dummy_input = torch.rand(13, 1, 28, 28)
    model = LeNet()
    with SummaryWriter(comment='Net', log_dir='/output') as w:
        w.add_graph(model, (dummy_input, ))
    

    Expected behavior

    Screenshots

    Environment

    Python environment Python 3.6

    Additional context Add any other context about the problem here.

    opened by GinSoda 18
  • add_histgram : TypeError

    add_histgram : TypeError

    The code is add_histogram(name,data, niter) as examples. But it can not work. The error msg is File "/opt/pytorch/lib/python3.5/site-packages/tensorboardX/writer.py", line 305, in add_histogram self.file_writer.add_summary(histogram(tag, values, bins), global_step) File "/opt/pytorch/lib/python3.5/site-packages/tensorboardX/summary.py", line 113, in histogram hist = make_histogram(values.astype(float), bins) File "/opt/pytorch/lib/python3.5/site-packages/tensorboardX/summary.py", line 131, in make_histogram bucket=counts) TypeError: 0 has type numpy.int64, but expected one of: int, long, float

    opened by jyzhang-bjtu 17
  •  Not compatible with tensorflow 1.3?

    Not compatible with tensorflow 1.3?

    After I installed tensorflow 1.3 ,tensorboard can be used in terminal But after I installed tensorboard-pytorch, it can not work:

    Traceback (most recent call last):
      File "/usr/local/bin/tensorboard", line 7, in <module>
        from tensorboard.main import main
    ImportError: No module named 'tensorboard.main'
    
    opened by nsknsl 13
  • hyper parameters

    hyper parameters

    If it's possible, supporting the newly added hyper params feature would be amazing :)

    https://www.tensorflow.org/tensorboard/r2/hyperparameter_tuning_with_hparams

    enhancement 
    opened by YoelShoshan 12
  • [Feature Request] optionally remove an experiment

    [Feature Request] optionally remove an experiment

    Hey, thanks for the great work!

    It would be even better if there is an option to optionally remove a particular experiment like what we have in Crayon.

    from pycrayon import CrayonClient
    
    # Connect to the server
    cc = CrayonClient(hostname="server_machine_address")
    cc.remove_experiment(xp_name) # remove the 'xp_name' experiment
    

    Thanks!

    opened by chihyaoma 12
  • Graph Scope

    Graph Scope

    Hi, I'm a Pytorch beginner (previously working on th and tf) using your tensorboard-pytorch bridge to get some info during neural net training. It works like a charm for everything i've needed since now :). However i'm having some troubles with the graph visualization for some ConvNet and i've a few questions:

    • Is it possible to define scope for module? (i.e. if I'have a nested module can i give it a name to obtain a compress visualization of everything inside it?) ;
    • using the torch.cat() method i get some strange behaviours related to the order of the elements in the list of the first argument of cat() (see attached images, where the second one is correct for the code reported) .

    Btw great work :)

    def forward(self,i):
            # i stand as the input
            # conv_j is a module
            x = self.conv_0(i)
            x = self.conv_1(x)
            y = self.conv_r1(i)
            z = torch.cat((y,x),1)
            z = z.view(len(z),-1)
            z = self.fc1(z)
            z = F.relu(z)
            z = self.fc2(z)
            z = F.log_softmax(z)
            return z
    

    cat_2 cat_1

    bug enhancement 
    opened by lucabergamini 12
  • tensorboardX is incompatible with protobuf 4.21.0

    tensorboardX is incompatible with protobuf 4.21.0

    This is originally found when our CI server installed protobuf 4.12.0, which was released today, as a dependency of the tensorboardX.

    $ pip3 install tensorboardX  # installs the newest protobuf as a dependency
    $ python3
    Python 3.8.13 (default, Mar 17 2022, 16:53:17) 
    [Clang 9.1.0 (clang-902.0.39.2)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from tensorboardX import SummaryWriter
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/Users/dtakahashi/Library/Python/3.8/lib/python/site-packages/tensorboardX/__init__.py", line 5, in <module>
        from .torchvis import TorchVis
      File "/Users/dtakahashi/Library/Python/3.8/lib/python/site-packages/tensorboardX/torchvis.py", line 11, in <module>
        from .writer import SummaryWriter
      File "/Users/dtakahashi/Library/Python/3.8/lib/python/site-packages/tensorboardX/writer.py", line 17, in <module>
        from .comet_utils import CometLogger
      File "/Users/dtakahashi/Library/Python/3.8/lib/python/site-packages/tensorboardX/comet_utils.py", line 7, in <module>
        from .summary import _clean_tag
      File "/Users/dtakahashi/Library/Python/3.8/lib/python/site-packages/tensorboardX/summary.py", line 13, in <module>
        from .proto.summary_pb2 import Summary
      File "/Users/dtakahashi/Library/Python/3.8/lib/python/site-packages/tensorboardX/proto/summary_pb2.py", line 16, in <module>
        from tensorboardX.proto import tensor_pb2 as tensorboardX_dot_proto_dot_tensor__pb2
      File "/Users/dtakahashi/Library/Python/3.8/lib/python/site-packages/tensorboardX/proto/tensor_pb2.py", line 16, in <module>
        from tensorboardX.proto import resource_handle_pb2 as tensorboardX_dot_proto_dot_resource__handle__pb2
      File "/Users/dtakahashi/Library/Python/3.8/lib/python/site-packages/tensorboardX/proto/resource_handle_pb2.py", line 36, in <module>
        _descriptor.FieldDescriptor(
      File "/Users/dtakahashi/Library/Python/3.8/lib/python/site-packages/google/protobuf/descriptor.py", line 560, in __new__
        _message.Message._CheckCalledFromGeneratedFile()
    TypeError: Descriptors cannot not be created directly.
    If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
    If you cannot immediately regenerate your protos, some other possible workarounds are:
     1. Downgrade the protobuf package to 3.20.x or lower.
     2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
    
    More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
    >>> 
    

    Environment

    $ pip3 list | grep -E "torch|proto|tensor"
    protobuf                      4.21.0
    tensorboard                   2.7.0
    tensorboard-data-server       0.6.1
    tensorboard-plugin-wit        1.8.0
    tensorboardX                  2.5
    torch                         1.10.1
    $ python3 --version
    Python 3.8.13
    

    Thank you very much in advance.

    opened by daitakahashi 11
  • Projector makes browser to freeze

    Projector makes browser to freeze

    I am trying to run the demo example, but when changing to the projector tab, the browser freezes while trying to compute PCA.

    I am using Ubuntu 18.04, python 3.6, tensorflow-gpu 1.11, pytorch 4.1, any ideas on what might cause the problem?

    opened by vglsd 11
  •  How can I connect previous log file into new one in tensorboard

    How can I connect previous log file into new one in tensorboard

    Hi, I trained my model for 50 epochs. Now I want to continue training for other 15 epochs. so I start training with model.load_from_checkpoint("path") but I don't know how to show continuation of logs with tensorboard I thought if I write same path of previous file logs, it continue but it didn't show me the previous logs.

    I'd be appreciate if you could help me because I need to see the previous training logs along with the new ones. Part of source code is:

    checkpoint_callback=ModelCheckpoint(dirpath="model",filename="newmodel_1",save_last=True,verbose=True,monitor="val_ce_loss",mode="min")
    logger=TensorBoardLogger("training-logs",name="test_1")
    model1 = model(config)
    model_with_previous = model1.load_from_checkpoint(base_path_ckpt)
    trainer = pl.Trainer(
         max_steps = max_steps,
         max_epochs=N_EPOCHS,
         gpus=(1 if torch.cuda.is_available() else 0),
         logger=logger,
         callbacks=[checkpoint_callback], 
    )
    %load_ext tensorboard
    %tensorboard --logdir ./lightning_logs
    
    opened by mohanades 1
  • Protobuf version

    Protobuf version

    Any reason why protobuf version is restricted to 3.20.1? https://github.com/lanpa/tensorboardX/blob/9356270bce9e9d7e4f4ecedc85931b89f19a8a14/setup.py#L46 And can it be changed to >=3.8.0,<4 ?

    The latest release of onnx requires protobuf >= 3.20.2, < 4 https://github.com/onnx/onnx/blob/ee7d2cdfa34b8b3c7e0b68b70daf72aaa48c23ac/requirements.txt#L2 Therefore, it is not possible to install both tensorboardX and onnx in the same environment without error messages.

    opened by nrudakov 1
  •  AttributeError: 'NoneType' object has no attribute 'get_logdir'

    AttributeError: 'NoneType' object has no attribute 'get_logdir'

    Describe the bug When I was using tensorboardX in pytorch to record hyper parameters, I got the error as the title described.

    Minimal runnable code to reproduce the behavior

    import tensorboardX
    writer = tensorboardX.SummaryWriter()
    hparams = {'batch_size': args.batch_size,
               'lr': args.lr,
               'momentum': args.momentum,
               'weight_decay': args.weight_decay}
    writer.add_hparams(hparams, {'best_acc1': best_acc1})
    ...
    

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots image

    Environment What is the result of

    protobuf 3.19.6 tensorboard 2.10.1 tensorboard-data-server 0.6.1 tensorboard-plugin-wit 1.8.1 tensorboardX 2.2 torch 1.11.0 torch-tb-profiler 0.4.0 torchaudio 0.11.0 torchvision 0.12.0

    Python environment Which version of python are you using? Did you use Andconda or Virtualenv? Andconda Additional context Add any other context about the problem here.

    opened by ranshuo-ICer 3
  • Subsequent hparams missing

    Subsequent hparams missing

    Describe the bug Any hparams not present in the first run will never be shown. This is frustrating if extra information is added as you realise it might be relevant during the experiment. You may also have different experiments in the same folder.

    Minimal runnable code to reproduce the behavior

    # Example 1
    from tensorboardX import SummaryWriter
    with SummaryWriter() as w:
        w.add_hparams({'param1': 0.1}, {"metric1": 1})
        w.add_hparams({'param1': 2, "param2": 4}, {"metric1": 3, "metric2": 2}) 
    
    rm -rf runs/*
    
    # Example 2
    from tensorboardX import SummaryWriter
    with SummaryWriter() as w:
        w.add_hparams({'param1': 0.1}, {"metric1": 1})
    with SummaryWriter() as w:
        w.add_hparams({'param1': 2, "param2": 4}, {"metric1": 3, "metric2": 2})
    

    Expected behavior The first example shows param1, param2, metric1, metric2. The second only shows param1 and metric1. I would expect the tables to contain all parameters and metrics present in all runs. They can be displayed as blanks if not present for a given run, as is the case for the first example.

    Screenshots Example 1 image

    Example 2 image

    Environment

    protobuf                      3.19.4
    pytorch-ignite                0.4.9
    tensorboard                   2.10.0
    tensorboard-data-server       0.6.1
    tensorboard-plugin-wit        1.8.1
    tensorboardX                  2.5.1
    torch                         1.12.1
    torchvision                   0.13.1
    

    Python environment Conda 3.9

    opened by rijobro 4
  • Bump numpy from 1.21.0 to 1.22.0

    Bump numpy from 1.21.0 to 1.22.0

    Bumps numpy from 1.21.0 to 1.22.0.

    Release notes

    Sourced from numpy's releases.

    v1.22.0

    NumPy 1.22.0 Release Notes

    NumPy 1.22.0 is a big release featuring the work of 153 contributors spread over 609 pull requests. There have been many improvements, highlights are:

    • Annotations of the main namespace are essentially complete. Upstream is a moving target, so there will likely be further improvements, but the major work is done. This is probably the most user visible enhancement in this release.
    • A preliminary version of the proposed Array-API is provided. This is a step in creating a standard collection of functions that can be used across application such as CuPy and JAX.
    • NumPy now has a DLPack backend. DLPack provides a common interchange format for array (tensor) data.
    • New methods for quantile, percentile, and related functions. The new methods provide a complete set of the methods commonly found in the literature.
    • A new configurable allocator for use by downstream projects.

    These are in addition to the ongoing work to provide SIMD support for commonly used functions, improvements to F2PY, and better documentation.

    The Python versions supported in this release are 3.8-3.10, Python 3.7 has been dropped. Note that 32 bit wheels are only provided for Python 3.8 and 3.9 on Windows, all other wheels are 64 bits on account of Ubuntu, Fedora, and other Linux distributions dropping 32 bit support. All 64 bit wheels are also linked with 64 bit integer OpenBLAS, which should fix the occasional problems encountered by folks using truly huge arrays.

    Expired deprecations

    Deprecated numeric style dtype strings have been removed

    Using the strings "Bytes0", "Datetime64", "Str0", "Uint32", and "Uint64" as a dtype will now raise a TypeError.

    (gh-19539)

    Expired deprecations for loads, ndfromtxt, and mafromtxt in npyio

    numpy.loads was deprecated in v1.15, with the recommendation that users use pickle.loads instead. ndfromtxt and mafromtxt were both deprecated in v1.17 - users should use numpy.genfromtxt instead with the appropriate value for the usemask parameter.

    (gh-19615)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • draw NaN with triangle

    draw NaN with triangle

    Today when there are NaN or Inf values, it draw as 0. In Tensorboard, NaN or Inf are draw as Triangle Link

    I wish to help but don't know where. Thanks, Roni

    opened by ronigober 0
Releases(2.5)
  • v2.4(Jul 9, 2021)

  • v2.3(Jul 9, 2021)

  • v2.2(Apr 25, 2021)

  • v2.1(Jul 5, 2020)

  • v2.0(Jul 5, 2020)

    2.0 (2019-12-31)

    • Now you can tag Hparams trials with custom name instead of the default epoch time
    • Fixed a bug that add_hparams are rendered incorrectly with non-string values
    • Supports logging to Amazon S3 or Google Cloud Storage
    • Bug fixes and error message for add_embedding function
    • Draw openvino format with add_openvino_graph
    Source code(tar.gz)
    Source code(zip)
  • v1.9(Oct 9, 2019)

    • Use new JIT backend for pytorch. This works better with pytorch 1.2 and 1.3
    • Supports hparams plugin
    • add_embedding now supports numpy array input
    Source code(tar.gz)
    Source code(zip)
  • v1.8(Jul 4, 2019)

    1.8 (2019-07-05)

    • Draw label text on image with bounding box provided.
    • crc32c speed up (optional by installing crc32c manually)
    • Rewrite add_graph. onnx backend is replaced by JIT to support more advanced structure.
    • Now you can add_mesh() to visualize colorful point cloud or meshes.
    Source code(tar.gz)
    Source code(zip)
  • v1.7(May 20, 2019)

    • Able to write to S3
    • Fixed raw histogram issue that nothing is shown in TensorBoard
    • Users can use various image/video dimension permutation by passing 'dataformats' parameter.
    • You can bybass the writer by passing write_to_disk=True to SummaryWriter.
    • Fix bugs

    [update Jun.21 2019] important notice

    SummaryWriter's initializer's paremeter: log_dir was accidently changed to logdir. This makes some code not backward compatible. The unit tests doesn't cover that so It just got merged and be part of v1.7.

    Source code(tar.gz)
    Source code(zip)
  • v1.6(Apr 4, 2019)

    • Many graph related bug is fixed in this version.
    • New function: add_images(). This function accepts 4D iamge tensor. See documentation.
    • Make add_image_with_boxes() usable.
    • API change: add_video now accepts BxTxCxHxW instead of BxCxTxHxW tensor.
    Source code(tar.gz)
    Source code(zip)
  • v1.5(Apr 4, 2019)

    • Add API for Custom scalar
    • Add support for logging directly to S3
    • Add support for Caffe2 graph
    • Pytorch 1.0.0 JIT graph support (alpha-release)
    Source code(tar.gz)
    Source code(zip)
  • v1.2(Apr 28, 2018)

  • v1.0(Jan 18, 2018)

  • v0.9(Nov 10, 2017)

    Some important change since v0.6:

    • The package name is changed from tensorboard to tensorboardX to prevent from name collision with official tensorboard. (which leads to import error, ...etc) The name tensorboardX means tensorboard for X. I hope this package can be used by other DL frameworks such as mxnet, chainer as well. This is achieved by wrapping an make_np() call to function arguments. In fact, you can log experiment if you use tensorflow's eager mode.

    • Removes dependency for tensorflow and torchvision to make this package much neutral.

    • For other changes, see the commit log or HISTORY.rst

    Source code(tar.gz)
    Source code(zip)
  • v0.6(Jul 26, 2017)

CLIP+FFT text-to-image

Aphantasia This is a text-to-image tool, part of the artwork of the same name. Based on CLIP model, with FFT parameterizer from Lucent library as a ge

vadim epstein 690 Jan 02, 2023
DFM: A Performance Baseline for Deep Feature Matching

DFM: A Performance Baseline for Deep Feature Matching Python (Pytorch) and Matlab (MatConvNet) implementations of our paper DFM: A Performance Baselin

143 Jan 02, 2023
Zalo AI challenge 2021 task hum to song

Zalo AI challenge 2021 task Hum to Song pipeline: Chuẩn bị dữ liệu cho quá trình train: Sửa các file đường dẫn trong config/preprocess.yaml raw_path:

Vo Van Phuc 105 Dec 16, 2022
A python library for time-series smoothing and outlier detection in a vectorized way.

tsmoothie A python library for time-series smoothing and outlier detection in a vectorized way. Overview tsmoothie computes, in a fast and efficient w

Marco Cerliani 517 Dec 28, 2022
A human-readable PyTorch implementation of "Self-attention Does Not Need O(n^2) Memory"

memory_efficient_attention.pytorch A human-readable PyTorch implementation of "Self-attention Does Not Need O(n^2) Memory" (Rabe&Staats'21). def effic

Ryuichiro Hataya 7 Dec 26, 2022
Boost learning for GNNs from the graph structure under challenging heterophily settings. (NeurIPS'20)

Beyond Homophily in Graph Neural Networks: Current Limitations and Effective Designs Jiong Zhu, Yujun Yan, Lingxiao Zhao, Mark Heimann, Leman Akoglu,

GEMS Lab: Graph Exploration & Mining at Scale, University of Michigan 70 Dec 18, 2022
VolumeGAN - 3D-aware Image Synthesis via Learning Structural and Textural Representations

VolumeGAN - 3D-aware Image Synthesis via Learning Structural and Textural Representations 3D-aware Image Synthesis via Learning Structural and Textura

GenForce: May Generative Force Be with You 116 Dec 26, 2022
An easier way to build neural search on the cloud

An easier way to build neural search on the cloud Jina is a deep learning-powered search framework for building cross-/multi-modal search systems (e.g

Jina AI 17k Jan 02, 2023
CVPR 2021 Challenge on Super-Resolution Space

Learning the Super-Resolution Space Challenge NTIRE 2021 at CVPR Learning the Super-Resolution Space challenge is held as a part of the 6th edition of

andreas 104 Oct 26, 2022
A framework for the elicitation, specification, formalization and understanding of requirements.

A framework for the elicitation, specification, formalization and understanding of requirements.

NASA - Software V&V 161 Jan 03, 2023
Java and SHACL code commented in the paper "Towards compliance checking in reified I/O logic via SHACL" submitted to ICAIL 2021

shRIOL The subfolder shRIOL contains Java files to execute the SHACL files on the OWL ontology. To compile the Java files: "javac -cp ./src/;./lib/* -

1 Dec 06, 2022
On Size-Oriented Long-Tailed Graph Classification of Graph Neural Networks

On Size-Oriented Long-Tailed Graph Classification of Graph Neural Networks We provide the code (in PyTorch) and datasets for our paper "On Size-Orient

Zemin Liu 4 Jun 18, 2022
[CVPR2021] De-rendering the World's Revolutionary Artefacts

De-rendering the World's Revolutionary Artefacts Project Page | Video | Paper In CVPR 2021 Shangzhe Wu1,4, Ameesh Makadia4, Jiajun Wu2, Noah Snavely4,

49 Nov 06, 2022
Neural Contours: Learning to Draw Lines from 3D Shapes (CVPR2020)

Neural Contours: Learning to Draw Lines from 3D Shapes This repository contains the PyTorch implementation for CVPR 2020 Paper "Neural Contours: Learn

93 Dec 16, 2022
[IROS2021] NYU-VPR: Long-Term Visual Place Recognition Benchmark with View Direction and Data Anonymization Influences

NYU-VPR This repository provides the experiment code for the paper Long-Term Visual Place Recognition Benchmark with View Direction and Data Anonymiza

Automation and Intelligence for Civil Engineering (AI4CE) Lab @ NYU 22 Sep 28, 2022
Plug-n-Play Reinforcement Learning in Python with OpenAI Gym and JAX

coax is built on top of JAX, but it doesn't have an explicit dependence on the jax python package. The reason is that your version of jaxlib will depend on your CUDA version.

128 Dec 27, 2022
Advances in Neural Information Processing Systems (NeurIPS), 2020.

What is being transferred in transfer learning? This repo contains the code for the following paper: Behnam Neyshabur*, Hanie Sedghi*, Chiyuan Zhang*.

Google Research 36 Aug 26, 2022
AdelaiDepth is an open source toolbox for monocular depth prediction.

AdelaiDepth is an open source toolbox for monocular depth prediction.

Adelaide Intelligent Machines (AIM) Group 743 Jan 01, 2023
Multi Task Vision and Language

12-in-1: Multi-Task Vision and Language Representation Learning Please cite the following if you use this code. Code and pre-trained models for 12-in-

Facebook Research 712 Dec 19, 2022
Libraries, tools and tasks created and used at DeepMind Robotics.

dm_robotics: Libraries, tools, and tasks created and used for Robotics research at DeepMind. Package overview Package Summary Transformations Rigid bo

DeepMind 273 Jan 06, 2023