TensorDebugger (TDB) is a visual debugger for deep learning. It extends TensorFlow with breakpoints + real-time visualization of the data flowing through the computational graph

Related tags

Data Visualizationtdb
Overview

TDB

*Note: This project is no longer actively being maintained. Please check out the official tfdbg debugger

TensorDebugger (TDB) is a visual debugger for deep learning. It extends TensorFlow (Google's Deep Learning framework) with breakpoints + real-time visualization of the data flowing through the computational graph.

Video Demo

Specifically, TDB is the combination of a Python library and a Jupyter notebook extension, built around Google's TensorFlow framework. Together, these extend TensorFlow with the following features:

  • Breakpoints: Set breakpoints on Ops and Tensors in the graph. Graph execution is paused on breakpoints and resumed by the user (via tdb.c()) Debugging features can be used with or without the visualization frontend.
  • Arbitrary Summary Plots: Real-time visualization of high-level information (e.g. histograms, gradient magnitudes, weight saturation) while the network is being trained. Supports arbitrary, user-defined plot functions.
  • Flexible: Mix user-defined Python and plotting functions with TensorFlow Nodes. These take in tf.Tensors and output placeholder nodes to be plugged into TensorFlow nodes. The below diagram illustrates how TDB nodes can be mixed with the TensorFlow graph.

heterogenous

Motivations

Modern machine learning models are parametrically complex and require considerable intuition to fine-tune properly.

In particular, Deep Learning methods are especially powerful, but hard to interpret in regards to their capabilities and learned representations.

Can we enable better understanding of how neural nets learn, without having to change model code or sacrifice performance? Can I finish my thesis on time?

TDB addresses these challenges by providing run-time visualization tools for neural nets. Real-time visual debugging allows training bugs to be detected sooner, thereby reducing the iteration time needed to build the right model.

Setup

To install the Python library,

pip install tfdebugger

To install the Jupyter Notebook extension, run the following in a Python terminal (you will need to have IPython or Jupyter installed)

import notebook.nbextensions
import urllib
import zipfile
SOURCE_URL = 'https://github.com/ericjang/tdb/releases/download/tdb_ext_v0.1/tdb_ext.zip'
urllib.urlretrieve(SOURCE_URL, 'tdb_ext.zip')
with zipfile.ZipFile('tdb_ext.zip', "r") as z:
    z.extractall("")
notebook.nbextensions.install_nbextension('tdb_ext',user=True)

Tutorial

To get started, check out the MNIST Visualization Demo. More examples and visualizations to come soon.

User Guide

Debugging

Start

status,result=tdb.debug(evals,feed_dict=None,breakpoints=None,break_immediately=False,session=None)

debug() behaves just like Tensorflow's Session.run(). If a breakpoint is hit, status is set to 'PAUSED' and result is set to None. Otherwise, status is set to 'FINISHED' and result is set to a list of evaluated values.

Continue

status,result=tdb.c()

Continues execution of a paused session, until the next breakpoint or end. Behaves like debug.

Step

status,result=tdb.s()

Evaluate the next node, then pause immediately to await user input. Unless we have reached the end of the execution queue, status will remain 'PAUSED'. result is set to the value of the node we just evaluated.

Where

q=tdb.get_exe_queue()

Return value: list of remaining nodes to be evaluated, in order.

print

val=tdb.get_value(node)

Returns value of an evaluated node (a string name or a tf.Tensor)

Custom Nodes

TDB supports 2 types of custom Ops:

Python

Here is an example of mixing tdb.PythonOps with TensorFlow.

Define the following function:

def myadd(ctx,a,b):
	return a+b
a=tf.constant(2)
b=tf.constant(3)
c=tdb.python_op(myadd,inputs=[a,b],outputs=[tf.placeholder(tf.int32)]) # a+b
d=tf.neg(c)
status,result=tdb.debug([d], feed_dict=None, breakpoints=None, break_immediately=False)	

When myadd gets evaluated, ctx is the instance of the PythonOp that it belongs to. You can use ctx to store state information (i.e. accumulate loss history).

Plotting

PlotOps are a special instance of PythonOp that send graphical output to the frontend.

This only works with Matplotlib at the moment, but other plotting backends (Seaborn, Bokeh, Plotly) are coming soon.

def watch_loss(ctx,loss):
  if not hasattr(ctx, 'loss_history'):
    ctx.loss_history=[]
  ctx.loss_history.append(loss)
  plt.plot(ctx.loss_history)
  plt.ylabel('loss')
ploss=tdb.plot_op(viz.watch_loss,inputs=[loss])

Refer to the MNIST Visualization Demo for more examples. You can also find more examples in the tests/ directory.

FAQ

Is TDB affiliated with TensorFlow?

No, but it is built on top of it.

What is TDB good for?

TDB is especially useful at the model prototyping stage and verifying correctness in an intuitive manner. It is also useful for high-level visualization of hidden layers during training.

How is TDB different from TensorBoard?

TensorBoard is a suite of visualization tools included with Tensorflow. Both TDB and TensorBoard attach auxiliary nodes to the TensorFlow graph in order to inspect data.

TensorBoard cannot be used concurrently with running a TensorFlow graph; log files must be written first. TDB interfaces directly with the execution of a TensorFlow graph, and allows for stepping through execution one node at a time.

Out of the box, TensorBoard currently only supports logging for a few predefined data formats.

TDB is to TensorBoard as GDB is to printf. Both are useful in different contexts.

License

Apache 2.0

Comments
  • Connecting debugger and TensorFlow

    Connecting debugger and TensorFlow

    I have followed the instructions and changed the example on two computers:

    sys.path.append('/home/evjang/thesis/tensor_debugger')

    sys.path.append('/home/lee/softwareinstalled/anaconda3-5/tdb_ext')

    sys.path.append('/home/mylao/tdb')

    Is this the correct location? I get this message: “Waiting for TDB to connect...”

    The MNIST exapmle was not in the tdb_ext download so I cloned TDB from Git also. https://github.com/ericjang/tdb/releases/download/tdb_ext_v0.1/tdb_ext.zip https://github.com/ericjang/tdb.git


    import notebook.nbextensions import urllib import zipfile SOURCE_URL = 'https://github.com/ericjang/tdb/releases/download/tdb_ext_v0.1/tdb_ext.zip' urllib.urlretrieve(SOURCE_URL, 'tdb_ext.zip') with zipfile.ZipFile('tdb_ext.zip', "r") as z: z.extractall("") notebook.nbextensions.install_nbextension('tdb_ext',user=True)

    There has been some change, I think it is supposed to be like this now: http://stackoverflow.com/questions/17960942/attributeerror-module-object-has-no-attribute-urlretrieve

    import urllib.request data = urllib.request.urlretrieve("http://...")


    I foolishly thought this comment was changing the location was was trying to modify it there!

    sys.path.append('/home/

    Now I think it means to change /home/.bashrc Here is a helpful note for noobs like me:

    add this line to the bottom of /home/.bashrc

    export PATH="/home/lee/softwareInstalled/anaconda3-5/tdb_ext:$PATH"

    refresh .bashrc with . ~/.bashrc or logout and logback in

    It seems to load tensorflow and urllib but not the other imports.

    This is the bottom of /home/.bashrc

    added by Anaconda3 2.4.1 installer

    export PATH="/home/lee/anaconda3/bin:$PATH" export PATH="/home/lee/softwareInstalled/anaconda3-5/tdb_ext:$PATH" export PATH="/home/lee/softwareInstalled/anaconda3-5/tdb_ext/tdb:$PATH" export PATH="/home/lee/softwareinstalled/anaconda3-5/tdb_ext/tdb/tdb/examples:$PATH"

    [email protected]:~$ echo $PATH /home/lee/softwareInstalled/anaconda3-5/tdb_ext/tdb:/home/lee/softwareInstalled/anaconda3-5/tdb_ext:/home/lee/anaconda3/bin:/home/lee/softwareInstalled/anaconda3-5/tdb_ext/tdb:/home/lee/anaconda3/bin:/home/lee/softwareInstalled/anaconda3-5/tdb_ext:/home/lee/anaconda3/bin:/home/lee/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

    import tdb from tdb.examples import mnist, viz import matplotlib.pyplot as plt import tensorflow as tf

    import urllib

    ImportError Traceback (most recent call last) in () 5 #refresh .bashrc with . ~/.bashrc or logout and logback in 6 ----> 7 import tdb 8 from tdb.examples import mnist, viz 9 import matplotlib.pyplot as plt

    /home/lee/anaconda3/lib/python3.5/site-packages/tdb/init.py in () 6 """ 7 ----> 8 from interface import debug, c, s, get_exe_queue, get_value 9 import op_store 10 from plot_op import plot_op

    ImportError: No module named 'interface'


    I uncommented this line, now I get: sys.path.append('/home/lee/softwareinstalled/anaconda3-5/tdb_ext')

    ----> 2 sys.path.append('/home/lee/softwareinstalled/anaconda3-5/tdb_ext')

    NameError: name 'sys' is not defined


    I uncommented this line so the 'sys' error goes away. import sys

    Now I am back to this error:

    7 import tdb 8 from tdb.examples import mnist, viz 9 import matplotlib.pyplot as plt

    /home/lee/anaconda3/lib/python3.5/site-packages/tdb/init.py in () 6 """ 7 ----> 8 from interface import debug, c, s, get_exe_queue, get_value 9 import op_store 10 from plot_op import plot_op

    ImportError: No module named 'interface'


    Now I have this: import sys sys.path.append('/home/lee/softwareinstalled/anaconda3-5/tdb_ext') sys.path.append('/home/lee/softwareinstalled/anaconda3-5/tdb_ext/tdb/tdb/') sys.path.append('/usr/local/lib/python2.7/dist-packages/tensorflow')

    /home/lee/anaconda3/lib/python3.5/site-packages/tdb/init.py in () 6 """ 7 ----> 8 from interface import debug, c, s, get_exe_queue, get_value 9 import op_store 10 from plot_op import plot_op

    /home/lee/softwareinstalled/anaconda3-5/tdb_ext/tdb/tdb/interface.py in () 4 """ 5 ----> 6 import debug_session 7 8 # default session

    /home/lee/softwareinstalled/anaconda3-5/tdb_ext/tdb/tdb/debug_session.py in () 1 2 from ht_op import HTOp ----> 3 import op_store 4 import tensorflow as tf 5

    /home/lee/softwareinstalled/anaconda3-5/tdb_ext/tdb/tdb/op_store.py in () 1 from toposort import toposort, toposort_flatten 2 from transitive_closure import transitive_closure ----> 3 import tensorflow as tf 4 5 _ops={} # Map<string,tdb.PythonOp>

    ImportError: No module named 'tensorflow'


    [email protected]:~$ echo $PATH /usr/local/lib/python2.7/dist-packages/tensorflow: /home/lee/softwareinstalled/anaconda3-5/tdb_ext/tdb/tdb/examples: /home/lee/softwareInstalled/anaconda3-5/tdb_ext/tdb: /home/lee/softwareInstalled/anaconda3-5/tdb_ext: /home/lee/anaconda3/bin:/home/lee/softwareinstalled/anaconda3-5/tdb_ext/tdb/tdb/examples: /home/lee/softwareInstalled/anaconda3-5/tdb_ext/tdb:/home/lee/softwareInstalled/anaconda3-5/tdb_ext: /home/lee/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin: /usr/bin:/sbin:/bin:/usr/games: /usr/local/games

    [email protected]:~$ echo $PYTHONPATH


    Now it looks like this, still not finding TensorFlow:

    import sys sys.path.append('/home/lee/softwareinstalled/anaconda3-5/tdb_ext') sys.path.append('/home/lee/softwareinstalled/anaconda3-5/tdb_ext/tdb/tdb/') sys.path.append('/usr/local/lib/python2.7/dist-packages/tensorflow') print (sys.path)

    import tdb from tdb.examples import mnist, viz import matplotlib.pyplot as plt import tensorflow as tf import urllib

    ['', '/home/lee/anaconda3/lib/python35.zip', '/home/lee/anaconda3/lib/python3.5', '/home/lee/anaconda3/lib/python3.5/plat-linux', '/home/lee/anaconda3/lib/python3.5/lib-dynload', '/home/lee/anaconda3/lib/python3.5/site-packages/Sphinx-1.3.1-py3.5.egg', '/home/lee/anaconda3/lib/python3.5/site-packages/setuptools-19.4-py3.5.egg', '/home/lee/anaconda3/lib/python3.5/site-packages', '/home/lee/anaconda3/lib/python3.5/site-packages/cryptography-1.0.2-py3.5-linux-x86_64.egg', '/home/lee/anaconda3/lib/python3.5/site-packages/IPython/extensions', '/home/lee/.ipython', '/home/lee/softwareinstalled/anaconda3-5/tdb_ext', '/home/lee/softwareinstalled/anaconda3-5/tdb_ext/tdb/tdb/', '/usr/local/lib/python2.7/dist-packages/tensorflow']

    ImportError Traceback (most recent call last) in () 8 #refresh .bashrc with . ~/.bashrc or logout and logback in 9 ---> 10 import tdb 11 from tdb.examples import mnist, viz 12 import matplotlib.pyplot as plt

    /home/lee/anaconda3/lib/python3.5/site-packages/tdb/init.py in () 6 """ 7 ----> 8 from interface import debug, c, s, get_exe_queue, get_value 9 import op_store 10 from plot_op import plot_op

    /home/lee/softwareinstalled/anaconda3-5/tdb_ext/tdb/tdb/interface.py in () 4 """ 5 ----> 6 import debug_session 7 8 # default session

    /home/lee/softwareinstalled/anaconda3-5/tdb_ext/tdb/tdb/debug_session.py in () 1 2 from ht_op import HTOp ----> 3 import op_store 4 import tensorflow as tf 5

    /home/lee/softwareinstalled/anaconda3-5/tdb_ext/tdb/tdb/op_store.py in () 1 from toposort import toposort, toposort_flatten 2 from transitive_closure import transitive_closure ----> 3 import tensorflow as tf 4 5 _ops={} # Map<string,tdb.PythonOp>

    ImportError: No module named 'tensorflow'

    Any advice would be appreciated Thanks, Lee

    opened by technologiclee 9
  • How to plot validation loss and training loss?

    How to plot validation loss and training loss?

    g=tf.get_default_graph()
    ploss=tdb.plot_op(viz.watch_loss,inputs=[loss])
    # plot realtime metrics
        status,result=tdb.debug([loss,ploss,], feed_dict={inputs: data.train.X, outputs: data.train.labels},, session=sess)
    

    Works on plotting the training loss.

    But if I try:

    g=tf.get_default_graph()
    ploss=tdb.plot_op(viz.watch_loss,inputs=[loss])
    # plot realtime metrics
        status,result=tdb.debug([loss,ploss,], feed_dict={inputs: data.validation.X, outputs: data.validation.labels}, session=sess)
    

    But this doesn't work. Is there an example of how to also plot training and validation loss on the same plot?

    Thanks so much.

    opened by bcordo 1
  • IOError: Not a gzipped file

    IOError: Not a gzipped file

    I stepped throught the example three times. First after it installed, it gave some numerical output and no images. Then I restarted the computer. Second it gave the following errors and no images. The third time, no numerical output and no images. Are there other packages that should be installed in the virtual environment for the graphs to work?

    Step 4 works: train-images-idx3-ubyte.gz train-labels-idx1-ubyte.gz t10k-images-idx3-ubyte.gz t10k-labels-idx1-ubyte.gz

    Step 5:

    (train_data, 
     train_labels, 
     validation_data, 
     validation_labels, 
     test_data, 
     test_labels) = mnist.get_data(download_dir)
    
    
    ('Extracting', '/tmp/train-images-idx3-ubyte.gz')
    ---------------------------------------------------------------------------
    IOError                                   Traceback (most recent call last)
    <ipython-input-7-aa08c9ebe098> in <module>()
          5  validation_labels,
          6  test_data,
    ----> 7  test_labels) = mnist.get_data(download_dir)
    
    /home/lee/.local/lib/python2.7/site-packages/tdb/examples/mnist.pyc in get_data(data_root)
         61 
         62   # Extract it into numpy arrays.
    ---> 63   train_data = extract_data(train_data_filename, 60000)
         64   train_labels = extract_labels(train_labels_filename, 60000)
         65   test_data = extract_data(test_data_filename, 10000)
    
    /home/lee/.local/lib/python2.7/site-packages/tdb/examples/mnist.pyc in extract_data(filename, num_images)
         35   print('Extracting', filename)
         36   with gzip.open(filename) as bytestream:
    ---> 37     bytestream.read(16)
         38     buf = bytestream.read(IMAGE_SIZE * IMAGE_SIZE * num_images)
         39     data = np.frombuffer(buf, dtype=np.uint8).astype(np.float32)
    
    /home/lee/anaconda2/lib/python2.7/gzip.pyc in read(self, size)
        266             try:
        267                 while size > self.extrasize:
    --> 268                     self._read(readsize)
        269                     readsize = min(self.max_read_chunk, readsize * 2)
        270             except EOFError:
    
    /home/lee/anaconda2/lib/python2.7/gzip.pyc in _read(self, size)
        301 
        302             self._init_read()
    --> 303             self._read_gzip_header()
        304             self.decompress = zlib.decompressobj(-zlib.MAX_WBITS)
        305             self._new_member = False
    
    /home/lee/anaconda2/lib/python2.7/gzip.pyc in _read_gzip_header(self)
        195         magic = self.fileobj.read(2)
        196         if magic != '\037\213':
    --> 197             raise IOError, 'Not a gzipped file'
        198         method = ord( self.fileobj.read(1) )
        199         if method != 8:
    
    IOError: Not a gzipped file
    
    
    opened by technologiclee 1
  • How to run in python3

    How to run in python3

    First of all, Thank you for this. It is awesome.

    Second, I have started porting the code to python3 (all my env is python3) and I have got the extension and the plots to show on Jupyter. However I am now running into problems when setting breakpoints. What happens is, once the bp is hit, the code keeps executing. I have looked at the code, and I don't know if I am using the bp capability wrong, or if there is issues with python3.

    Here is where I use tdb

    for _ in range(n_batches):
        batch = data_gen.get_batch(batch_size)
        feed = {X: batch[0], y: one_hot(batch[1], n_classes)}
        stat, res = tdb.debug([train_step, cross_entropy, accuracy, y_],
                                          feed_dict=feed, break_immediately=True,
                                          session=sess)
    

    And this is the output when I run that:

    Breakpoint triggered. Next Node:  SoftmaxCrossEntropyWithLogits_1:0
    Breakpoint triggered. Next Node:  SoftmaxCrossEntropyWithLogits_1:0
    Breakpoint triggered. Next Node:  SoftmaxCrossEntropyWithLogits_1:0
    Breakpoint triggered. Next Node:  SoftmaxCrossEntropyWithLogits_1:0
    Breakpoint triggered. Next Node:  SoftmaxCrossEntropyWithLogits_1:0
    Breakpoint triggered. Next Node:  SoftmaxCrossEntropyWithLogits_1:0
    Breakpoint triggered. Next Node:  SoftmaxCrossEntropyWithLogits_1:0
    Breakpoint triggered. Next Node:  SoftmaxCrossEntropyWithLogits_1:0
    

    It doesn't stop until after the code has executed. My changes to make the code python3 compatible include very simple things:

    • Make all the imports relative, i.e. change import asdf for from . import asdf
    • Change StringIO for io.BytesIO.
    • Change base64.b64encode for base64.encodebytes.

    I have the suspicion that this is the intended behavior and that I should check the value of status and stop execution based on it, however I want to make sure this is the case.

    opened by green-john 0
  • Cannot load required js.

    Cannot load required js.

    I have installed the 'tdb' by

    python notebook.nbextensions.install_nbextension('tdb_ext',user=True)

    But when

    %%javascript Jupyter.utils.load_extensions('tdb_ext/main')

    However, on the right of Chrome, there was a panel show 'Waiting for TDB to connect...'

    Besides, Chrome show errors

    Failed http://localhost:8888/nbextensions/tdb_ext.js to load resource: the server responded with a status of 404 (Not Found)

    Could someone help #me?

    opened by fortyMiles 1
  • import tdb occurs error in python3.5

    import tdb occurs error in python3.5

    Traceback (most recent call last): File "", line 1, in File "/Users/shawn/anaconda/lib/python3.5/site-packages/tdb/init.py", line 8, in from interface import debug, c, s, get_exe_queue, get_value ImportError: No module named 'interface' >>> import tdb Traceback (most recent call last): File "", line 1, in File "/Users/shawn/anaconda/lib/python3.5/site-packages/tdb/init.py", line 8, in from interface import debug, c, s, get_exe_queue, get_value ImportError: No module named 'interface'

    opened by Shawn1993 4
  • Import tdb

    Import tdb

    Hi i am getting error while i use this command in jupyter note books, I check first two lines in the program, they are working fine, but i cant go pass this stage. Can you help me?

    import sys sys.path.append('C:\Users\kiran\Desktop\tdb-master')

    import tdb from tdb.examples import mnist, viz

    opened by kirangavini 0
  • How to set breakpoints?

    How to set breakpoints?

    Hi eric, this tool is cool. Could you show me some example about how to set breakpoints?

    status,result=tdb.debug(evals,feed_dict=None,breakpoints=None,break_immediately=False,session=None)

    How to config breakpoints argument in above code

    opened by jerryli1981 1
  • notebook.nbextensions: invalid syntax

    notebook.nbextensions: invalid syntax

    Hi everyone,

    I got this error message when run the script to install the Jupyter Notebook extension.

    ... notebook.nbextensions.install_nbextension('tdb_ext',user=True) File "", line 3 notebook.nbextensions.install_nbextension('tdb_ext',user=True) ^ SyntaxError: invalid syntax

    When I try to run this script on Jupter notebook, the script can run through without error message. However, when I run the whole demo script, I got the message: InternalError: cuDNN launch failure I think as the script on Jupyter notebook only install the extension virtually.

    copying /home/anhxtuan/Dropbox/0-PhD/1-Tutorials/TensorFlow/tdb_ext/main.js -> /home/anhxtuan/.local/share/jupyter/nbextensions/tdb_ext/main.js

    I think the correct path should be: /usr/local/share/jupyter/nbextensions/tdb_ext/main.js. Right?

    What could be the issue here and how can I resolve it?

    Btw, I have successfully installed the TDB library:

    sudo pip install tfdebugger [sudo] password for anhxtuan: Requirement already satisfied (use --upgrade to upgrade): tfdebugger in /usr/local/lib/python2.7/dist-packages Requirement already satisfied (use --upgrade to upgrade): toposort>=1.4 in /usr/local/lib/python2.7/dist-packages (from tfdebugger) Cleaning up...

    And I also can run the TensorFlow demo without TDB successfully, so I think it should not be a problem with cnDNN library.

    Thank you very much.

    opened by hnanhtuan 0
Releases(tdb_ext_v0.1)
Owner
Eric Jang
Robotics researcher at Google Brain
Eric Jang
YOPO is an interactive dashboard which generates various standard plots.

YOPO is an interactive dashboard which generates various standard plots.you can create various graphs and charts with a click of a button. This tool uses Dash and Flask in backend.

ADARSH C 38 Dec 20, 2022
This is a super simple visualization toolbox (script) for transformer attention visualization ✌

Trans_attention_vis This is a super simple visualization toolbox (script) for transformer attention visualization ✌ 1. How to prepare your attention m

Mingyu Wang 3 Jul 09, 2022
在原神中使用围栏绘图

yuanshen_draw 在原神中使用围栏绘图 文件说明 toLines.py 将一张图片转换为对应的线条集合,视频可以按帧转换。 draw.py 在原神家园里绘制一张线条图。 draw_video.py 在原神家园里绘制视频(自动按帧摆放,截图(win)并回收) cat_to_video.py

14 Oct 08, 2022
Simple Python interface for Graphviz

Simple Python interface for Graphviz

Sebastian Bank 1.3k Dec 26, 2022
An XLSX spreadsheet renderer for Django REST Framework.

drf-renderer-xlsx provides an XLSX renderer for Django REST Framework. It uses OpenPyXL to create the spreadsheet and returns the data.

The Wharton School 166 Dec 01, 2022
Create charts with Python in a very similar way to creating charts using Chart.js

Create charts with Python in a very similar way to creating charts using Chart.js. The charts created are fully configurable, interactive and modular and are displayed directly in the output of the t

Nicolas H 68 Dec 08, 2022
Pyan3 - Offline call graph generator for Python 3

Pyan takes one or more Python source files, performs a (rather superficial) static analysis, and constructs a directed graph of the objects in the combined source, and how they define or use each oth

Juha Jeronen 235 Jan 02, 2023
Python package to visualize and cluster partial dependence.

partial_dependence A python library for plotting partial dependence patterns of machine learning classifiers. The technique is a black box approach to

NYU Visualization Lab 25 Nov 14, 2022
Pretty Confusion Matrix

Pretty Confusion Matrix Why pretty confusion matrix? We can make confusion matrix by using matplotlib. However it is not so pretty. I want to make con

Junseo Ko 5 Nov 22, 2022
Fast 1D and 2D histogram functions in Python

About Sometimes you just want to compute simple 1D or 2D histograms with regular bins. Fast. No nonsense. Numpy's histogram functions are versatile, a

Thomas Robitaille 237 Dec 18, 2022
NumPy and Pandas interface to Big Data

Blaze translates a subset of modified NumPy and Pandas-like syntax to databases and other computing systems. Blaze allows Python users a familiar inte

Blaze 3.1k Jan 01, 2023
BGraph is a tool designed to generate dependencies graphs from Android.bp soong files.

BGraph BGraph is a tool designed to generate dependencies graphs from Android.bp soong files. Overview BGraph (for Build-Graphs) is a project aimed at

Quarkslab 10 Dec 19, 2022
Here I plotted data for the average test scores across schools and class sizes across school districts.

HW_02 Here I plotted data for the average test scores across schools and class sizes across school districts. Average Test Score by Race This graph re

7 Oct 27, 2021
Turn a STAC catalog into a dask-based xarray

StackSTAC Turn a list of STAC items into a 4D xarray DataArray (dims: time, band, y, x), including reprojection to a common grid. The array is a lazy

Gabe Joseph 148 Dec 19, 2022
Visualization Library

CamViz Overview // Installation // Demos // License Overview CamViz is a visualization library developed by the TRI-ML team with the goal of providing

Toyota Research Institute - Machine Learning 67 Nov 24, 2022
Create Badges with stats of Scratch User, Project and Studio. Use those badges in Github readmes, etc.

Scratch-Stats-Badge Create customized Badges with stats of Scratch User, Studio or Project. Use those badges in Github readmes, etc. Examples Document

Siddhesh Chavan 5 Aug 28, 2022
Graphing communities on Twitch.tv in a visually intuitive way

VisualizingTwitchCommunities This project maps communities of streamers on Twitch.tv based on shared viewership. The data is collected from the Twitch

Kiran Gershenfeld 312 Jan 07, 2023
Apache Superset is a Data Visualization and Data Exploration Platform

Superset A modern, enterprise-ready business intelligence web application. Why Superset? | Supported Databases | Installation and Configuration | Rele

The Apache Software Foundation 50k Jan 06, 2023
Python support for Godot 🐍🐍🐍

Godot Python, because you want Python on Godot ! The goal of this project is to provide Python language support as a scripting module for the Godot ga

Emmanuel Leblond 1.4k Jan 04, 2023
A flexible tool for creating, organizing, and sharing visualizations of live, rich data. Supports Torch and Numpy.

Visdom A flexible tool for creating, organizing, and sharing visualizations of live, rich data. Supports Python. Overview Concepts Setup Usage API To

FOSSASIA 9.4k Jan 07, 2023