DL From Scratch
Implement mainstream deep learning models from scratch.
Project Structure
βββ main.py
βββ pyproject.toml
βββ .gitignore
βββ README.md
βββ ROADMAP.md
βββ ml/ # Classical Machine Learning (pure NumPy)
β βββ mlp/ # MLP (MNIST, manual backprop)
β βββ basics/ # 12 standalone models (lin/log reg, SVM, K-Means, PCA, RF, GBDT, etc.)
βββ cv/ # Computer Vision
β βββ simplecnn/ # SimpleCNN (CIFAR-10, ConvΓ3+PoolΓ3+FCΓ2)
β βββ resnet18/ # ResNet18 (CelebA, 15 attrs, skip connections)
β βββ resnet34/ # ResNet34 (CelebA, 40 attrs, [3,4,6,3] blocks)
β βββ resnet50/ # ResNet50 (Bottleneck block 1Γ1β3Γ3β1Γ1)
β βββ mobilenet/ # MobileNet (depthwise separable conv, CIFAR-10)
β βββ vit/ # Vision Transformer (patch embed + BERT encoder, CIFAR-10)
β βββ unet/ # UNet (Oxford-IIIT Pet segmentation)
β βββ yolo/ # YOLO (Pascal VOC object detection)
βββ gen/ # Generative Models
β βββ dcgan/ # DCGAN (CelebA, transposed conv)
β βββ vae/ # VAE (reparameterization trick, KL divergence)
β βββ ddpm/ # DDPM (CIFAR-10, denoising diffusion)
β βββ simclr/ # SimCLR (CIFAR-10, contrastive learning)
βββ graph/ # Graph Neural Networks
β βββ gcn/ # GCN (Cora, spectral graph convolution)
βββ rl/ # Reinforcement Learning
β βββ dqn/ # DQN (CartPole, experience replay)
βββ nlp/ # Natural Language Processing
β βββ bert/ # BERT (MLM pretrain + classification finetune)
β βββ gpt/ # GPT (decoder-only, causal attention, KV cache)
β βββ lstm/ # LSTM (hand-written gates, IMDB sentiment)
β βββ word2vec/ # Word2Vec (CBOW + Skip-gram, negative sampling)
β βββ seq2seq/ # Seq2Seq Transformer (ENβDE translation)
β βββ lora/ # LoRA (parameter-efficient GPT fine-tuning)
βββ utils/ # Shared Infrastructure
β βββ config.py # YAML config loading/saving
β βββ seed.py # Reproducibility seed locking
β βββ device.py # CUDA β MPS β CPU auto-detection
βββ scripts/ # Notebook generation scripts
β βββ __init__.py
β βββ config.yaml # DCGAN hyperparameters
β βββ model.py # Generator + Discriminator
β βββ data.py # CelebA images (64Γ64, no labels)
β βββ train.py # Adversarial training loop (G/D alternating)
β βββ generate.py # Generate sample grid from trained model
βββ vit/
β βββ __init__.py
β βββ config.yaml # ViT hyperparameters (patch_size, d_model, n_layers, etc.)
β βββ model.py # ViT: PatchEmbed β Transformer encoder (reused from BERT) β CLS head
β βββ data.py # CIFAR-10 via HF datasets
β βββ train.py # Training loop
β βββ eval.py # Per-class accuracy on test split
βββ unet/
β βββ __init__.py
β βββ config.yaml # UNet hyperparameters
β βββ model.py # U-Net: encoderβdecoder with skip connections
β βββ data.py # Oxford-IIIT Pet (image + mask) with augmentation
β βββ train.py # Training loop (pixel-wise CrossEntropy)
β βββ eval.py # IoU and pixel accuracy
βββ cnn/
β βββ __init__.py
β βββ data.py # CIFAR-10 via HF datasets (uoft-cs/cifar10)
β βββ model.py # Plain CNN (ConvΓ3 + PoolΓ3 + FCΓ2)
β βββ train.py # Training script (Adam + CosineAnnealingLR)
β βββ eval.py # Test evaluation + confusion matrix
βββ mlp/
β βββ __init__.py
β βββ data.py # MNIST via HF datasets (ylecun/mnist)
β βββ model.py # MLP β pure NumPy (Linear, ReLU, SoftmaxCrossEntropy, SGD)
β βββ train.py # Training script
β βββ eval.py # Test evaluation (per-digit accuracy)
βββ utils/
β βββ __init__.py
β βββ config.py # YAML config loading/saving (load_config / save_config)
β βββ seed.py # set_seed() β lock torch + numpy + random + cudnn
βββ nlp/
β βββ bert/
β βββ word2vec/
β βββ lstm/
β βββ gpt/
β βββ seq2seq/
β βββ __init__.py
β βββ tokenizer.py # Word-level tokenizer (5000 vocab, from text8)
β βββ model.py # Decoder-only Transformer (Causal Attention + KV Cache)
β βββ train.py # Autoregressive LM on text8
β βββ generate.py # Text generation (temperature + top-k + [SEP] blocked)
β βββ seq2seq/
β βββ __init__.py
β βββ config.yaml # Transformer hyperparameters
β βββ model.py # Encoder (from BERT) + Decoder (cross-attention) β Seq2Seq
β βββ data.py # Multi30k ENβDE, word-level tokenizer
β βββ train.py # Teacher forcing training
β βββ generate.py # Greedy decoding translation demo
βββ basics/
β βββ __init__.py
β βββ logistic_regression.py # Single Linear layer + Softmax (92.3% on MNIST)
β βββ linear_regression.py # California Housing (Normal Equation + GD, RΒ²=0.583)
β βββ k_means.py # Unsupervised clustering (pure NumPy)
β βββ svm.py # SVM β GD (primal) + SMO (dual, Linear/RBF kernels)
β βββ decision_tree.py # ID3/CART on Iris (ASCII tree, ~93% acc)
β βββ random_forest.py # Bagging + random feature subsets, Iris 93.3%
β βββ gbdt.py # Gradient boosting (MSE reg + binary logloss cls)
β βββ naive_bayes.py # Gaussian NB on MNIST (generative classifier)
β βββ pca.py # SVD-based dimensionality reduction (MNIST 2D visualisation)
β βββ knn.py # k-Nearest Neighbors (instance-based, MNIST)
β βββ perceptron.py # Single neuron (Rosenblatt 1958, step activation)
βββ .gitattributes # LFS: *.zip *.pt
βββ uv.lock
Infrastructure
| Feature |
Description |
| Config system |
Each model directory has a config.yaml with its hyperparameters (seed, lr, batch_size, epochs, etc.). Edit the YAML to change training params without touching code. |
| TensorBoard |
Every PyTorch training script logs loss/accuracy per epoch to runs/{model_name}/. Run tensorboard --logdir runs to visualize all experiments. |
| Reproducibility |
utils/seed.py provides set_seed() that locks torch + numpy + random + cudnn. Called at the start of every train script. Config is saved alongside model weights (_config.yaml). |
Usage
tensorboard --logdir runs
vim cv/resnet18/config.yaml
uv run python -m cv.resnet18.train
CV/ResNet18
| Item |
Value |
| Model |
ResNet18 (11.2M params) |
| Dataset |
CelebA via HF datasets β 1,000 images |
| Attributes |
15 binary (Smiling, Male, Young, Eyeglasses, etc.) |
| Split |
800 train / 200 val |
| Val Accuracy |
91.2% |
| Training |
MPS (Mac M4) + AMP |
CV/ResNet34
| Item |
Value |
| Model |
ResNet34 (~21M params, [3,4,6,3] BasicBlock) |
| Dataset |
CelebA via HF datasets β full 200K |
| Attributes |
All 40 binary attributes |
| Optimizer |
SGD + Momentum (0.9, weight_decay=1e-4) |
| Training |
CosineAnnealingLR + Gradient Accumulation + Early Stopping + Loss Weighting |
CV/ResNet50
| Item |
Value |
| Model |
ResNet50 (~23.6M params, [3,4,6,3] Bottleneck) |
| Dataset |
CelebA via HF datasets β full 200K |
| Attributes |
All 40 binary attributes |
| Optimizer |
SGD + Momentum (0.9, weight_decay=1e-4) |
| Architecture |
Bottleneck block: 1Γ1 β 3Γ3 β 1Γ1 (contrast with BasicBlock's two 3Γ3) |
GEN/VAE
| Item |
Value |
| Model |
Variational Autoencoder (2.6M params) |
| Dataset |
CelebA via HF datasets β 10K images (64Γ64) |
| Architecture |
Conv Encoder β ΞΌ,logΟΒ² β reparameterize β Deconv Decoder β Sigmoid |
| Loss |
Reconstruction (BCE) + KL divergence |
| Training |
Adam(lr=2e-4), 50 epoch |
NLP/Seq2Seq Transformer
| Item |
Value |
| Model |
Encoder-Decoder Transformer (1M params) |
| Dataset |
Multi30k ENβDE β 29K train / 1K test |
| Architecture |
Encoder (from BERT) + Decoder (causal + cross-attention) |
| Training |
Teacher forcing, weight-tying, Adam(lr=1e-4) |
GEN/DDPM
| Item |
Value |
| Model |
Denoising Diffusion (16.1M params) |
| Dataset |
CIFAR-10 via HF datasets β 50K images (32Γ32) |
| Architecture |
UNet + timestep embedding + sinusoid positional encoding |
| Training |
Noise prediction (MSE), T=1000, linear Ξ² schedule |
| Sampling |
Reverse diffusion (x_T β x_0), 1000 steps |
GRAPH/GCN
| Item |
Value |
| Model |
2-layer Graph Convolutional Network (23K params) |
| Dataset |
Cora via URL β 2708 nodes, 1433 features, 7 classes |
| Architecture |
GraphConv Γ 2: Γ @ H @ W (spectral graph convolution) |
| Training |
Semi-supervised (20 labels/class), CrossEntropyLoss |
RL/DQN
| Item |
Value |
| Model |
Deep Q-Network (17K params) |
| Environment |
CartPole-v1 via Gymnasium β 4-dim state, 2 actions |
| Architecture |
3-layer MLP (4β128β128β2) |
| Training |
Experience replay, target network, Ξ΅-greedy decay |
GEN/SimCLR
| Item |
Value |
| Model |
SimCLR (11M params: ResNet18 encoder + MLP projector) |
| Dataset |
CIFAR-10 via HF datasets β self-supervised (no labels) |
| Architecture |
ResNet18 β Projector(512β256β128) β NT-Xent loss |
| Training |
100 epoch, temperature=0.5, dual random augmentation |
CV/YOLO
| Item |
Value |
| Model |
Simplified YOLO (59M params) |
NLP/LoRA
| Item |
Value |
| Model |
Low-Rank Adaptation on GPT (32K trainable / 5.7M frozen) |
| Dataset |
text8 via HF datasets β 5K chunks |
| Architecture |
LoRALayer: frozen Linear + low-rank BΓA |
| Key concept |
Parameter-efficient fine-tuning, 0.58% trainable params |
| Comparison |
Full fine-tune: 5.7M vs LoRA r=8: 32K |
CV/MobileNet
| Item |
Value |
| Model |
MobileNetV1 (135K params, width=1.0) |
| Dataset |
CIFAR-10 via HF datasets β 50K train / 10K test |
| Architecture |
DepthwiseSeparableConv (depthwise 3Γ3 + pointwise 1Γ1) |
| Key concept |
Depthwise separable convolution, ~8.4Γ fewer ops than standard conv |
| Comparison |
SimpleCNN 620K params β MobileNet 135K (4.6Γ smaller) |
| Dataset |
Pascal VOC via HF datasets β 20 classes |
| Architecture |
CNN backbone β FC detection head β 7Γ7Γ30 output |
| Training |
YOLO loss (coord + obj + noobj + class), NMS at inference |
DCGAN
| Item |
Value |
| Model |
Generator (3.5M params) + Discriminator (2.8M params) |
| Dataset |
CelebA via HF datasets β 10K images (64Γ64) |
| Architecture |
Transposed conv G / Conv D, BN, LeakyReLU |
| Optimizer |
Adam(lr=2e-4, Ξ²β=0.5) β separate for G and D |
| Training |
BCELoss, label smoothing, fixed noise grid for monitoring |
CV/ViT
| Item |
Value |
| Model |
Vision Transformer (807K params, 4 layers, 4 heads, 128-dim) |
| Dataset |
CIFAR-10 via HF datasets β 50K train / 10K test |
| Architecture |
PatchEmbed(4Γ4) β [CLS] β Transformer Encoder (from BERT) β CLS head |
| Key concept |
Self-attention for vision, no convolutions, patch embeddings |
CV/UNet
| Item |
Value |
| Model |
U-Net (31M params, 5 encoder/decoder stages) |
| Dataset |
Oxford-IIIT Pet via HF datasets β image + segmentation mask |
| Architecture |
Encoder: Conv+MaxPool Γ 4, Decoder: UpConv+skip Γ 4, output: pixel-wise logits |
| Loss |
CrossEntropy (ignore_index=0 for unlabeled) |
| Metrics |
Pixel accuracy, mean IoU |
CV/SimpleCNN
| Item |
Value |
| Model |
SimpleCNN (620K params) |
| Dataset |
CIFAR-10 via HF datasets β 50K images |
| Classes |
10 (airplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck) |
| Test Accuracy |
82.4% (30 epochs) |
| Training |
Adam + CosineAnnealingLR |
ML/MLP
| Item |
Value |
| Model |
MLP (235K params, pure NumPy) |
| Dataset |
MNIST via HF datasets β 60K images |
| Classes |
10 digits (0-9) |
| Test Accuracy |
97.9% (20 epochs) |
| Framework |
NumPy only (hand-written backward pass) |
BERT
| Item |
Value |
| Model |
BERT mini (834K params, 4 layers, 4 heads, 128-dim) |
| Pre-training |
MLM on text8 (90M chars, HuggingFace) |
| Fine-tuning |
Sentiment classification on IMDB (HuggingFace) |
| Test Accuracy |
~50% (character-level; word-level would be higher with subword tokenization) |
| Core components |
Self-Attention (semantic aggregation) + MLM (entropy increase noise reduction) |
Word2Vec
| Item |
Value |
| Model |
Word2Vec (50-dim embeddings, 97K vocab) |
| Architectures |
CBOW + Skip-gram with Negative Sampling |
| Dataset |
text8 via HF datasets (~90M chars) |
| Training |
Adam, 5 epochs, k=5 negative samples |
| Evaluation |
Cosine similarity search in embedding space |
| Key concept |
Static word embeddings from distributional semantics |
LSTM
| Item |
Value |
| Model |
LSTM (145K params, hand-written gates) |
| Dataset |
IMDB via HuggingFace (9K train / 1K test) |
| Architecture |
Embedding(128) β LSTM(128β128) β FC(128β2) |
| Test Accuracy |
~50-60% (character-level, harder than word-level) |
| Key concepts |
Input/forget/output gates, cell state, gradient flow through gating |
GPT
| Item |
Value |
| Model |
Decoder-only Transformer (5.7M params, word-level) |
| Dataset |
text8 via HuggingFace (15M words, 20K chunks) |
| Training |
Autoregressive (predict next token), PPL 4.63 |
| Generation |
Temperature + top-k sampling with KV Cache, [SEP] blocked |
| Key concepts |
Causal Self-Attention, KV Cache, autoregressive generation, word-level tokenization |
Basics
| Algorithm |
File |
Datasets |
Metric |
| Logistic Regression |
ml/basics/logistic_regression.py |
MNIST |
92.3% test accuracy |
| Linear Regression |
ml/basics/linear_regression.py |
California Housing |
RΒ²=0.583 |
| K-Means |
ml/basics/k_means.py |
MNIST |
57.8% cluster purity |
| SVM (GD + SMO) |
ml/basics/svm.py |
MNIST 3v5 |
93.3% (RBF kernel) |
| Decision Tree |
ml/basics/decision_tree.py |
Iris |
93.3% test acc |
| Random Forest |
ml/basics/random_forest.py |
Iris |
93.3% test acc (50 trees) |
| GBDT |
ml/basics/gbdt.py |
sin(x) / synthetic 2D |
MSE 0.21 / 100% bin cls |
| Naive Bayes |
ml/basics/naive_bayes.py |
MNIST |
53.0% test acc |
| PCA |
ml/basics/pca.py |
MNIST |
17.3% variance in 2 components |
| k-NN |
ml/basics/knn.py |
MNIST |
~87% (k=5, 2000 train) |
| Perceptron |
ml/basics/perceptron.py |
MNIST 0v1 |
100% (linearly separable) |
SVM implementations
| Method |
Type |
Kernel |
Notes |
SVM_GD |
Primal GD |
Linear only |
Fast, robust, ~80 lines |
SVM_SMO |
Dual SMO |
Linear + RBF |
Platt SMO, ~150 lines, supports kernel trick |
See resnet18/README.md for details.
Core Concepts
Every model in this project was written from scratch to teach a specific
set of ML/DL concepts. The table below maps each model to the key ideas
it demonstrates.
| Module |
Model |
Key concepts |
basics/ |
Logistic Regression |
Linear decision boundary, Softmax, Cross-Entropy, closed-form vs gradient descent |
basics/ |
Linear Regression |
Normal Equation, MSE, RΒ² score, feature standardisation |
basics/ |
K-Means |
Unsupervised learning, Euclidean distance, iterative centroid refinement, cluster purity |
basics/ |
SVM (GD) |
Hinge loss, max-margin classification, L2 regularisation, primal gradient descent |
basics/ |
SVM (SMO) |
Dual formulation, Lagrange multipliers, KKT conditions, kernel trick (RBF) |
basics/ |
Decision Tree |
Entropy, Information Gain, recursive partitioning, interpretable ASCII tree |
basics/ |
Random Forest |
Bagging, bootstrap sampling, feature randomness, ensemble diversity β variance reduction |
basics/ |
GBDT |
Gradient boosting, stage-wise additive model, pseudo-residuals, learning rate shrinkage |
basics/ |
Naive Bayes |
Bayes' theorem, generative vs discriminative models, Gaussian likelihood, log-space prediction |
basics/ |
PCA |
Singular Value Decomposition (SVD), eigenvalue, dimensionality reduction, variance explained |
basics/ |
k-NN |
Instance-based learning, distance metrics, curse of dimensionality, bias-variance tradeoff |
basics/ |
Perceptron |
Single neuron, step activation, online learning, Perceptron Convergence Theorem |
mlp/ |
MLP (NumPy) |
Manual backpropagation, chain rule, gradient descent without autograd, softmax cross-entropy |
cv/simplecnn/ |
SimpleCNN |
Convolution, max-pooling, BatchNorm, Dropout, CosineAnnealing LR schedule |
cv/resnet18/ |
ResNet18 |
Residual connections (skip connections), BatchNorm in deep networks, bottleneck design, AMP |
cv/resnet34/ |
ResNet34 |
SGD+Momentum, CosineAnnealingLR, gradient accumulation, early stopping, ROC AUC, F1 |
cv/resnet50/ |
ResNet50 |
Bottleneck block (1Γ1β3Γ3β1Γ1), deeper residual networks |
gen/vae/ |
VAE |
Reparameterization trick, KL divergence, latent space interpolation |
nlp/seq2seq/ |
Seq2Seq Transformer |
Encoder-decoder, cross-attention, teacher forcing, weight-tying |
gen/ddpm/ |
DDPM |
Denoising Diffusion, UNet + timestep embedding, noise prediction |
gen/dcgan/ |
DCGAN |
Transposed convolution, adversarial training, generator/discriminator dynamics |
cv/vit/ |
Vision Transformer (ViT) |
Patch embedding, self-attention for vision, Transformer without convolutions |
cv/unet/ |
U-Net |
Encoder-decoder, skip connections, pixel-wise classification, IoU metric |
nlp/bert/ |
BERT mini |
Self-Attention (semantic aggregation), Masked Language Model (entropy increase + denoising), LayerNorm, positional encoding |
nlp/word2vec/ |
Word2Vec |
Embedding lookup tables, Negative Sampling, CBOW vs Skip-gram, subsampling frequent words, cosine similarity |
nlp/lstm/ |
LSTM |
Input/forget/output gates, cell state, gradient flow through gating, sequential processing vs parallel attention |
graph/gcn/ |
GCN |
Graph convolution, message passing, semi-supervised node classification |
rl/dqn/ |
DQN |
Q-Learning, experience replay, target network, Ξ΅-greedy |
gen/simclr/ |
SimCLR |
Contrastive learning, NT-Xent loss, data augmentation |
nlp/lora/ |
LoRA |
Low-rank adaptation, parameter-efficient fine-tuning, GPT adapter |
cv/mobilenet/ |
MobileNet |
Depthwise separable convolution, efficient CNN, width multiplier |
cv/yolo/ |
YOLO |
Single-stage object detection, grid-based regression, NMS |
nlp/gpt/ |
GPT |
Causal Self-Attention, KV Cache, autoregressive generation, word-level tokenizer, temperature + top-k sampling, bad-token blocking |
Setup & Run
uv sync
uv run python -m cv.resnet18.train
uv run python -m cv.resnet18.eval
uv run python -m cv.resnet34.train
uv run python -m cv.resnet34.eval
uv run python -m cv.resnet50.train
uv run python -m cv.resnet50.eval
uv run python -m gen.vae.train
uv run python -m gen.vae.generate
uv run python -m nlp.seq2seq.train
uv run python -m nlp.seq2seq.generate
uv run python -m graph.gcn.train
uv run python -m graph.gcn.eval
uv run python -m rl.dqn.train
uv run python -m gen.simclr.train
uv run python -m cv.yolo.train
uv run python -m cv.yolo.demo --image my_image.jpg --conf 0.3 --iou 0.5
uv run python -m nlp.lora.train
uv run python -m nlp.lora.generate
uv run python -m cv.mobilenet.train
uv run python -m cv.mobilenet.eval
uv run python -m cv.yolo.train
uv run python -m gen.ddpm.train
uv run python -m gen.ddpm.generate
uv run python -m gen.dcgan.train
uv run python -m gen.dcgan.generate
uv run python -m cv.vit.train
uv run python -m cv.vit.eval
uv run python -m cv.vit.demo --image my_image.jpg
uv run python -m cv.unet.train
uv run python -m cv.unet.eval
uv run python -m cv.unet.demo --image my_image.jpg
uv run python -m cv.simplecnn.train
uv run python -m cv.simplecnn.eval
uv run python -m mlp.train
uv run python -m mlp.eval
uv run python -m basics.logistic_regression
uv run python -m basics.k_means
uv run python -m basics.linear_regression
uv run python -m basics.svm
uv run python -m basics.decision_tree
uv run python -m basics.random_forest
uv run python -m basics.gbdt
uv run python -m basics.naive_bayes
uv run python -m basics.pca
uv run python -m basics.knn
uv run python -m basics.perceptron
uv run python -m nlp.bert.pretrain
uv run python -m nlp.bert.finetune
uv run python -m nlp.bert.eval
uv run python -m nlp.word2vec.train
uv run python -m nlp.word2vec.eval
uv run python -m nlp.lstm.train
uv run python -m nlp.lstm.eval
uv run python -m nlp.gpt.train
uv run python -m nlp.gpt.generate
Models
Trained weights are not tracked in git (.gitignore'ed). Each model saves its weights
locally after training; paths are shown below for reference.
| Model |
Local path |
Size |
| ResNet18 (15 attrs, 1K samples) |
cv/resnet18/resnet18_celeba.pt |
45 MB |
| ResNet34 (40 attrs, 200K samples) |
cv/resnet34/resnet34_celeba.pt |
~80 MB |
| ResNet50 (40 attrs, 200K samples) |
cv/resnet50/resnet50_celeba.pt |
~90 MB |
| VAE (CelebA, 64Γ64) |
gen/vae/vae_celeba.pt |
10 MB |
| Seq2Seq Transformer (Multi30k) |
nlp/seq2seq/seq2seq_multi30k.pt |
4 MB |
| GCN (Cora) |
graph/gcn/gcn_cora.pt |
0.1 MB |
| DQN (CartPole) |
rl/dqn/dqn_cartpole.pt |
0.07 MB |
| SimCLR (CIFAR-10) |
gen/simclr/simclr_cifar10.pt |
22 MB |
| YOLO (Pascal VOC) |
cv/yolo/yolo_voc.pt |
226 MB |
| LoRA (GPT-adapted, text8) |
nlp/lora/lora_gpt.pt |
0.2 MB |
| MobileNet (CIFAR-10) |
cv/mobilenet/mobilenet_cifar10.pt |
0.5 MB |
| DDPM (CIFAR-10, 32Γ32) |
gen/ddpm/ddpm_cifar10.pt |
62 MB |
| DCGAN (CelebA, 64Γ64) |
gen/dcgan/dcgan_celeba.pt |
~23 MB (G+D) |
| ViT (CIFAR-10, 32Γ32) |
cv/vit/vit_cifar10.pt |
3.2 MB |
| UNet (Oxford-Pet, 128Γ128) |
cv/unet/unet_oxford_pet.pt |
119 MB |
| SimpleCNN (CIFAR-10) |
cv/simplecnn/simple_cnn_cifar10.pt |
2.4 MB |
| MLP (MNIST, NumPy) |
mlp/mlp_mnist.npz |
0.9 MB |
| Logistic Regression |
basics/logistic_regression.npz |
63 KB |
| K-Means centers |
basics/kmeans_centers.npz |
32 KB |
| Linear Regression |
basics/linear_regression.npz |
2 KB |
| SVM |
basics/svm.npz |
45 KB |
| Decision Tree |
β |
N/A (no weights) |
| Naive Bayes |
β |
N/A (no weights) |
| PCA |
β |
N/A (data-dependent) |
| k-NN |
β |
N/A (no training) |
| Perceptron |
β |
N/A (no weights) |
| BERT (MLM) |
nlp/bert/bert_mlm.pt |
3.2 MB |
| BERT (finetuned) |
nlp/bert/bert_finetuned.pt |
3.2 MB |
| Word2Vec (SG) |
nlp/word2vec/skipgram.pt |
19 MB |
| Word2Vec (CBOW) |
nlp/word2vec/cbow.pt |
19 MB |
| LSTM |
nlp/lstm/lstm_sentiment.pt |
0.6 MB |
| GPT |
nlp/gpt/gpt_text8.pt |
3.3 MB |