diff options
author | Milos Puzovic <Milos.Puzovic@arm.com> | 2022-10-28 00:09:32 +0100 |
---|---|---|
committer | Viet-Hoa Do <viet-hoa.do@arm.com> | 2022-11-01 11:08:33 +0000 |
commit | 199982fc01bcce10120cd6df03d11829a215c85c (patch) | |
tree | 5a8884fa7a216edf8c18b5cfeb8b1537935b5e80 /tests/validation | |
parent | 4b5f6efef15efd79727a58c520c92c9e7a084256 (diff) | |
download | ComputeLibrary-199982fc01bcce10120cd6df03d11829a215c85c.tar.gz |
Add threshold for floating-point SOFT_RELU activation
Added missing threshold for calculating SOFT_RELU when SVE and CL implementations are used. As a result removed from the testing bounds for input values that were set to be in the interval [-40, 40].
Resolves: COMPMID-5658
Signed-off-by: Milos Puzovic <Milos.Puzovic@arm.com>
Change-Id: I3d14df60125e36e4eb85aeb222f4fb0cc5741521
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/8536
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Reviewed-by: Gunes Bayir <gunes.bayir@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests/validation')
-rw-r--r-- | tests/validation/Helpers.h | 6 | ||||
-rw-r--r-- | tests/validation/reference/ActivationLayer.h | 2 |
2 files changed, 2 insertions, 6 deletions
diff --git a/tests/validation/Helpers.h b/tests/validation/Helpers.h index a8804ad7e7..cbbdfbb6c4 100644 --- a/tests/validation/Helpers.h +++ b/tests/validation/Helpers.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2021 Arm Limited. + * Copyright (c) 2017-2022 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -91,10 +91,6 @@ std::pair<T, T> get_activation_layer_test_bounds(ActivationLayerInfo::Activation case DataType::F32: switch(activation) { - case ActivationLayerInfo::ActivationFunction::SOFT_RELU: - // Reduce range as exponent overflows - bounds = std::make_pair(-40.f, 40.f); - break; case ActivationLayerInfo::ActivationFunction::SQRT: // Reduce range as sqrt should take a non-negative number bounds = std::make_pair(0.f, 255.f); diff --git a/tests/validation/reference/ActivationLayer.h b/tests/validation/reference/ActivationLayer.h index 2bf96831a6..a813ba5037 100644 --- a/tests/validation/reference/ActivationLayer.h +++ b/tests/validation/reference/ActivationLayer.h @@ -64,7 +64,7 @@ inline T activate_float(T x, T a, T b, ActivationLayerInfo::ActivationFunction a ret = (x > 0) ? x : a * x; break; case ActivationLayerInfo::ActivationFunction::SOFT_RELU: - ret = std::log(static_cast<T>(1) + std::exp(x)); + ret = std::log(static_cast<T>(1) + std::exp(static_cast<double>(x))); break; case ActivationLayerInfo::ActivationFunction::ELU: ret = (x > 0) ? x : a * (std::exp(x) - static_cast<T>(1)); |