Solutions to the three programming assignments from Stanford's CS231n course.
| Notebook | Topics |
|---|---|
knn.ipynb |
k-Nearest Neighbor classifier |
svm.ipynb |
Linear SVM loss and optimization |
softmax.ipynb |
Softmax classifier |
two_layer_net.ipynb |
Two-layer fully connected neural network |
features.ipynb |
Higher-level image features (HOG, color histograms) |
| Notebook | Topics |
|---|---|
FullyConnectedNets.ipynb |
Modular layer design, SGD + momentum, RMSProp, Adam |
BatchNormalization.ipynb |
Batch normalization forward/backward |
Dropout.ipynb |
Dropout regularization |
ConvolutionalNetworks.ipynb |
Convolution, pooling, and spatial batch norm layers |
PyTorch.ipynb |
PyTorch basics -- Tensors, Autograd, nn.Module |
| Notebook | Topics |
|---|---|
RNN_Captioning.ipynb |
Vanilla RNN for image captioning |
LSTM_Captioning.ipynb |
LSTM cells and LSTM-based captioning |
Transformer_Captioning.ipynb |
Multi-head attention and Transformer captioning |
Generative_Adversarial_Networks.ipynb |
GAN training on MNIST |
Self_Supervised_Learning.ipynb |
SimCLR contrastive learning |
Network_Visualization.ipynb |
Saliency maps, fooling images, class visualization |
git clone <repo-url>
cd "cs213n assignment"cd assignment2
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txtIf no requirements.txt is present, install the common dependencies:
pip install jupyter numpy scipy matplotlib pillow tqdmFor PyTorch notebooks (Assignment 2 & 3), install PyTorch for your platform: pytorch.org/get-started
Each assignment has download scripts under cs231n/datasets/. Run them before opening the notebooks:
cd cs231n/datasets
bash get_datasets.shjupyter notebookassignment1/
cs231n/ # Classifiers, layers, solvers, utils
*.ipynb # Exercise notebooks
assignment2/
cs231n/ # Layers, optimizers, fast CNN layers
*.ipynb
assignment3/
cs231n/ # RNN/Transformer layers, GAN, SimCLR, visualization
*.ipynb
- Originally developed and run on Google Colab. Some setup cells reference Google Drive mounts -- adjust or skip them for local execution.
- Training-heavy notebooks (GANs, SimCLR) benefit significantly from GPU acceleration.
- CS231n course page -- Stanford, Spring 2026