summaryrefslogtreecommitdiff
path: root/workspaces/main/shaders/cnn/cnn_layer.wgsl
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-11 10:07:58 +0100
committerskal <pascal.massimino@gmail.com>2026-02-11 10:07:58 +0100
commitd56de04a4b1f19b9fa73e6f7f9c7a5a0eadd6dd3 (patch)
treec5a91b8bb490ae6d9464cb5c7cc0e9306cb2be36 /workspaces/main/shaders/cnn/cnn_layer.wgsl
parent3e7d0ee97426cfe89938432781d71f6db94fdb07 (diff)
fix: Replace clamp with sigmoid in CNN final layer
Final layer used hard clamp causing saturation to white when output > 1.0. Replaced with sigmoid activation for smooth [0,1] mapping with gradients. Changes: - train_cnn.py: torch.sigmoid() in forward pass and WGSL codegen - WGSL shaders: 1.0/(1.0+exp(-sum)) in cnn_conv3x3/5x5 _7to1 functions Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'workspaces/main/shaders/cnn/cnn_layer.wgsl')
-rw-r--r--workspaces/main/shaders/cnn/cnn_layer.wgsl2
1 files changed, 1 insertions, 1 deletions
diff --git a/workspaces/main/shaders/cnn/cnn_layer.wgsl b/workspaces/main/shaders/cnn/cnn_layer.wgsl
index c5abddb..c5f45ec 100644
--- a/workspaces/main/shaders/cnn/cnn_layer.wgsl
+++ b/workspaces/main/shaders/cnn/cnn_layer.wgsl
@@ -46,7 +46,7 @@ struct CNNLayerParams {
}
else if (params.layer_index == 2) {
let gray_out = cnn_conv3x3_7to1(txt, smplr, uv, uniforms.resolution, gray, weights_layer2);
- // gray_out in [0,1] (clamped to match PyTorch training)
+ // gray_out in [0,1] (sigmoid activation)
result = vec4<f32>(gray_out, gray_out, gray_out, 1.0);
return mix(original_raw, result, params.blend_amount); // [0,1]
}