/Deep_Inside_Convolutional_Networks

This is a caffe implementation to visualize the learnt model

Primary LanguagePythonMIT LicenseMIT

Deep Inside Convolutional Networks

This is a caffe implementation to visualize the learnt model.

Part of a class project at Georgia Tech
Problem Statement Pdf

Simonyan, K., Vedaldi, A., Zisserman, A.: Deep inside convolutional networks: Visualising image classification models and saliency maps Pdf

###Results:

Class Model visualization of Cat
In this exercise, we will use the method suggested in the “Deep inside convolutional networks: Visualising image classification models and saliency maps” to visualize the class model learnt by a convolutional network. We will use caffe for this exercise and visualize the class model learnt by the “bvlc_reference_caffenet.caffemodel”. Another aspect pointed out by the paper is that, the unnormalized Image score needs to be maximized instead of the probability. For this reason, we will be drop the final softmax layer(as the output here is the probability) and maximize the score at the inner product layer “fc8”.

Cat

Class Saliency extraction
The core idea behind this approach is to use the gradients at the image layer for a given image and class, to find the pixels which need to be changed the least i.e, the pixels for which the gradients have the smallest values. Also since our image is a 3 channel image, for each pixel, there will three different gradients. The maximum of these three will be considered the class saliency extraction.

Cat

Understanding backpropagation Here we simply visuzlize the gradients at different layers

Cat Cat Cat Cat

Instructions:

  • Install Caffe-rc2 tag
  • Copy the deploy_fc8.prototxt file to /models/bvlc_reference_caffenet/
  • Copy all the py files to /examples/
  • the just run python visualize.py