Skip to content

About

Stanford CS231n Assignment 2 — CNNs, BatchNorm, Dropout, PyTorch, RNN Captioning from scratch

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Stanford CS231n — Assignment 2

CS231n Python PyTorch NumPy Jupyter

Stanford CS231n: Convolutional Neural Networks for Visual Recognition Instructor: Fei-Fei Li, Justin Johnson, Serena Yeung Completed: June 2026

Overview

Assignment 2 moves from linear classifiers to deep neural networks — fully-connected nets, convolutional networks, batch normalization, dropout, and recurrent networks for image captioning. Transitions from NumPy-only to PyTorch.

What's Implemented

Module Technique Key Concepts
FC Nets Fully-Connected Networks Layer normalization, Adam optimizer
BatchNorm Batch Normalization Forward/backward, training vs inference
Dropout Dropout Regularization Prevent overfitting, inverted dropout
CNNs Convolutional Networks Conv layers, pooling, spatial dimensions
PyTorch PyTorch NN nn.Module, optim, DataLoader
RNN Captioning Image Captioning RNNs, attention, COCO dataset

Results

  • FC Net on CIFAR-10: ~55% accuracy (vanilla) → ~60% (with BatchNorm + Dropout)
  • CNN on CIFAR-10: ~70% accuracy with 3-layer ConvNet
  • RNN Captioning: Generates descriptive captions on COCO validation set

Tech Stack

  • Language: Python 3.8+
  • From scratch (NumPy): FC layers, BatchNorm, Dropout, Conv, RNN
  • Deep Learning: PyTorch (transition to framework)
  • Dataset: CIFAR-10 (classification), COCO (captioning)
  • Environment: Jupyter Notebooks

Key Learnings

  • Implemented Conv2d forward/backward from scratch in NumPy before switching to PyTorch
  • Understood why BatchNorm uses different behavior at train vs test time
  • Built an RNN from scratch for image captioning — the full forward/backward loop
  • Transitioned from manual NumPy to PyTorch's nn.Module, understanding exactly what the framework abstracts

How to Run

pip install numpy torch torchvision matplotlib
jupyter notebook FullyConnectedNets.ipynb

Course Context

CS231n is Stanford's premier Computer Vision course. Assignment 2 covers the core deep learning architectures that power modern vision systems — from CNNs to attention.

About

Stanford CS231n Assignment 2 — CNNs, BatchNorm, Dropout, PyTorch, RNN Captioning from scratch

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages