aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/NEON/ConvolutionLayer.cpp
diff options
context:
space:
mode:
authorPablo Tello <pablo.tello@arm.com>2018-10-08 15:53:14 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:55:45 +0000
commitaf7e60026f74a7cbb2156862f72508fd9147ea56 (patch)
tree47ace66ce93dbd1be44e4c7ec78fcb117d750ed6 /tests/validation/NEON/ConvolutionLayer.cpp
parentd3d97d27645efe90505a62cd48079ad06a7cf283 (diff)
downloadComputeLibrary-af7e60026f74a7cbb2156862f72508fd9147ea56.tar.gz
COMPMID-1628: NEWinograd mismatches in the nightly.
Since this is floating point arithmetic the Winograd results will not be exactly the same as direct convolution. Changed to use relative tolerance for the nightly tests. Change-Id: I45c6d60a097c2d4fb53650a2a33eb29a3e51d7ec Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/152324 Tested-by: bsgcomp <bsgcomp@arm.com> Reviewed-by: Michele DiGiorgio <michele.digiorgio@arm.com>
Diffstat (limited to 'tests/validation/NEON/ConvolutionLayer.cpp')
-rw-r--r--tests/validation/NEON/ConvolutionLayer.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/tests/validation/NEON/ConvolutionLayer.cpp b/tests/validation/NEON/ConvolutionLayer.cpp
index 72e67a9acc..d216d9db86 100644
--- a/tests/validation/NEON/ConvolutionLayer.cpp
+++ b/tests/validation/NEON/ConvolutionLayer.cpp
@@ -47,9 +47,10 @@ namespace validation
{
namespace
{
-RelativeTolerance<float> rel_tolerance_f32(0.01f); /**< Relative tolerance for FP32 types */
-const AbsoluteTolerance<float> abs_tolerance_f32(0.002f); /**< Absolute tolerance for FP32 types */
-const AbsoluteTolerance<float> abs_tolerance_1xN_f32(0.0041f); /**< Absolute tolerance for FP32 types */
+const RelativeTolerance<float> rel_tolerance_f32(0.01f); /**< Relative tolerance for FP32 types */
+const RelativeTolerance<float> rel_tolerance_winograd_3x3_f32(0.05f); /**< Relative tolerance for FP32 types */
+const AbsoluteTolerance<float> abs_tolerance_f32(0.002f); /**< Absolute tolerance for FP32 types */
+const AbsoluteTolerance<float> abs_tolerance_1xN_f32(0.0041f); /**< Absolute tolerance for FP32 types */
#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
const RelativeTolerance<half_float::half> rel_tolerance_f16(half_float::half(0.2f)); /**< Relative tolerance value for FP16 types */
@@ -274,7 +275,8 @@ FIXTURE_DATA_TEST_CASE(RunLarge, NEWinogradConvolutionLayerFixture<float>, frame
{
// Validate output
- validate(Accessor(_target), _reference, abs_tolerance_f32);
+ // floating point arithmetic the Winograd results will not be exactly the same as direct convolution, especially for big shapes
+ validate(Accessor(_target), _reference, rel_tolerance_winograd_3x3_f32, 0.f, float(abs_tolerance_f32));
}
TEST_SUITE_END() // Conv3x3