← udacity portfolio
self driving car nd · deep learning · January 2019

Traffic Sign Detector (TensorFlow)

CNN classifier on the German Traffic Sign Recognition Benchmark — the Udacity SDC project that introduced TensorFlow before Keras was the default.

What it did

Train a CNN to classify 32×32 images of German traffic signs into 43 classes. Targets in the GTSRB dataset are real photos with mixed lighting, partial occlusions, and class imbalance. Project rubric was ≥93% validation accuracy.

The architecture

LeNet-ish, deliberately small:

Input (32×32×3)
  → Conv5×5 (6 filters) + ReLU + MaxPool 2×2
  → Conv5×5 (16 filters) + ReLU + MaxPool 2×2
  → Flatten → FC(120) → ReLU
  → FC(84) → ReLU
  → FC(43)

Cross-entropy loss, Adam optimizer, batch size 128, ~20 epochs to saturate.

What was actually tricky

What I’d do differently with hindsight

What it taught me

The first time I trained a CNN end-to-end. The shock wasn’t that it worked — it was how aggressively the model memorized the training distribution and failed on anything just outside it. That experience informed every later ML project: spend the first hour finding the weird examples in your data; the model will too.


Source archive: Shivam-Bhardwaj/TrafficSignDetector-TensorFlow (archived)
Writeup last touched: 2026-05-22