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)

Restricted Boltzmann Machines in Python.

How to Use First, initialize an RBM with the desired number of visible and hidden units. rbm = RBM(num_visible = 6, num_hidden = 2) Next, train the m

Edwin Chen 928 Dec 30, 2022
PyTorch implementation for 3D human pose estimation

Towards 3D Human Pose Estimation in the Wild: a Weakly-supervised Approach This repository is the PyTorch implementation for the network presented in:

Xingyi Zhou 579 Dec 22, 2022
DeiT: Data-efficient Image Transformers

DeiT: Data-efficient Image Transformers This repository contains PyTorch evaluation code, training code and pretrained models for DeiT (Data-Efficient

Facebook Research 3.2k Jan 06, 2023
Official Implementation for HyperStyle: StyleGAN Inversion with HyperNetworks for Real Image Editing

HyperStyle: StyleGAN Inversion with HyperNetworks for Real Image Editing Yuval Alaluf*, Omer Tov*, Ron Mokady, Rinon Gal, Amit H. Bermano *Denotes equ

885 Jan 06, 2023
Code for Towards Unifying Behavioral and Response Diversity for Open-ended Learning in Zero-sum Games

Unifying Behavioral and Response Diversity for Open-ended Learning in Zero-sum Games How to run our algorithm? Create the new environment using: conda

MARL @ SJTU 8 Dec 27, 2022
3D Multi-Person Pose Estimation by Integrating Top-Down and Bottom-Up Networks

3D Multi-Person Pose Estimation by Integrating Top-Down and Bottom-Up Networks Introduction This repository contains the code and models for the follo

124 Jan 06, 2023
PyTorch implementations of Top-N recommendation, collaborative filtering recommenders.

PyTorch implementations of Top-N recommendation, collaborative filtering recommenders.

Yoonki Jeong 129 Dec 22, 2022
Sharing of contents on mitochondrial encounter networks

mito-network-sharing Sharing of contents on mitochondrial encounter networks Required: R with igraph, brainGraph, ggplot2, and XML libraries; igraph l

Stochastic Biology Group 0 Oct 01, 2021
Get 2D point positions (e.g., facial landmarks) projected on 3D mesh

points2d_projection_mesh Input 2D points (e.g. facial landmarks) on an image Camera parameters (extrinsic and intrinsic) of the image Aligned 3D mesh

5 Dec 08, 2022
CLADE - Efficient Semantic Image Synthesis via Class-Adaptive Normalization (TPAMI 2021)

Efficient Semantic Image Synthesis via Class-Adaptive Normalization (Accepted by TPAMI)

tzt 49 Nov 17, 2022
Baselines for TrajNet++

TrajNet++ : The Trajectory Forecasting Framework PyTorch implementation of Human Trajectory Forecasting in Crowds: A Deep Learning Perspective TrajNet

VITA lab at EPFL 183 Jan 05, 2023
CDTrans: Cross-domain Transformer for Unsupervised Domain Adaptation

[ICCV2021] TransReID: Transformer-based Object Re-Identification [pdf] The official repository for TransReID: Transformer-based Object Re-Identificati

DamoCV 569 Dec 30, 2022
Unofficial PyTorch implementation of Guided Dropout

Unofficial PyTorch implementation of Guided Dropout This is a simple implementation of Guided Dropout for research. We try to reproduce the algorithm

2 Jan 07, 2022
Bag of Tricks for Natural Policy Gradient Reinforcement Learning

Bag of Tricks for Natural Policy Gradient Reinforcement Learning [ArXiv] Setup Python 3.8.0 pip install -r req.txt Mujoco 200 license Main Files main.

Brennan Gebotys 1 Oct 10, 2022
Project Aquarium is a SUSE-sponsored open source project aiming at becoming an easy to use, rock solid storage appliance based on Ceph.

Project Aquarium Project Aquarium is a SUSE-sponsored open source project aiming at becoming an easy to use, rock solid storage appliance based on Cep

Aquarist Labs 73 Jul 21, 2022
Totally Versatile Miscellanea for Pytorch

Totally Versatile Miscellania for PyTorch Thomas Viehmann [email protected] Thi

Thomas Viehmann 428 Dec 28, 2022
Text Extraction Formulation + Feedback Loop for state-of-the-art WSD (EMNLP 2021)

ConSeC is a novel approach to Word Sense Disambiguation (WSD), accepted at EMNLP 2021. It frames WSD as a text extraction task and features a feedback loop strategy that allows the disambiguation of

Sapienza NLP group 36 Dec 13, 2022
Voice Conversion by CycleGAN (语音克隆/语音转换):CycleGAN-VC3

CycleGAN-VC3-PyTorch 中文说明 | English This code is a PyTorch implementation for paper: CycleGAN-VC3: Examining and Improving CycleGAN-VCs for Mel-spectr

Kun Ma 110 Dec 24, 2022
A cool little repl-based simulation written in Python

A cool little repl-based simulation written in Python planned to integrate machine-learning into itself to have AI battle to the death before your eye

Em 6 Sep 17, 2022
Vrcwatch - Supply the local time to VRChat as Avatar Parameters through OSC

English: README-EN.md VRCWatch VRCWatch は、VRChat 内のアバター向けに現在時刻を送信するためのプログラムです。 使

Kosaki Mezumona 17 Nov 30, 2022