aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md61
1 files changed, 52 insertions, 9 deletions
diff --git a/README.md b/README.md
index 8118d9e..6807e1e 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,56 @@
+# multilayer-perceptron
+
+A simple multilayer perceptron implementation in NumPy.
+
+## Requirements
+
+- Python >=3.10 (pinned to 3.14 via `.python-version`)
+- [uv](https://docs.astral.sh/uv/)
+
+## Getting started
+
+```bash
+# install dependencies (creates .venv, respects uv.lock)
+uv sync --all-groups
+
+# quick sanity check (no data files needed)
+uv run python -c "from MultiLayerPerceptron.main import MultiLayerPerceptron; import numpy as np; mlp = MultiLayerPerceptron([2,4,1]); print(mlp.frontprop(np.array([0,1])) )"
+
+# download MNIST and prepare files (one-time, ~60k train / 10k test)
+uv run mlp-download
+# creates data/train.npy, data/test.npy, mnist.npy (initial weights for [784,32,16,10])
+
+# run the MNIST demo (requires data/train.npy, data/test.npy, mnist.npy)
+uv run python -m MultiLayerPerceptron.main
+```
+
+Manual data tooling (MNIST `idx` → `npy` via `idx2numpy`):
+
+```bash
+uv run python -m MultiLayerPerceptron.download --help
+uv run python -m MultiLayerPerceptron.data # legacy, expects idx files in cwd
+```
+
+Development:
+
+```bash
+uv run ruff check .
+uv run ruff format .
+uv run ty check
+uv run pytest
+```
+
## How to use
-1. Download data and save them in `.npy` format. See `data.py` for details.
-2. Write a run file for processing data. See script in `main.py` for details.
+1. Download data and save them in `.npy` format. See `MultiLayerPerceptron/data.py` for details.
+2. Write a run file for processing data. See script in `MultiLayerPerceptron/main.py` for details.
## TODO
-* [ ] Print stages
-* [ ] Learning samples method
-* [ ] Save mlp
-* [ ] Choose error
-* [ ] Choose function
-* [ ] CLI
-* [ ] Multithread / Multiprocess \ No newline at end of file
+
+- [ ] Print stages
+- [ ] Learning samples method
+- [ ] Save mlp
+- [ ] Choose error
+- [ ] Choose function
+- [ ] CLI
+- [ ] Multithread / Multiprocess