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
Render tokei's output to interactive sunburst chart.

Render tokei's output to interactive sunburst chart.

134 Dec 15, 2022
Generate graphs with NetworkX, natively visualize with D3.js and pywebview

webview_d3 This is some PoC code to render graphs created with NetworkX natively using D3.js and pywebview. The main benifit of this approac

byt3bl33d3r 68 Aug 18, 2022
Machine learning beginner to Kaggle competitor in 30 days. Non-coders welcome. The program starts Monday, August 2, and lasts four weeks. It's designed for people who want to learn machine learning.

30-Days-of-ML-Kaggle 🔥 About the Hands On Program 💻 Machine learning beginner → Kaggle competitor in 30 days. Non-coders welcome The program starts

Roja Achary 145 Jan 01, 2023
Visualization ideas for data science

Nuance I use Nuance to curate varied visualization thoughts during my data scientist career. It is not yet a package but a list of small ideas. Welcom

Li Jiangchun 16 Nov 03, 2022
Data science project for exploratory analysis on the kcse grades dataset (Kamilimu Data Science Track)

Kcse-Data-Analysis Data science project for exploratory analysis on the kcse grades dataset (Kamilimu Data Science Track) Findings The performance of

MUGO BRIAN 1 Feb 23, 2022
Browse Dash docsets inside emacs

Helm Dash What's it This package uses Dash docsets inside emacs to browse documentation. Here's an article explaining the basic usage of it. It doesn'

504 Dec 15, 2022
With Holoviews, your data visualizes itself.

HoloViews Stop plotting your data - annotate your data and let it visualize itself. HoloViews is an open-source Python library designed to make data a

HoloViz 2.3k Jan 02, 2023
Pglive - Pglive package adds support for thread-safe live plotting to pyqtgraph

Live pyqtgraph plot Pglive package adds support for thread-safe live plotting to

Martin Domaracký 15 Dec 10, 2022
The open-source tool for building high-quality datasets and computer vision models

The open-source tool for building high-quality datasets and computer vision models. Website • Docs • Try it Now • Tutorials • Examples • Blog • Commun

Voxel51 2.4k Jan 07, 2023
A small collection of tools made by me, that you can use to visualize atomic orbitals in both 2D and 3D in different aspects.

Orbitals in Python A small collection of tools made by me, that you can use to visualize atomic orbitals in both 2D and 3D in different aspects, and o

Prakrisht Dahiya 1 Nov 25, 2021
Create a table with row explanations, column headers, using matplotlib

Create a table with row explanations, column headers, using matplotlib. Intended usage was a small table containing a custom heatmap.

4 Aug 14, 2022
A pandas extension that solves all problems of Jalai/Iraninan/Shamsi dates

Jalali Pandas Extentsion A pandas extension that solves all problems of Jalai/Iraninan/Shamsi dates Features Series Extenstion Convert string to Jalal

51 Jan 02, 2023
Application for viewing pokemon regional variants.

Pokemon Regional Variants Application Application for viewing pokemon regional variants. Run The Source Code Download Python https://www.python.org/do

Michael J Bailey 4 Oct 08, 2021
Custom Plotly Dash components based on Mantine React Components library

Dash Mantine Components Dash Mantine Components is a Dash component library based on Mantine React Components Library. It makes it easier to create go

Snehil Vijay 239 Jan 08, 2023
daily report of @arkinvest ETF activity + data collection

ark_invest daily weekday report of @arkinvest ETF activity + data collection This script was created to: Extract and save daily csv's from ARKInvest's

T D 27 Jan 02, 2023
Blender addon that creates a temporary window of any type from the 3D View.

CreateTempWindow2.8 Blender addon that creates a temporary window of any type from the 3D View. Features Can the following window types: 3D View Graph

3 Nov 27, 2022
Schema validation just got Pythonic

Schema validation just got Pythonic schema is a library for validating Python data structures, such as those obtained from config-files, forms, extern

Vladimir Keleshev 2.7k Jan 06, 2023
An(other) implementation of JSON Schema for Python

jsonschema jsonschema is an implementation of JSON Schema for Python. from jsonschema import validate # A sample schema, like what we'd get f

Julian Berman 4k Jan 04, 2023
Generating interfaces(CLI, Qt GUI, Dash web app) from a Python function.

oneFace is a Python library for automatically generating multiple interfaces(CLI, GUI, WebGUI) from a callable Python object. oneFace is an easy way t

NaNg 31 Oct 21, 2022
These data visualizations were created as homework for my CS40 class. I hope you enjoy!

Data Visualizations These data visualizations were created as homework for my CS40 class. I hope you enjoy! Nobel Laureates by their Country of Birth

9 Sep 02, 2022