← all repositories
stratospark/food-101-keras

Teaching neural networks to identify your lunch

A 2017 walkthrough of fine-tuning InceptionV3 on 101 food categories, complete with the messy notebook reality of RAM limits and multiprocessing hacks.

712 stars Jupyter Notebook Computer VisionML Frameworks
food-101-keras
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does This repo is a Jupyter notebook that fine-tunes a pre-trained InceptionV3 model on the Food-101 dataset — 101 food classes, 1,000 images each — to classify photos of dishes like bibimbap, poutine, or eggs benedict. The author achieved 82% top-1 accuracy with single-crop inference, bumping to ~87% with 10-crop voting. There’s also a Keras.js export and a follow-up blog post about squeezing the model into an iOS app.

The interesting bit The value isn’t the model architecture — it’s the unvarnished documentation of a solo practitioner’s workflow in early 2017 Keras/TensorFlow. The author openly notes needing 96 GB of RAM and a Titan X Pascal, admits they “spent about 1 month on and off” training dozens of models, and leaves in the multiprocessing pool setup that must happen before loading images or it crashes with Errno 12. It’s a time capsule of pre-cloud-GPU deep learning friction.

Key highlights

  • Fine-tunes InceptionV3 via Keras applications API; no custom architecture
  • 82.03% top-1 / 97.42% top-5 accuracy with 10-crop evaluation on Food-101 test set
  • Includes interactive classification widgets and result visualization code
  • Exported to Keras.js for browser demo; TensorFlow mobile export for iOS app documented separately
  • Explicitly compares results against contemporary papers (InceptionV3 88.28%, ResNet200 90.14%, WISeR 90.27%)

Caveats

  • Requires substantial RAM; author notes you “won’t be able to follow along” without enough memory
  • README is a rendered notebook, so GitHub display is broken in places (iframe demo, some image paths)
  • Last substantive update was March 2017; Keras.js and TensorFlow 1.x patterns are now largely obsolete

Verdict Worth a skim if you’re studying how transfer learning was taught circa 2017, or if you need a concrete — if dated — example of fine-tuning pipelines with heavy data augmentation. Skip it if you want a runnable modern recipe; the dependencies and tooling have moved on.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.