This week I started working on an educational C++ framework for building and training neural networks. It's gone quite well, and while I only have dense MLP's for now (convolutional/pooling layers still in the works), the fundamental architecture of the framework has become quite fleshed out and works really well for what it does.
It supports multiple activation functions and evaluation modes/classifications, with softmax etc. It also features adaptive learning rate, automatic overfitting prevention, and early exit when training stops converging (based on either training loss, or evaluated success rate at each epoch).
I've managed to build a model for the MNIST digits dataset, achieving a 98.55% success rate (on the eval set), but it can obviously be used to build any arbitrary dense MLP.
If you're curious and like me want to learn more about how NN's actually work, I suggest you check it out! :)
This week I started working on an educational C++ framework for building and training neural networks. It's gone quite well, and while I only have dense MLP's for now (convolutional/pooling layers still in the works), the fundamental architecture of the framework has become quite fleshed out and works really well for what it does.
It supports multiple activation functions and evaluation modes/classifications, with softmax etc. It also features adaptive learning rate, automatic overfitting prevention, and early exit when training stops converging (based on either training loss, or evaluated success rate at each epoch).
I've managed to build a model for the MNIST digits dataset, achieving a 98.55% success rate (on the eval set), but it can obviously be used to build any arbitrary dense MLP.
If you're curious and like me want to learn more about how NN's actually work, I suggest you check it out! :)