tensorturnBETA
HomeUse Cases

How to Build a Handwritten Digit Recognition Model Without Code

To build a handwritten digit recognizer with no code, collect images of single digits sorted into ten folders (0 through 9), upload the zip, and describe the task in chat — TensorTurn trains a convolutional neural network on an isolated cloud GPU and deploys it as a /predict API. On clean, MNIST-style digits accuracy of 98-99%+ is routine; on real scanned forms and phone photos it is lower, and recognizing a whole multi-digit number is a detection problem you segment into single digits first.

What handwritten digit recognition does

Handwritten digit recognition is a 10-class image classification problem: the model looks at one image containing a single digit and predicts which of 0-9 it is. It is the classic 'hello world' of computer vision, and it underpins real tasks like reading amounts on forms, postal codes, meter readings and survey checkboxes. Recognizing a single digit is classification; reading a full number like 4072 is a two-step job — first locate or segment each digit, then classify each one — where the locating step is object detection.

What data you need

The clean-benchmark versus real-forms gap

MNIST digits are centered, size-normalized and clean, which is why models hit 99%+ on them almost trivially. Your real digits — scanned from forms, written in pen, skewed, touching gridlines, photographed under uneven light — are harder, and a model trained only on clean data drops on them. Run the image health check first: it removes exact and near-duplicate images (perceptual hashing plus a DINOv2 semantic pass), flags blur and bad exposure, and surfaces likely-mislabeled digits with a suggested correction — mislabeling is common when a hurried 1 looks like a 7. Cleaning labels here directly raises real-world accuracy.

How to build a digit recognizer on TensorTurn (no code)

Which digits get confused

Confused pairWhyHow to reduce it
4 and 9A closed-top 4 looks like a 9Add varied 4 and 9 styles; watch the confusion matrix
3 and 5Similar upper curvesMore examples of both; cleaner labels
7 and 1A barred 7 or slanted 1 overlapInclude both barred and plain 7s
0 and 6A looped 6 resembles a 0Add more looped-6 samples

How accurate can it be

On clean MNIST-style data, 98-99%+ accuracy is routine and not impressive on its own — it is the standard the task is known for. What matters is accuracy on your real inputs, which is usually lower because of pen strokes, skew, noise and lighting. Read the confusion matrix rather than the headline number: it shows exactly which digit pairs (classically 4/9, 3/5, 7/1) the model mixes up, so you know where to add examples. If your own scanned digits land far below 95%, the fix is almost always more representative training images and cleaner labels, not a fancier model.

Deploy as an API, and reading full numbers

Publish an authenticated /predict endpoint on Modal that scales to zero when idle, secured with a SHA-256-hashed Bearer key and per-call logging. Send a single-digit image through the playground's cURL, JavaScript, Python or Rust snippets and get the predicted digit and confidence back. To read a multi-digit number, first segment the image into individual digits (or use a YOLO detector to locate each one), then call the classifier per digit and concatenate the results.

Start building free

Frequently asked questions

How many images per digit do I need?

A few hundred to a few thousand per digit works well, and variety of handwriting styles matters more than raw count. Clean, distinct digits can succeed at the lower end thanks to transfer learning.

Which algorithm does TensorTurn use?

A convolutional neural network (PyTorch or Keras), typically with transfer learning. You describe the task in chat and TensorTurn writes and runs the training notebook.

Can it read a whole multi-digit number?

Not in one shot. Recognizing a single digit is classification; a full number needs you to segment or detect each digit first, then classify each one and join the results.

Why is my accuracy lower than the 99% everyone quotes?

That 99% is on clean MNIST-style data. Real scanned or photographed digits are harder, so train on images like your real inputs and read the confusion matrix to see which digits are confused.

What if some digits are mislabeled?

The image health check flags likely-mislabeled digits using kNN over DINOv2 embeddings and suggests a corrected label with a confidence score, so you can fix them before training.

How do I deploy it?

Publish a /predict endpoint that serves Keras, PyTorch or ONNX weights and returns the predicted digit and confidence. The playground provides cURL, Python, JavaScript and Rust snippets.