A simple Neural Network library implemented using CUDA. This project was developed for my final year project at university.
- Dense layers
- Sigmoid, tanh, relu and softmax activation functions
- Dropout
- SGD and Adam optimizers
- Cross Entropy and Mean Squared Error loss functions
There are two main sample programs:
- MNIST classifier
- MNIST GAN
The top level directories are organized as follows:
- demo/ - code for the visualization demo
- deps/ - 3rd party dependencies, included as submodules
- imgs/ - image samples
- include/ - public interface of the library
- pretrained/ - pretrained models (trained with this library + Keras)
- samples/ - sample programs
- scripts/ - scripts used for testing/evaluation, shouldn't be used directly
- src/ - private implementation of the library
Requires CMake and the CUDA SDK. All other dependencies are included as git submodules in the deps/ folder.
For the visualization demo and python bindings it requires python to be installed.
This program has only been tested on windows but will work on other operating systems in theory.
An example on windows:
git clone --recursive https://github.com/BrotherhoodOfHam/libnn.git
mkdir libnn/build
cd libnn/build
cmake .. -G "Visual Studio 16 2019" -A "x64"
cmake --build . --config Release
cd samples
./Release/mnist_classifier.exe