summaryrefslogtreecommitdiff
path: root/doc/HOWTO.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/HOWTO.md')
-rw-r--r--doc/HOWTO.md21
1 files changed, 21 insertions, 0 deletions
diff --git a/doc/HOWTO.md b/doc/HOWTO.md
index 85ce801..506bf0a 100644
--- a/doc/HOWTO.md
+++ b/doc/HOWTO.md
@@ -139,12 +139,18 @@ Enhanced CNN with parametric static features (7D input: RGBD + UV + sin encoding
# Train → Export → Build → Validate (default config)
./scripts/train_cnn_v2_full.sh
+# Rapid debug (1 layer, 3×3, 5 epochs)
+./scripts/train_cnn_v2_full.sh --num-layers 1 --kernel-sizes 3 --epochs 5 --output-weights test.bin
+
# Custom training parameters
./scripts/train_cnn_v2_full.sh --epochs 500 --batch-size 32 --checkpoint-every 100
# Custom architecture
./scripts/train_cnn_v2_full.sh --kernel-sizes 3,5,3 --num-layers 3 --mip-level 1
+# Custom output path
+./scripts/train_cnn_v2_full.sh --output-weights workspaces/test/cnn_weights.bin
+
# Grayscale loss (compute loss on luminance instead of RGBA)
./scripts/train_cnn_v2_full.sh --grayscale-loss
@@ -160,8 +166,11 @@ Enhanced CNN with parametric static features (7D input: RGBD + UV + sin encoding
**Defaults:** 200 epochs, 3×3 kernels, 8→4→4 channels, batch-size 16, patch-based (8×8, harris detector).
- Live progress with single-line update
+- Always saves final checkpoint (regardless of --checkpoint-every interval)
+- When multiple kernel sizes provided (e.g., 3,5,3), num_layers derived from list length
- Validates all input images on final epoch
- Exports binary weights (storage buffer architecture)
+- Streamlined output: single-line export summary, compact validation
- All parameters configurable via command-line
**Validation Only** (skip training):
@@ -201,12 +210,19 @@ Enhanced CNN with parametric static features (7D input: RGBD + UV + sin encoding
**Export Binary Weights:**
```bash
+# Verbose output (shows all layer details)
./training/export_cnn_v2_weights.py checkpoints/checkpoint_epoch_100.pth \
--output-weights workspaces/main/cnn_v2_weights.bin
+
+# Quiet mode (single-line summary)
+./training/export_cnn_v2_weights.py checkpoints/checkpoint_epoch_100.pth \
+ --output-weights workspaces/main/cnn_v2_weights.bin \
+ --quiet
```
Generates binary format: header + layer info + f16 weights (~3.2 KB for 3-layer model).
Storage buffer architecture allows dynamic layer count.
+Use `--quiet` for streamlined output in scripts (used automatically by train_cnn_v2_full.sh).
**TODO:** 8-bit quantization for 2× size reduction (~1.6 KB). Requires quantization-aware training (QAT).
@@ -268,6 +284,9 @@ See `doc/ASSET_SYSTEM.md` and `doc/WORKSPACE_SYSTEM.md`.
# CNN v2 (recommended, fully functional)
./build/cnn_test input.png output.png --cnn-version 2
+# CNN v2 with runtime weight loading (loads layer config from .bin)
+./build/cnn_test input.png output.png --weights checkpoints/checkpoint_epoch_100.pth.bin
+
# CNN v1 (produces incorrect output, debug only)
./build/cnn_test input.png output.png --cnn-version 1
@@ -282,6 +301,8 @@ See `doc/ASSET_SYSTEM.md` and `doc/WORKSPACE_SYSTEM.md`.
- **CNN v2:** ✅ Fully functional, matches CNNv2Effect
- **CNN v1:** ⚠️ Produces incorrect output, use CNNEffect in demo for validation
+**Note:** `--weights` loads layer count and kernel sizes from the binary file, overriding `--layers` and forcing CNN v2.
+
See `doc/CNN_TEST_TOOL.md` for full documentation.
---