Description
Demonstrate image classification using a spiking neural network
-
Objective – Show as high a test accuracy as possible
-
Dataset – EMNIST
-
This dataset is an extended version of MNIST that contains handwritten letters in addition to digits. There are 6 splits possible for this dataset. Use the ‘balanced’
split.
-
-
More info at http://pytorch.org/vision/main/generated/torchvision.datasets.EMNIST.html
-
-
Guidelines
-
-
Project to be done in teams of two
-
-
Create a separate function for performing inference on test dataset. You may be asked to demonstrate during viva.
-
The learning will be done using ‘Backprop through Time using Surrogate Gradients’ algorithms.
-
Since test dataset will be used to check final test accuracy, it cannot be used for training. You may do a train: validation split of your original training dataset.
-
Show training loss vs epoch and accuracy vs epoch graphs
-
You are free to choose the model, encoding method, loss functions and surrogate functions to meet the objective
-
You are expected to utilize a gpu as the runs would take long
-
-
Recommended way is to use the snnTorch library. There are many tutorials available for reference on training SNNs.
-
Look at https://snntorch.readthedocs.io/en/latest/tutorials/index.html
-
Grading Scheme
Score |
||
Total |
30 |
|
Code |
12 |
Implementation of dataset prep, model, optimization |
Viva |
8 |
and final test inference |
Communicate understanding of problem statement and |
||
Performance |
4 + 6 |
explain approach |
– 4 marks awarded if test accuracy > 60% ( i.e. |
model is better than coin toss)
– Groups will be ranked according to test accuracy
and awarded remaining 6 marks relatively. Top
group gets full 6 marks