summaryrefslogtreecommitdiff
path: root/TODO.md
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-21 09:51:58 +0100
committerskal <pascal.massimino@gmail.com>2026-03-21 09:51:58 +0100
commit673a24215b2670007317060325256059d1448f3b (patch)
treebfb2cf37a93eb62055bcca8441d9b15c3533e17c /TODO.md
parentb8b2707d7b3f2eaabd896395f2625e13405a24e2 (diff)
feat(cnn_v3): Phase 5 complete — parity validation passing (36/36 tests)
- Add test_cnn_v3_parity.cc: zero_weights + random_weights tests - Add gen_test_vectors.py: PyTorch reference implementation for enc0/enc1/bn/dec1/dec0 - Add test_vectors.h: generated C header with enc0, dec1, output expected values - Fix declare_nodes(): intermediate textures at fractional resolutions (W/2, W/4) using new NodeRegistry::default_width()/default_height() getters - Add layer-by-layer readback (enc0, dec1) for regression coverage - Final parity: enc0 max_err=1.95e-3, dec1 max_err=1.95e-3, out max_err=4.88e-4 handoff(Claude): CNN v3 parity done. Next: train_cnn_v3.py (FiLM MLP training).
Diffstat (limited to 'TODO.md')
-rw-r--r--TODO.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/TODO.md b/TODO.md
index 11c629e..559f8b3 100644
--- a/TODO.md
+++ b/TODO.md
@@ -76,7 +76,8 @@ PyTorch / HTML WebGPU / C++ WebGPU.
- Params alignment fix: WGSL `vec3u` align=16 → C++ structs 64/96 bytes
- Weight offsets as explicit formulas (e.g. `20*4*9+4`)
- FiLM γ/β: identity defaults; real values require trained MLP (see below)
-5. Parity validation (test vectors, ≤1/255 per pixel)
+5. ✅ Parity validation: test vectors + `test_cnn_v3_parity.cc`. max_err=4.88e-4 (≤1/255).
+ - Key fix: intermediate nodes at fractional resolutions (W/2, W/4) via `NodeRegistry::default_width()/default_height()`
**FiLM MLP training** (blocks meaningful Phase 4 output):
- Needs `cnn_v3/training/train_cnn_v3.py` — not yet written