• Stars
    star
    1,003
  • Rank 45,765 (Top 1.0 %)
  • Language
    Python
  • License
    Eclipse Public Li...
  • Created over 7 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🎨 A CNN visualizer

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:

Henderson, R. & Rothe, R., (2017). Picasso: A Modular Framework for Visualizing the Learning Process of Neural Network Image Classifiers. Journal of Open Research Software. 5(1), p.22.

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 [email protected]: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