Visualization of Deep Covolutional Neural Networks
- This repository contains implementations of visualizatin of CNN in recent papers.
- The source code in the repository can be used to demostrate the algorithms as well as test on your own data.
Requirements
- Python 3.3+
- Tensorflow 1.3
- TensorCV
Algorithms
- Visulization of filters and feature maps of GoogLeNet
- Deconvolutional Networks (ECCV'14)
- Guided back propagation (2014)
- Class Activation Mapping (CAM) (CVPR'16)
- Gradient-weighted Class Activation Mapping (Grad-CAM) (ICCV'17)
Visulization of filters and feature maps of GoogLeNet
- The most straightforward approach to visualize a CNN is to show the feature maps (activations) and filters.
- Details of the implementation and more results can be found here
Deconvnet
- Pick a specific activation on a feature map and set other activation to zeros, then reconstruct an image by mapping back this new feature map to input pixel space.
- Details of the implementation and more results can be found here. Some results:
Guided back propagation
- Details of the implementation and more results can be found here. Some results:
Class Activation Mapping (CAM)
- The class activation map highlights the most informative image regions relevant to the predicted class. This map can be obtained by adding a global average pooling layer at the end of convolutional layers.
- Details of the implementation and more results can be found here. Some results:
Gradient-weighted Class Activation Mapping (Grad-CAM)
- Grad-CAM generates similar class heatmap as CAM, but it does not require to re-train the model for visualizatin.
- Details of the implementation and more results can be found here. Some results: