You are browsing as a guest. Sign up (or log in) to start making projects!

omsatyam987

@omsatyam987

Joined August 16th, 2026

  • 1Devlogs
  • 1Projects
  • 1Ships
  • 2Votes
AI & Data Science student. I like understanding how things work before using tools that hide it.
Ship Changes requested

Built a neural network from scratch using only NumPy — no PyTorch, no TensorFlow, no autograd. Trained on MNIST (60k images), 97.91% test accuracy.

The challenging part was getting backpropagation right. Specifically, the Softmax + CrossEntropy backward pass — the combined gradient simplifies to (predictions - y_true) / batch_size, which means CrossEntropy needs no backward method at all. That only becomes obvious when you’re writing the math yourself instead of calling .backward().

Most proud of the fact that every single component — forward pass, backprop, weight updates, L2 regularization, Xavier initialization, the MNIST binary parser — is written by hand. Nothing is hidden behind a framework.

To test: draw any digit (0–9) on the canvas and click Predict Digit. Draw it centered and reasonably large for best results. The model runs entirely in the browser using weights exported from the trained NumPy model.

  • 1 devlog
  • 10h
Try project → See source code →
Open comments for this post

10h 0m 35s logged

Built NovaMind — a multi-layer perceptron trained on MNIST, written entirely from scratch using only NumPy. No PyTorch, no TensorFlow.
What I implemented by hand:

Forward and backward pass through every layer
ReLU and Softmax activations
Cross-entropy loss
Mini-batch SGD with L2 regularization (λ=0.0001)
Xavier weight initialization
Full MNIST data pipeline — download, parse IDX binary format, normalize, one-hot encode

Final results: 99.69% train accuracy, 97.91% test accuracy.
Also built:

Visualization suite — loss curve, confusion matrix, and a prediction grid showing wrong vs correct predictions
Live interactive demo — draw a digit on a browser canvas, the model predicts it in real time using trained weights exported as JSON and a forward pass written in JavaScript

GitHub: omsingh-19/NovaMind
Live demo: NovaMind MNIST Digit Recognizer

1
0
97

Followers

Loading…