This project is intended to be a modular playground for building neural nets. I have coded this in plain C to get a clear, strong foundational understanding of Neural nets. All math used here was derived on paper (see documentation folder for images and calculations).
To view a demo:
- please launch terminal and cd to "Neural Net C" folder containing all files.
- Type "make" (this will require Makefile)
- Type "./test" This should display 10 images with prediction beneath. At the top you may find the accuracy of the neural net being used, which has been tested over 10k images.
If you intend to change the activation functions, you may do so manually in the neuralNet file. Alternatively, code your own helper functions and override the function pointers in the NeuralNet struct.
- "backProp.c": This file allocates memory for training efficiency, and has the implementation for the backpropagation algorithm.
- "loadData.c": This file reads in MNIST data, stores neural nets, and can store them.
- "neuralNet.c": allocated and initializes weights and biases.
- "train.c": trains the neural net based on manual settings.
- "test.c": test a model over 10k images, and provide a short demo.