summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-12 11:34:50 +0100
committerskal <pascal.massimino@gmail.com>2026-02-12 11:34:50 +0100
commit91d42f2d057e077c267d6775cc109a801aa315c0 (patch)
tree18cd67c9ce11f24149e6dafa65d176ca7143fcbb /doc
parent301db1f29137d3db7828e7a0103986cc845b7672 (diff)
CNN v2: parametric static features - Phases 1-4
Infrastructure for enhanced CNN post-processing with 7D feature input. Phase 1: Shaders - Static features compute (RGBD + UV + sin10_x + bias → 8×f16) - Layer template (convolution skeleton, packing/unpacking) - 3 mip level support for multi-scale features Phase 2: C++ Effect - CNNv2Effect class (multi-pass architecture) - Texture management (static features, layer buffers) - Build integration (CMakeLists, assets, tests) Phase 3: Training Pipeline - train_cnn_v2.py: PyTorch model with static feature concatenation - export_cnn_v2_shader.py: f32→f16 quantization, WGSL generation - Configurable architecture (kernels, channels) Phase 4: Validation - validate_cnn_v2.sh: End-to-end pipeline - Checkpoint → shaders → build → test images Tests: 36/36 passing Next: Complete render pipeline implementation (bind groups, multi-pass) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/HOWTO.md26
1 files changed, 26 insertions, 0 deletions
diff --git a/doc/HOWTO.md b/doc/HOWTO.md
index 2b896ab..7be5246 100644
--- a/doc/HOWTO.md
+++ b/doc/HOWTO.md
@@ -130,6 +130,32 @@ Processes entire image with sliding window (matches WGSL):
**Kernel sizes:** 3×3 (36 weights), 5×5 (100 weights), 7×7 (196 weights)
+### CNN v2 Training
+
+Enhanced CNN with parametric static features (7D input: RGBD + UV + sin encoding + bias):
+
+```bash
+# Train CNN v2 with default config (1×1, 3×3, 5×5 kernels, 16→8→4 channels)
+./training/train_cnn_v2.py \
+ --input training/input/ --target training/output/ \
+ --epochs 5000 --batch-size 16 \
+ --checkpoint-every 1000
+
+# Custom architecture (smaller for size optimization)
+./training/train_cnn_v2.py \
+ --input training/input/ --target training/output/ \
+ --kernel-sizes 1 3 3 --channels 8 4 4 \
+ --epochs 5000 --batch-size 16
+```
+
+**Export shaders:**
+```bash
+./training/export_cnn_v2_shader.py checkpoints/checkpoint_epoch_5000.pth \
+ --output-dir workspaces/main/shaders
+```
+
+Generates `cnn_v2_layer_0.wgsl`, `cnn_v2_layer_1.wgsl`, `cnn_v2_layer_2.wgsl` with f16 weights.
+
### CNN v2 Validation
End-to-end testing: checkpoint → shaders → build → test images → results