A SMALL MODEL. A CLEARER VIEW.

See the prediction.
Explore the evidence.

Look inside a trained vision model. Classify an image, inspect its confidence, and see which regions influenced its answer.

Loading the verified model…
HELD-OUT TEST ACCURACY93.51%

95% interval 93.03–93.98%

MACRO F10.9350

Across all ten classes

CALIBRATION ERROR0.0141

From 0.0641 before calibration

MODEL PARAMETERS274K

ResNet20 · 180 training epochs

Your image

32 × 32 model input

Or try a real test image

CIFAR-10 samples
Centre-cropped model input
Grad-CAM · original view

The heatmap is coarse: it shows correlation with the model’s answer, not proof of understanding.

Model’s answer

Ready when you are
BEST MATCH AMONG THE 10 SUPPORTED CLASSES

Try an image

Ten classes. One transparent experiment.

This is a choice among the supported classes, not confirmation that your photo contains that object.

A confident answer can still be wrong.

Scores average the original and mirrored image, then use validation-fitted temperature scaling.

Evaluation you can inspect

10,000 held-out images

45,000 images for training, 5,000 for validation. The test set was evaluated after checkpoint selection. This is one run with seed 73, not a multi-seed average.

Recall by class

Confusion matrix

Rows: actual class. Columns: prediction. Hover a cell for its count.

Checking browser inference against the Python model…
Download trained weights & full results ↗

Confident mistakes

What the model gets wrong

High confidence does not guarantee correctness. These are authentic held-out test errors, selected by confidence within each true class.

Small images. A complete experiment.

01

Learn

ResNet20 learns from CIFAR-10 using training-only random crop, flip and Cutout. Label smoothing reduces overconfident training targets.

02

Measure

A separate validation split selects the checkpoint and calibrates confidence. The official test set measures performance after selection.

03

Explain

Grad-CAM highlights regions supporting the original-view prediction. Scores average original and mirrored logits before calibration.

Privacy by design

The model runs in your browser. Uploaded images are never sent to a prediction server or saved by this application. The hosting service and script CDN still receive ordinary page requests.

Know its limits

Only ten classes and 32 × 32 pixels. Every photo is assigned to a class; there is no unknown-object detector. Browser and Python image resizing can differ slightly for uploaded photos. Heatmaps are coarse and do not establish causation. This demo is not for consequential decisions.

Author

Developed by Amir Hamza.

Read the code, tests and model card ↗