diff options
Diffstat (limited to 'doc/CNN_V2_WEB_TOOL.md')
| -rw-r--r-- | doc/CNN_V2_WEB_TOOL.md | 45 |
1 files changed, 24 insertions, 21 deletions
diff --git a/doc/CNN_V2_WEB_TOOL.md b/doc/CNN_V2_WEB_TOOL.md index 2fbc70e..81549ab 100644 --- a/doc/CNN_V2_WEB_TOOL.md +++ b/doc/CNN_V2_WEB_TOOL.md @@ -49,9 +49,11 @@ Browser-based WebGPU tool for validating CNN v2 inference with layer visualizati **3. Visualization Modes** **Activations Mode:** -- 4 grayscale views per layer (channels 0-3) +- 4 grayscale views per layer (channels 0-3 of up to 8 total) - WebGPU compute → unpack f16 → scale → grayscale -- Auto-scale: Layer 0 (static) = 1.0, CNN layers = 0.2 +- Auto-scale: Static features = 1.0, CNN layers = 0.2 +- Static features: Shows R,G,B,D (first 4 of 8: RGBD+UV+sin+bias) +- CNN layers: Shows first 4 output channels **Weights Mode:** - 2D canvas rendering per output channel @@ -78,6 +80,21 @@ For each CNN layer i: Compute (ping-pong) → copy to layerTextures[i+1] ``` +### Layer Indexing + +**UI Layer Buttons:** +- "Static" → layerOutputs[0] (7D input features) +- "Layer 1" → layerOutputs[1] (CNN layer 1 output, uses weights.layers[0]) +- "Layer 2" → layerOutputs[2] (CNN layer 2 output, uses weights.layers[1]) +- "Layer N" → layerOutputs[N] (CNN layer N output, uses weights.layers[N-1]) + +**Weights Table:** +- "Layer 1" → weights.layers[0] (first CNN layer weights) +- "Layer 2" → weights.layers[1] (second CNN layer weights) +- "Layer N" → weights.layers[N-1] + +**Consistency:** Both UI and weights table use same numbering (1, 2, 3...) for CNN layers. + --- ## Known Issues @@ -192,26 +209,12 @@ For each CNN layer i: ## Binary Weight Format -**Header (16 bytes):** -``` -u32 magic; // 0x32_4E_4E_43 ("CNN2") -u32 version; // Format version -u32 num_layers; // Layer count -u32 total_weights;// Total f16 weight count -``` - -**Layer Info (20 bytes × N):** -``` -u32 kernel_size; // 3, 5, 7, etc. -u32 in_channels; // Input channel count -u32 out_channels; // Output channel count -u32 weight_offset; // Offset in f16 units -u32 weight_count; // Number of f16 weights -``` +See `doc/CNN_V2_BINARY_FORMAT.md` for complete specification. -**Weights (variable):** -- Packed f16 pairs as u32 (lo 16 bits, hi 16 bits) -- Sequential storage: [layer0_weights][layer1_weights]... +**Quick Summary:** +- Header: 16 bytes (magic, version, layer count, total weights) +- Layer info: 20 bytes × N (kernel size, channels, offsets) +- Weights: Packed f16 pairs as u32 --- |
