keravis is a high-level API for CNN visualizations in Keras. It supports visualizations of:
- Convolutional layer activations
- Feature space visualizations
- Saliency maps
- Class model visualizations
- Feature visualizations through image patches
with support for nested pretrained models.
This is a hobby project and is not optimized for serious use.
You can install keravis using pip
pip install keravis
A t-SNE visualization of the feature space of the penultimate layer of a small CNN trained on MNIST is shown below
from keravis import feature_space
feature_space(model,X=x_test[:5000],y=y_test[:5000],kind='tsne')
Saliency maps of samples of ImageNet through VGG16 are shown below
from keravis import saliency_guided_backprop
saliency_guided_backprop(model,test_img,class_idx=test_label,vistype='next')
from keravis import saliency_grad_cam
saliency_grad_cam(model,test_img,class_idx=test_label,vistype='overlay')
from keravis import saliency_occlusion
saliency_occlusion(model,test_img,class_idx=test_label,vistype='overlay')
Class score maximization on VGG16
from keravis import class_model
class_model(model,class_idx=14)
Image patches which maximally activate a neuron in a small CNN trained on MNIST are shown below
from keravis import image_patches
image_patches(model,'conv2d_1',X=x_test)
[1] Simonyan, Karen, Andrea Vedaldi, and Andrew Zisserman. "Deep inside convolutional networks: Visualising image classification models and saliency maps." arXiv preprint arXiv:1312.6034 (2013).
[2] Selvaraju, Ramprasaath R., et al. "Grad-cam: Visual explanations from deep networks via gradient-based localization." Proceedings of the IEEE international conference on computer vision. 2017.
[3] Zeiler, Matthew D., and Rob Fergus. "Visualizing and understanding convolutional networks." European conference on computer vision. Springer, Cham, 2014.