I created NeuroFlow, a JavaScript library, as an educational project to deepen my understanding of neural networks. It began as a simple JavaScript port of Andrej Karpathy's micrograd. While powerful libraries like PyTorch and TensorFlow.js, and frameworks such as fast.ai make neural networks accessible, they often abstract away the underlying mechanics.
NeuroFlow embraces the RTFM philosophy by reimplementing core neural network concepts from scratch. This approach offers a deeper appreciation for the mathematical intricacies behind these networks, even when working with simpler examples.
For a practical comparison, I've implemented many of these demos using both NeuroFlow and TensorFlow.js. You can explore the TensorFlow.js implementations here, as well as the demos from the project. This provides an interesting contrast between a from-scratch approach and a professional-grade library.
Classify handwritten digits from the MNIST dataset using a neural network.
Reconstruct MNIST digits using an autoencoder.
Plot a function f(x). Estimate the function using a neural network.
Classify (x,y) points using a neural network.
Classify (x,y) points into 3 or more classes using a neural network.