A collection of small, hands-on notebooks for learning automatic differentiation, neural networks, and common machine-learning workflows. The repository starts with a scalar-valued autograd engine inspired by micrograd, then moves into PyTorch regression and classification exercises.
| Notebook | Topic |
|---|---|
micrograd_walkthrough.ipynb |
Build scalar autograd, neurons, layers, and a multilayer perceptron from scratch |
micrograd_exercises.ipynb |
Derivatives, backpropagation, and softmax exercises |
tensor_practice.ipynb |
PyTorch tensor fundamentals |
linear_regression.ipynb |
A complete PyTorch linear-regression workflow |
classification.ipynb |
Binary and multiclass classification with PyTorch |
fashionMNIST.ipynb |
Fashion-MNIST dataset, data loaders, and neural-network training |
exercises/02_pytorch_classification_exercises.ipynb |
Additional PyTorch classification exercises |
decision_trees/melbourne_housing.ipynb |
Initial exploration of the Melbourne housing dataset |
Reusable plotting, evaluation, download, and reproducibility utilities live in
helper_functions.py.
Python 3.12 is recommended.
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
jupyter labThe Python graphviz package also needs the Graphviz system executable when
rendering computation graphs. On macOS, install it with brew install graphviz.
Downloaded datasets belong in data/, and generated PyTorch weights use the
.pt or .pth extensions. These files are intentionally ignored so the
repository stays small and reproducible. The Fashion-MNIST notebook downloads
its dataset automatically; the decision-tree notebook expects
data/melbourne-housing/melb_data.csv.