Classifying handwritten digit with MNIST dataset
This purpose of this project is to understand the foundation of forward and backward propagation in neural network.
Note: The accuracy is not the main purpose, therefore the accuracy in all files is only slightly above 90%.
There are two versions (each with 3 files) in this repository:
- 1. With TensorFlow implementation:
- This is similar to the tutorial provided at the official website of TensorFlow.
- 2. Without Tensorflow implementation:
- The exact equivalent but using only numpy to implement everything (inc. chain-rule derivative in backward propagation).
- The architecture of neural network in each file:
- A: input → linear layer → softmax → class probabilities
- B: input → hidden layer (128 units) + Relu → linear layer → softmax → class probabilities
- C: input → 2 * hidden layer (256 units) + Relu → linear layer → softmax → class probabilities
The required library:
- TensorFlow
- numpy
- pandas
- matplotlib