From MLP to ResNet: five notebooks that actually explain CNNs
A tutorial repo that walks through LeNet, AlexNet, VGG, and ResNet with runnable Colab notebooks and real datasets.

What it does
Five Jupyter notebooks progress from a basic multilayer perceptron on MNIST to implementing ResNet on a custom bird dataset. Each tutorial covers a landmark architecture—LeNet, AlexNet, VGG, ResNet—with training code, visualization, and links to the original papers. Everything runs in Colab via one-click badges.
The interesting bit
The author doesn’t just dump code. The VGG notebook demonstrates transfer learning with discriminative fine-tuning on ImageNet weights; the ResNet notebook introduces the one-cycle learning rate policy. These are practical techniques usually scattered across blog posts, gathered here in sequence.
Key highlights
- Starts from absolute basics (data loading, augmentation, MLP) before touching convolutions
- Each notebook targets a specific dataset: MNIST → CIFAR10 → CUB200, scaling complexity deliberately
- Includes model visualization, weight inspection, and representation analysis with matplotlib and scikit-learn
- All notebooks have direct Colab links; no local GPU required
- Explicitly welcomes corrections and negative feedback in the README
Caveats
- Pins to older versions: PyTorch 1.7, torchvision 0.8, Python 3.8; some APIs may have shifted
- The author notes that reference material “may be out of date”
Verdict
Ideal if you’re past the “hello world” PyTorch stage and want to see canonical architectures built line-by-line. Skip if you need production training pipelines or modern transformers—these are pedagogical implementations, not benchmarks.