Teaching machines to judge your vacation photos
A PyTorch reimplementation of Google's NIMA model that predicts how humans will rate image aesthetics—useful for auto-curating or ranking photos without a human in the loop.

What it does
Neural IMage Assessment (NIMA) scores photos on a 1–10 aesthetic scale by learning from 255,000+ human-rated images in the AVA dataset. This repo provides training and inference code, plus pretrained weights that hit ~0.069 EMD on validation. Feed it an image; get back a mean score and standard deviation that approximates human opinion distribution.
The interesting bit
The model doesn’t just spit out a single number—it predicts a full score distribution, which matters more than you’d think. The author also notes an emergent quirk: the model is contrast-hungry, consistently boosting scores for punchier images. That’s either a bug for faithful aesthetic simulation or a feature for auto-enhancement pipelines.
Key highlights
- VGG-16 backbone with ImageNet pretraining; MobileNet and Inception-v2 slots are wired but untested
- Curated CSV splits provided (train/val/test) with corrupted images already scrubbed
- Early stopping baked in; training snapshot shows convergence trajectory at epoch 34
- Pretrained weights available (~0.069 EMD, author notes it’s “not fully converged” due to resource limits)
- Includes explicit failure-case analysis—model struggles at aesthetic extremes (very high or very low ratings)
Caveats
- Learning rate differs from the original paper; author couldn’t get convergence with Google’s stated parameters
- “Not much hyper-param tuning” per the README—results are likely suboptimal
- Requires AVA dataset download and manual setup; no turnkey demo
Verdict
Worth a look if you’re building photo ranking, auto-curation, or enhancement tools and need a pretrained aesthetic prior. Skip if you need production-grade robustness out of the box—the author is upfront that this is a research reimplementation with rough edges.