It is based on competition organised by kaggle in 2013:-
https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/leaderboard
Top accuracies in that competitions were :-
71%
69%
68%
Here we have got 65% accuracy:-
Loss: 0.9379754525168954
Accuracy: 0.6540819169851225
Output:-
Architecture that we have used is :-
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) (None, 46, 46, 64) 640
_________________________________________________________________
conv2d_2 (Conv2D) (None, 46, 46, 64) 36928
_________________________________________________________________
batch_normalization_1 (Batch (None, 46, 46, 64) 256
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 23, 23, 64) 0
_________________________________________________________________
dropout_1 (Dropout) (None, 23, 23, 64) 0
_________________________________________________________________
conv2d_3 (Conv2D) (None, 23, 23, 128) 73856
_________________________________________________________________
batch_normalization_2 (Batch (None, 23, 23, 128) 512
_________________________________________________________________
conv2d_4 (Conv2D) (None, 23, 23, 128) 147584
_________________________________________________________________
batch_normalization_3 (Batch (None, 23, 23, 128) 512
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 11, 11, 128) 0
_________________________________________________________________
dropout_2 (Dropout) (None, 11, 11, 128) 0
_________________________________________________________________
conv2d_5 (Conv2D) (None, 11, 11, 256) 295168
_________________________________________________________________
batch_normalization_4 (Batch (None, 11, 11, 256) 1024
_________________________________________________________________
conv2d_6 (Conv2D) (None, 11, 11, 256) 590080
_________________________________________________________________
batch_normalization_5 (Batch (None, 11, 11, 256) 1024
_________________________________________________________________
max_pooling2d_3 (MaxPooling2 (None, 5, 5, 256) 0
_________________________________________________________________
dropout_3 (Dropout) (None, 5, 5, 256) 0
_________________________________________________________________
conv2d_7 (Conv2D) (None, 5, 5, 512) 1180160
_________________________________________________________________
batch_normalization_6 (Batch (None, 5, 5, 512) 2048
_________________________________________________________________
conv2d_8 (Conv2D) (None, 5, 5, 512) 2359808
_________________________________________________________________
batch_normalization_7 (Batch (None, 5, 5, 512) 2048
_________________________________________________________________
max_pooling2d_4 (MaxPooling2 (None, 2, 2, 512) 0
_________________________________________________________________
dropout_4 (Dropout) (None, 2, 2, 512) 0
_________________________________________________________________
flatten_1 (Flatten) (None, 2048) 0
_________________________________________________________________
dense_1 (Dense) (None, 512) 1049088
_________________________________________________________________
dropout_5 (Dropout) (None, 512) 0
_________________________________________________________________
dense_2 (Dense) (None, 256) 131328
_________________________________________________________________
dropout_6 (Dropout) (None, 256) 0
_________________________________________________________________
dense_3 (Dense) (None, 128) 32896
_________________________________________________________________
dropout_7 (Dropout) (None, 128) 0
_________________________________________________________________
dense_4 (Dense) (None, 7) 903
=================================================================
Total params: 5,905,863
Trainable params: 5,902,151
Non-trainable params: 3,712
____________________________