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
Data Visualizations for the #30DayChartChallenge

The #30DayChartChallenge This repository contains all the charts made for the #30DayChartChallenge during the month of April. This project aims to exp

Isaac Arroyo 7 Sep 20, 2022
EPViz is a tool to aid researchers in developing, validating, and reporting their predictive modeling outputs.

EPViz (EEG Prediction Visualizer) EPViz is a tool to aid researchers in developing, validating, and reporting their predictive modeling outputs. A lig

Jeff 2 Oct 19, 2022
A python visualization of the A* path finding algorithm

A python visualization of the A* path finding algorithm. It allows you to pick your start, end location and make obstacles and then view the process of finding the shortest path. You can also choose

Kimeon 4 Aug 02, 2022
Graphical display tools, to help students debug their class implementations in the Carcassonne family of projects

carcassonne_tools Graphical display tools, to help students debug their class implementations in the Carcassonne family of projects NOTE NOTE NOTE The

1 Nov 08, 2021
Example Code Notebooks for Data Visualization in Python

This repository contains sample code scripts for creating awesome data visualizations from scratch using different python libraries (such as matplotli

Javed Ali 27 Jan 04, 2023
matplotlib: plotting with Python

Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python. Check out our home page for more inform

Matplotlib Developers 16.7k Jan 08, 2023
2D maze path solver visualizer implemented with python

2D maze path solver visualizer implemented with python

SS 14 Dec 21, 2022
Generate SVG (dark/light) images visualizing (private/public) GitHub repo statistics for profile/website.

Generate daily updated visualizations of GitHub user and repository statistics from the GitHub API using GitHub Actions for any combination of private and public repositories, whether owned or contri

Adam Ross 2 Dec 16, 2022
Simple Python interface for Graphviz

Simple Python interface for Graphviz

Sebastian Bank 1.3k Dec 26, 2022
Leyna's Visualizing Data With Python

Leyna's Visualizing Data Below is information on the number of bilingual students in three school districts in Massachusetts. You will also find infor

11 Oct 28, 2021
BrowZen correlates your emotional states with the web sites you visit to give you actionable insights about how you spend your time browsing the web.

BrowZen BrowZen correlates your emotional states with the web sites you visit to give you actionable insights about how you spend your time browsing t

Nick Bild 36 Sep 28, 2022
Some useful extensions for Matplotlib.

mplx Some useful extensions for Matplotlib. Contour plots for functions with discontinuities plt.contour mplx.contour(max_jump=1.0) Matplotlib has pro

Nico Schlömer 519 Dec 30, 2022
nvitop, an interactive NVIDIA-GPU process viewer, the one-stop solution for GPU process management

An interactive NVIDIA-GPU process viewer, the one-stop solution for GPU process management.

Xuehai Pan 1.3k Jan 02, 2023
GitHub English Top Charts

Help you discover excellent English projects and get rid of the interference of other spoken language.

kon9chunkit 529 Jan 02, 2023
Realtime Web Apps and Dashboards for Python and R

H2O Wave Realtime Web Apps and Dashboards for Python and R New! R Language API Build and control Wave dashboards using R! New! Easily integrate AI/ML

H2O.ai 3.4k Jan 06, 2023
Piglet-shaders - PoC of custom shaders for Piglet

Piglet custom shader PoC This is a PoC for compiling Piglet fragment shaders usi

6 Mar 10, 2022
A python script to visualise explain plans as a graph using graphviz

README Needs to be improved Prerequisites Need to have graphiz installed on the machine. Refer to https://graphviz.readthedocs.io/en/stable/manual.htm

Edward Mallia 1 Sep 28, 2021
A GUI for Pandas DataFrames

About Demo Installation Usage Features More Info About PandasGUI is a GUI for viewing, plotting and analyzing Pandas DataFrames. Demo Installation Ins

Adam Rose 2.8k Dec 24, 2022
Statistical data visualization using matplotlib

seaborn: statistical data visualization Seaborn is a Python visualization library based on matplotlib. It provides a high-level interface for drawing

Michael Waskom 10.2k Dec 30, 2022
I'm doing Genuary, an aritifiacilly generated month to build code that make beautiful things

Genuary 2022 I'm doing Genuary, an aritifiacilly generated month to build code that make beautiful things. Every day there is a new prompt for making

Joaquín Feltes 1 Jan 10, 2022