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)

Composable transformations of Python+NumPy programsComposable transformations of Python+NumPy programs

Chex Chex is a library of utilities for helping to write reliable JAX code. This includes utils to help: Instrument your code (e.g. assertions) Debug

DeepMind 506 Jan 8, 2023
MLP-Numpy - A simple modular implementation of Multi Layer Perceptron in pure Numpy.

MLP-Numpy A simple modular implementation of Multi Layer Perceptron in pure Numpy. I used the Iris dataset from scikit-learn library for the experimen

Soroush Omranpour 1 Jan 1, 2022
MMdnn is a set of tools to help users inter-operate among different deep learning frameworks. E.g. model conversion and visualization. Convert models between Caffe, Keras, MXNet, Tensorflow, CNTK, PyTorch Onnx and CoreML.

MMdnn MMdnn is a comprehensive and cross-framework tool to convert, visualize and diagnose deep learning (DL) models. The "MM" stands for model manage

Microsoft 5.7k Jan 9, 2023
InsightFace: 2D and 3D Face Analysis Project on MXNet and PyTorch

InsightFace: 2D and 3D Face Analysis Project on MXNet and PyTorch

Deep Insight 13.2k Jan 6, 2023
Simple, efficient and flexible vision toolbox for mxnet framework.

MXbox: Simple, efficient and flexible vision toolbox for mxnet framework. MXbox is a toolbox aiming to provide a general and simple interface for visi

Ligeng Zhu 31 Oct 19, 2019
Modular Probabilistic Programming on MXNet

MXFusion | | | | Tutorials | Documentation | Contribution Guide MXFusion is a modular deep probabilistic programming library. With MXFusion Modules yo

Amazon 100 Dec 10, 2022
MXNet implementation for: Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution

Octave Convolution MXNet implementation for: Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution Imag

Meta Research 549 Dec 28, 2022
Reproduce ResNet-v2(Identity Mappings in Deep Residual Networks) with MXNet

Reproduce ResNet-v2 using MXNet Requirements Install MXNet on a machine with CUDA GPU, and it's better also installed with cuDNN v5 Please fix the ran

Wei Wu 531 Dec 4, 2022
Devkit for 3D -- Some utils for 3D object detection based on Numpy and Pytorch

D3D Devkit for 3D: Some utils for 3D object detection and tracking based on Numpy and Pytorch Please consider siting my work if you find this library

Jacob Zhong 27 Jul 7, 2022
TensorFlow, PyTorch and Numpy layers for generating Orthogonal Polynomials

OrthNet TensorFlow, PyTorch and Numpy layers for generating multi-dimensional Orthogonal Polynomials 1. Installation 2. Usage 3. Polynomials 4. Base C

Chuan 29 May 25, 2022
Rewrite ultralytics/yolov5 v6.0 opencv inference code based on numpy, no need to rely on pytorch

Rewrite ultralytics/yolov5 v6.0 opencv inference code based on numpy, no need to rely on pytorch; pre-processing and post-processing using numpy instead of pytroch.

炼丹去了 21 Dec 12, 2022
Cupytorch - A small framework mimics PyTorch using CuPy or NumPy

CuPyTorch CuPyTorch是一个小型PyTorch,名字来源于: 不同于已有的几个使用NumPy实现PyTorch的开源项目,本项目通过CuPy支持

Xingkai Yu 23 Aug 17, 2022
A numpy-based implementation of RANSAC for fundamental matrix and homography estimation. The degeneracy updating and local optimization components are included and optional.

Description A numpy-based implementation of RANSAC for fundamental matrix and homography estimation. The degeneracy updating and local optimization co

AoxiangFan 9 Nov 10, 2022
Implements Stacked-RNN in numpy and torch with manual forward and backward functions

Recurrent Neural Networks Implements simple recurrent network and a stacked recurrent network in numpy and torch respectively. Both flavours implement

Vishal R 1 Nov 16, 2021
Implementing Graph Convolutional Networks and Information Retrieval Mechanisms using pure Python and NumPy

Implementing Graph Convolutional Networks and Information Retrieval Mechanisms using pure Python and NumPy

Noah Getz 3 Jun 22, 2022
Machine Learning From Scratch. Bare bones NumPy implementations of machine learning models and algorithms with a focus on accessibility. Aims to cover everything from linear regression to deep learning.

Machine Learning From Scratch About Python implementations of some of the fundamental Machine Learning models and algorithms from scratch. The purpose

Erik Linder-Norén 21.8k Jan 9, 2023
Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more

JAX: Autograd and XLA Quickstart | Transformations | Install guide | Neural net libraries | Change logs | Reference docs | Code search News: JAX tops

Google 21.3k Jan 1, 2023
Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more

JAX: Autograd and XLA Quickstart | Transformations | Install guide | Neural net libraries | Change logs | Reference docs | Code search News: JAX tops

Google 11.4k Feb 13, 2021
Deploy tensorflow graphs for fast evaluation and export to tensorflow-less environments running numpy.

Deploy tensorflow graphs for fast evaluation and export to tensorflow-less environments running numpy. Now with tensorflow 1.0 support. Evaluation usa

Marcel R. 349 Aug 6, 2022