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)

LibMTL: A PyTorch Library for Multi-Task Learning

LibMTL LibMTL is an open-source library built on PyTorch for Multi-Task Learning (MTL). See the latest documentation for detailed introductions and AP

765 Jan 06, 2023
Meta-learning for NLP

Self-Supervised Meta-Learning for Few-Shot Natural Language Classification Tasks Code for training the meta-learning models and fine-tuning on downstr

IESL 43 Nov 08, 2022
Residual Dense Net De-Interlace Filter (RDNDIF)

Residual Dense Net De-Interlace Filter (RDNDIF) Work in progress deep de-interlacer filter. It is based on the architecture proposed by Bernasconi et

Louis 7 Feb 15, 2022
A Sign Language detection project using Mediapipe landmark detection and Tensorflow LSTM's

sign-language-detection A Sign Language detection project using Mediapipe landmark detection and Tensorflow LSTM. The project is built for a vocabular

Hashim 4 Feb 06, 2022
A PyTorch Implementation of "SINE: Scalable Incomplete Network Embedding" (ICDM 2018).

Scalable Incomplete Network Embedding ⠀⠀ A PyTorch implementation of Scalable Incomplete Network Embedding (ICDM 2018). Abstract Attributed network em

Benedek Rozemberczki 69 Sep 22, 2022
Using contrastive learning and OpenAI's CLIP to find good embeddings for images with lossy transformations

The official code for the paper "Inverse Problems Leveraging Pre-trained Contrastive Representations" (to appear in NeurIPS 2021).

Sriram Ravula 26 Dec 10, 2022
Food recognition model using convolutional neural network & computer vision

Food recognition model using convolutional neural network & computer vision. The goal is to match or beat the DeepFood Research Paper

Hemanth Chandran 1 Jan 13, 2022
Implementation of ViViT: A Video Vision Transformer

ViViT: A Video Vision Transformer Unofficial implementation of ViViT: A Video Vision Transformer. Notes: This is in WIP. Model 2 is implemented, Model

Rishikesh (ऋषिकेश) 297 Jan 06, 2023
Explicable Reward Design for Reinforcement Learning Agents [NeurIPS'21]

Explicable Reward Design for Reinforcement Learning Agents [NeurIPS'21]

3 May 12, 2022
A Python module for parallel optimization of expensive black-box functions

blackbox: A Python module for parallel optimization of expensive black-box functions What is this? A minimalistic and easy-to-use Python module that e

Paul Knysh 426 Dec 08, 2022
CTF Challenge for CSAW Finals 2021

Terminal Velocity Misc CTF Challenge for CSAW Finals 2021 This is a challenge I've had in mind for almost 15 years and never got around to building un

Jordan 6 Jul 30, 2022
Regularized Frank-Wolfe for Dense CRFs: Generalizing Mean Field and Beyond

CRF - Conditional Random Fields A library for dense conditional random fields (CRFs). This is the official accompanying code for the paper Regularized

Đ.Khuê Lê-Huu 21 Nov 26, 2022
CIFAR-10_train-test - training and testing codes for dataset CIFAR-10

CIFAR-10_train-test - training and testing codes for dataset CIFAR-10

Frederick Wang 3 Apr 26, 2022
Contrastive Learning of Structured World Models

Contrastive Learning of Structured World Models This repository contains the official PyTorch implementation of: Contrastive Learning of Structured Wo

Thomas Kipf 371 Jan 06, 2023
Best Practices on Recommendation Systems

Recommenders What's New (February 4, 2021) We have a new relase Recommenders 2021.2! It comes with lots of bug fixes, optimizations and 3 new algorith

Microsoft 14.8k Jan 03, 2023
This is the official PyTorch implementation of the paper "TransFG: A Transformer Architecture for Fine-grained Recognition" (Ju He, Jie-Neng Chen, Shuai Liu, Adam Kortylewski, Cheng Yang, Yutong Bai, Changhu Wang, Alan Yuille).

TransFG: A Transformer Architecture for Fine-grained Recognition Official PyTorch code for the paper: TransFG: A Transformer Architecture for Fine-gra

Ju He 307 Jan 03, 2023
Does MAML Only Work via Feature Re-use? A Data Set Centric Perspective

Does-MAML-Only-Work-via-Feature-Re-use-A-Data-Set-Centric-Perspective Does MAML Only Work via Feature Re-use? A Data Set Centric Perspective Installin

2 Nov 07, 2022
BiSeNet based on pytorch

BiSeNet BiSeNet based on pytorch 0.4.1 and python 3.6 Dataset Download CamVid dataset from Google Drive or Baidu Yun(6xw4). Pretrained model Download

367 Dec 26, 2022
Python/Rust implementations and notes from Proofs Arguments and Zero Knowledge

What is this? This is where I'll be collecting resources related to the Study Group on Dr. Justin Thaler's Proofs Arguments And Zero Knowledge Book. T

Thor 66 Jan 04, 2023
Fast and customizable reconnaissance workflow tool based on simple YAML based DSL.

Fast and customizable reconnaissance workflow tool based on simple YAML based DSL, with support of notifications and distributed workload of that work

Américo Júnior 3 Mar 11, 2022