From d56de04a4b1f19b9fa73e6f7f9c7a5a0eadd6dd3 Mon Sep 17 00:00:00 2001 From: skal Date: Wed, 11 Feb 2026 10:07:58 +0100 Subject: 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 --- workspaces/main/shaders/cnn/cnn_conv3x3.wgsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'workspaces/main/shaders/cnn/cnn_conv3x3.wgsl') diff --git a/workspaces/main/shaders/cnn/cnn_conv3x3.wgsl b/workspaces/main/shaders/cnn/cnn_conv3x3.wgsl index 1a5a3e1..d680840 100644 --- a/workspaces/main/shaders/cnn/cnn_conv3x3.wgsl +++ b/workspaces/main/shaders/cnn/cnn_conv3x3.wgsl @@ -108,5 +108,5 @@ fn cnn_conv3x3_7to1( } } - return clamp(sum, 0.0, 1.0); + return 1.0 / (1.0 + exp(-sum)); } -- cgit v1.2.3