# ANN
Design and Implementation of an Artificial Neural Network as the general multi-class classifier for MNIST dataset developed by C++ from scratch and the user is able to set the number of layers and the number of neurons in each layer</br>
Some key element in design:
  - Feedforward function: to carry out the layer-wise feedforward calculations
  - Train function: use mini-batch SGD and backprogagation algorithm for the training
  - Activation function: Sigmoid function
  - Loss function: MSE
  - Save/load the weights
  - Save/load the pre-train my model
  - Enhance the ANN by OpenMP
 
 #### This is the project I developed in undergraduate year 3 of my university period, quite challenging but extremely interesting in that time before COVID-19 pandemic.