diff --git a/include/aidge/backend/cpu/operator/SigmoidImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/SigmoidImpl_forward_kernels.hpp index 510bf9bb46523d4490cb3f4a53f1d951abb56882..24ba11a0bca7f3fa15f9ac1e2c13e29f88eaf074 100644 --- a/include/aidge/backend/cpu/operator/SigmoidImpl_forward_kernels.hpp +++ b/include/aidge/backend/cpu/operator/SigmoidImpl_forward_kernels.hpp @@ -27,7 +27,11 @@ void SigmoidImpl_cpu_forward_kernel(std::size_t inputLenght, //#pragma omp parallel for if (inputLenght > 1024) for (std::size_t i = 0; i < inputLenght; ++i) { - output[i] = O(1) / (O(1) + std::exp(-input[i])); + if (input[i] > I(0)) { + output[i] = O(1) / (O(1) + std::exp(-input[i])); + } else { + output[i] = std::exp(input[i]) / (O(1) + std::exp(input[i])); + } } }