IdealNN is a simple Neural Network framework written in C++ that aims to provide pytorch-like APIs.
The library is mainly intended for educational purposes to demistify the complexities behind neural network frameworks.
NOTE: The framework is called IdealNN in the same sense of 'ideal filters' in the frequency domain.
In order to simplify setup and build and install bash scripts have been provided.
Install all dependencies and create the build directories.
./setup_env.shBuild the project in release, build the docs and run make install.
./make_test.shBuild the project in debug and run tests.
./make_test.shBuild the project in debug and run valgrind on tests to check for memory leaks.
./make_valgrind.shBuild the project for debugging purposes.
./make_debug.shHere the breakdown of dependencies based on the task.
sudo apt install libeigen3-dev sudo apt install valgrind
sudo apt install gcovr
sudo apt install clocsudo apt install doxygen
sudo apt install texlive texlive-font-utils
sudo apt install graphvizAPI: https://cesare-montresor.github.io/idealNN/
Writeup: https://github.com/cesare-montresor/idealNN/blob/main/README.pdf
- https://www.linkedin.com/pulse/what-general-c-project-structure-like-herbert-elwood-gilliland-iii
- https://hiltmon.com/blog/2013/07/03/a-simple-c-plus-plus-project-structure/
- https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1204r0.html
- https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
- https://www.youtube.com/watch?v=44tFKZhPyP0
- https://www.youtube.com/watch?v=i94OvYb6noo <3
- https://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html
- https://www.youtube.com/watch?v=tIeHLnjs5U8
- https://www.youtube.com/watch?v=09c7bkxpv9I
- https://www.youtube.com/watch?v=MswxJw-8PvE
- https://forums.fast.ai/t/gradients-for-softmax-are-tiny-solved/18970/11
- http://ufldl.stanford.edu/tutorial/supervised/SoftmaxRegression/
- https://iamtrask.github.io/2015/07/12/basic-python-network/