Neural networks need glasses too
A Flask-based tool that lets you peek inside CNNs to see what your image classifier is actually paying attention to.

What it does
Picasso is a browser-based visualizer for convolutional neural networks. You point it at a Keras model, upload an image, and it generates visual explanations—things like saliency maps or activation visualizations—so you can see which pixels the model is actually using to make its decision. It ships as a pip-installable Python package that runs a local Flask server.
The interesting bit
The project treats visualization as a modular plugin system rather than a one-off script. You can swap in different “visualizers” (the README hints at saliency maps and partial occlusion) and apply them to custom models without rewriting boilerplate. The Medium post and academic paper suggest this was built for a research lab that got tired of ad-hoc debugging.
Key highlights
- Keras-first, TensorFlow-backend; Python 3.5+ required
- Runs locally via Flask—no cloud dependency or data exfiltration
- Plugin architecture for adding new visualization methods
- Published in Journal of Open Research Software (2017), so there’s actual methodology behind it
- Docs cover VGG16 and MNIST examples, plus how to roll your own
Caveats
- Theano backend support is theoretical: “should in principle be supported” but untested
- Last meaningful activity appears to be 2017; modern Keras/TensorFlow versions may need coaxing
- README is sparse—most guidance lives in the built docs, which you have to generate locally
Verdict
Grab this if you’re debugging legacy Keras image classifiers and want interpretability without shipping data to a SaaS. Skip it if you’re on PyTorch or need production-grade explainability tools—this is a research-lab utility, not a platform.