Part 1: Image Classification

CNN architecture: Two convolutional layers including batch normalization, relu and maxpool in each along with two fully connected layers with a relu after the first fc. Batch size = 100, learning rate = 0.0007 and number of epochs was 10.

Sample images from the dataloader along with their classes

In [7]:
 
Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).
labels:  Ankle Boot, T-shirt/Top, T-shirt/Top, Dress, 

Testing accuracy for each class

In [6]:
 
Out[6]:
<matplotlib.image.AxesImage at 0x7f474dff2d68>

Validation accuracy for each class

In [7]:
 
Out[7]:
<matplotlib.image.AxesImage at 0x7f474dd0d7f0>

Train(orange) and validation(blue) accuracy plots

In [8]:
 
Out[8]:
<matplotlib.image.AxesImage at 0x7f474dcf1940>

Examples of correctly predicted classes (in green)

In [29]:
 

Examples of Incorrect predictions (in red)

In [30]:
 

I couldn't get my code to run for part 2 unfortunately. :(