---
title: "Hands-on challenges"
description: "Build, train, and debug real models — hands-on challenges that test what you learned in each module."
canonical_url: "https://fanout.sh/ai/challenges"
md_url: "https://fanout.sh/ai/challenges.md"
access: "public"
---

# Hands-on challenges

Build, train, and debug real models — hands-on challenges that test what you learned in each module.

## Free challenges

### Train MNIST from Scratch to 95%+ Accuracy

Build a feedforward neural network that classifies handwritten digits using only NumPy and basic matrix operations. No high-level frameworks allowed for the core model.

- Difficulty: Starter
- Category: Beginner
- Objective: Achieve at least 95% test accuracy on the MNIST dataset with a model you implement from scratch, including forward pass, backpropagation, and gradient descent.
- Prerequisites: Math Fundamentals, PyTorch Fundamentals
- Tools: Python, NumPy, Matplotlib

### Implement Linear Regression with Gradient Descent

Code linear regression from first principles using only Python and NumPy. Derive the gradient of MSE loss by hand and implement batch gradient descent.

- Difficulty: Starter
- Category: Beginner
- Objective: Fit a linear model to a synthetic or real dataset, visualize the loss curve converging, and compare your solution to the closed-form normal equation.
- Prerequisites: Math Fundamentals
- Tools: Python, NumPy, Matplotlib

### Build a Word Tokenizer from Scratch

Implement BPE (Byte-Pair Encoding) tokenization from scratch. Handle vocabulary building, merge rules, encoding, and decoding without any tokenization libraries.

- Difficulty: Easy
- Category: Beginner
- Objective: Train a BPE tokenizer on a small text corpus, encode arbitrary strings into token IDs, decode them back perfectly, and compare compression ratios against character-level tokenization.
- Prerequisites: Math Fundamentals, PyTorch Fundamentals
- Tools: Python

---
This representation contains public Fanout content only. Protected Pro lessons, account data, billing, checkout, and pricing are not included.

Browse the public content map: https://fanout.sh/sitemap.md
