Detailed problem statement and our code/submissions is available here.

Task 1: Foundations of Convolutional Neural Networks

codes are available here

Create a sequential model using keras api with tensorflow backend for mnist(10 classes) and line dataset(96 classes). Tweak the hyperparameters of the model.

Task 2: Multi-Head Classification

codes are available here

We used keras api with tensorflow backend to design non-sequential model for multi-head classification of the line dataset. We designed feature network first and on top of that built 4 classification heads based on 4 different variations(length, width, color and angle).

For aggregated metrices, we assigned different weights to different classification heads and add them together for getting total metrices of the multi-head network.

Model Graph

Task 3 : Network Visualization

codes are available here

We used keras model api to get details of the intermediate layers of the network for differernt test images of both mnist and line dataset and plotted them.

Sample intermediate layer mnist Sample intermediate layer line

For visualizing convnet filters, we started from a blank image and maximised the response of a particluar filter by using gradient descent technique.

Sample convnet filter mnist Sample convnet filter line

we plotted heatmap and superimposed image (heatmap+test_image) of class activations.

Sample test image Sample heatmap Sample superimposed