summaryrefslogtreecommitdiff
path: root/cnn_v1/shaders/cnn_activation.wgsl
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-15 18:52:48 +0100
committerskal <pascal.massimino@gmail.com>2026-02-15 18:52:48 +0100
commitd4b67e2f6ab48ab9ec658140be4f1999f604559a (patch)
tree2502b0dc89748f7cfe674d3c177bd1528ce1c231 /cnn_v1/shaders/cnn_activation.wgsl
parent161a59fa50bb92e3664c389fa03b95aefe349b3f (diff)
archive(cnn): move CNN v1 to cnn_v1/ subdirectory
Consolidate CNN v1 (CNNEffect) into dedicated directory: - C++ effect: src/effects → cnn_v1/src/ - Shaders: workspaces/main/shaders/cnn → cnn_v1/shaders/ - Training: training/train_cnn.py → cnn_v1/training/ - Docs: doc/CNN*.md → cnn_v1/docs/ Updated all references: - CMake source list - C++ includes (relative paths: ../../cnn_v1/src/) - Asset paths (../../cnn_v1/shaders/) - Documentation cross-references CNN v1 remains active in timeline. For new work, use CNN v2 with enhanced features (7D static, storage buffer, sigmoid activation). Tests: 34/34 passing (100%)
Diffstat (limited to 'cnn_v1/shaders/cnn_activation.wgsl')
-rw-r--r--cnn_v1/shaders/cnn_activation.wgsl18
1 files changed, 18 insertions, 0 deletions
diff --git a/cnn_v1/shaders/cnn_activation.wgsl b/cnn_v1/shaders/cnn_activation.wgsl
new file mode 100644
index 0000000..4fe771e
--- /dev/null
+++ b/cnn_v1/shaders/cnn_activation.wgsl
@@ -0,0 +1,18 @@
+// CNN activation functions
+// 4 functions: tanh, ReLU, sigmoid, leaky_relu
+
+fn cnn_tanh(x: vec4<f32>) -> vec4<f32> {
+ return tanh(x);
+}
+
+fn cnn_relu(x: vec4<f32>) -> vec4<f32> {
+ return max(vec4<f32>(0.0), x);
+}
+
+fn cnn_sigmoid(x: vec4<f32>) -> vec4<f32> {
+ return 1.0 / (1.0 + exp(-x));
+}
+
+fn cnn_leaky_relu(x: vec4<f32>, alpha: f32) -> vec4<f32> {
+ return max(alpha * x, x);
+}