From 29388f80a58b953850f23bb8a0efea557e232b7d Mon Sep 17 00:00:00 2001 From: fengyuentau Date: Fri, 23 Jun 2023 17:10:29 +0800 Subject: [PATCH] fix overflow --- modules/dnn/src/layers/elementwise_layers.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/dnn/src/layers/elementwise_layers.cpp b/modules/dnn/src/layers/elementwise_layers.cpp index b84523eb93..e4375abd6d 100644 --- a/modules/dnn/src/layers/elementwise_layers.cpp +++ b/modules/dnn/src/layers/elementwise_layers.cpp @@ -680,7 +680,14 @@ struct SigmoidFunctor : public BaseDefaultFunctor inline float calculate(float x) const { - return 1.f / (1.f + exp(-x)); + float y; + if (x >= 0) + y = 1.f / (1.f + exp(-x)); + else { + y = exp(x); + y = y / (1 + y); + } + return y; } #ifdef HAVE_HALIDE