picasso-viz

A CNN model visualizer


Keywords
picasso, convolutional-neural-networks, keras, tensorflow, visualization
License
EPL-1.0
Install
pip install picasso-viz==0.2.0

Documentation

Picasso

Documentation Status

A CNN model visualizer

See the Medium post for an introduction to Picasso.

If you use Picasso in your research, please cite our paper:

@misc{picasso2017,
      Author = {Ryan Henderson and Rasmus Rothe},
      Title = {Picasso: A Neural Network Visualizer},
      Year = {2017},
      Eprint = {arXiv:1705.05627},
      Url = {https://arxiv.org/abs/1705.05627}
     }

Quickstart

Picasso uses Python 3.5+ so use a virtual environment if necessary (e.g. virtualenv env --python=python3) and activate it!

  1. Install with pip or from source.

    With pip:

    pip install picasso-viz
    

    From the repository:

    git clone git@github.com:merantix/picasso.git
    cd picasso
    pip install -e .
    

    Note: you'll need the Tensorflow backend for Keras for these examples to work. Make sure your ~/.keras/keras.json file looks like:

    {
        "backend": "tensorflow",
        "image_dim_ordering": "tf",
        "floatx": "float32",
        "epsilon": 1e-07
    }
    
  2. Start the Flask server

    export FLASK_APP=picasso
    flask run
    

    Point your browser to 127.0.0.1:5000 and you should see the landing page! When you're done, Ctrl+C in the terminal to kill your Flask server.

Building the docs

The documentation is much more extensive than this README, and includes instructions on getting the Keras VGG16 and Tensorflow NMIST models working, as well as guides on building your own visualizations and using custom models. This assumes you've cloned the repository. First install the required packages:

pip install -e .[docs]

Then build them:

cd docs/
make html

Then you can open _build/html/index.html in your browser of choice.

Notes

  1. Models generated on Keras using the Theano backend should in principle be supported. The only difference is the array ordering of convolutions. I haven't tried this yet though, so an extra config parameter may be needed.

Credits