From a6979f3d5667019998e04879ead5b2cae91fa276 Mon Sep 17 00:00:00 2001 From: Salvatore Rossitto Date: Tue, 17 Mar 2026 09:07:21 +0100 Subject: [PATCH] added sigmoid backward pass --- ggml/src/ggml.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ggml/src/ggml.c b/ggml/src/ggml.c index f85f45b3de..4ac4d9ea7d 100644 --- a/ggml/src/ggml.c +++ b/ggml/src/ggml.c @@ -6837,6 +6837,13 @@ static void ggml_compute_backward( ggml_add_or_set(ctx, cgraph, isrc0, ggml_mul(ctx, grad, ggml_exp(ctx, src0))); } } break; + case GGML_UNARY_OP_SIGMOID: { + // d/dx sigmoid(x) = sigmoid(x) * (1 - sigmoid(x)) = tensor - tensor^2 + if (src0_needs_grads) { + struct ggml_tensor * dsigmoid = ggml_sub(ctx, tensor, ggml_sqr(ctx, tensor)); + ggml_add_or_set(ctx, cgraph, isrc0, ggml_mul(ctx, grad, dsigmoid)); + } + } break; case GGML_UNARY_OP_SOFTPLUS: { if (src0_needs_grads) { ggml_add_or_set(ctx, cgraph, isrc0, ggml_mul(ctx, grad, ggml_sigmoid(ctx, src0)));