- Test TrainData
- Implement batch norm
- Parallelize operations
- Read : https://arxiv.org/pdf/1412.6980.pdf
- Add macos arm runner when available
- Add gradient clipping
- Add default arguments to python bindings
- Interactive Python example
- Python tests
- Optimize
Catch2
's build
- Implement dropout
- Add verbose argument for progess bar
- CI versioning
- Docker image for quick start
- Setup
clang-format
- Implement early stopping
- Update README to include more information about the project
- Add CI / CD
- Document the example in python
- Re-implement the whole mini-batch algorithm
- Comment the code further
- Find out if adam optimization is working
- Add type for data handling
- Adams optimizer
- Read : https://arxiv.org/pdf/1812.03372.pdf
- Fix the he weight initialisation
- added License
- Replace Quadratic loss der in lossDer function with dynamic function based on loss used
- Change the enums names to all capital (ex: ACTIVATION, LOSS, WEIGHT_INIT)
- Test with the MNIST database
- Test the backpropagation
- Implement the sigmoid class
- Write some unit tests with the Catch2 library
- Transform labels into correct format for evaluation
- Connect with python using pybind
- Work on optimizing the way files are including one another
- Add cmake option to install submodules automatically during build time
- Replace pragma once with header guards
- Reason : Dig deeper into it, at first thought it might not be worth switching to header guards. Pragma once is supported by most compilers and it avoids name clashes in namespace.