Skip to content

Commit a6979f3

Browse files
committed
added sigmoid backward pass
1 parent 01f9710 commit a6979f3

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

ggml/src/ggml.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6837,6 +6837,13 @@ static void ggml_compute_backward(
68376837
ggml_add_or_set(ctx, cgraph, isrc0, ggml_mul(ctx, grad, ggml_exp(ctx, src0)));
68386838
}
68396839
} break;
6840+
case GGML_UNARY_OP_SIGMOID: {
6841+
// d/dx sigmoid(x) = sigmoid(x) * (1 - sigmoid(x)) = tensor - tensor^2
6842+
if (src0_needs_grads) {
6843+
struct ggml_tensor * dsigmoid = ggml_sub(ctx, tensor, ggml_sqr(ctx, tensor));
6844+
ggml_add_or_set(ctx, cgraph, isrc0, ggml_mul(ctx, grad, dsigmoid));
6845+
}
6846+
} break;
68406847
case GGML_UNARY_OP_SOFTPLUS: {
68416848
if (src0_needs_grads) {
68426849
ggml_add_or_set(ctx, cgraph, isrc0, ggml_mul(ctx, grad, ggml_sigmoid(ctx, src0)));

0 commit comments

Comments
 (0)