diff options
author | Pablo Tello <pablo.tello@arm.com> | 2018-09-12 09:47:25 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:54:54 +0000 |
commit | 952aeb160ea391b8634f71af31f45121ef97de46 (patch) | |
tree | 69797e9c2d2c64860f45a696074486cd35114859 /tests/validation/NEON/ConvolutionLayer.cpp | |
parent | 148b07500ad883ff2d31a4087ba2538103005979 (diff) | |
download | ComputeLibrary-952aeb160ea391b8634f71af31f45121ef97de46.tar.gz |
COMPMID-1551: NEWinograd 1x3 and 3x1 mismatches.
Fixed by increasing the tolerance in the nightly tests for
1xN and Nx1 kernel sizes.
Mismatches will happen occasionally since Winograd isn't numerically
equivalent to direct convolutionl; specially for the 1xNs where we
have quite a large window.
Change-Id: Ic7c8a002a8a767151b254e915bbd4b17fa96278b
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/148012
Tested-by: bsgcomp <bsgcomp@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'tests/validation/NEON/ConvolutionLayer.cpp')
-rw-r--r-- | tests/validation/NEON/ConvolutionLayer.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/tests/validation/NEON/ConvolutionLayer.cpp b/tests/validation/NEON/ConvolutionLayer.cpp index bb073b08ee..61bf4a2c37 100644 --- a/tests/validation/NEON/ConvolutionLayer.cpp +++ b/tests/validation/NEON/ConvolutionLayer.cpp @@ -47,8 +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 */ +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 */ + #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 */ const AbsoluteTolerance<float> abs_tolerance_f16(0.2f); /**< Absolute tolerance for FP16 types */ @@ -138,7 +140,7 @@ FIXTURE_DATA_TEST_CASE(RunLarge, NEWinogradConvolutionLayerFixture<float>, frame framework::dataset::make("DataLayout", { DataLayout::NCHW, DataLayout::NHWC }))) { // Validate output - validate(Accessor(_target), _reference, abs_tolerance_f32); + validate(Accessor(_target), _reference, abs_tolerance_1xN_f32); } TEST_SUITE_END() // Conv1x3 @@ -160,7 +162,7 @@ FIXTURE_DATA_TEST_CASE(RunLarge, NEWinogradConvolutionLayerFixture<float>, frame framework::dataset::make("DataLayout", { DataLayout::NCHW, DataLayout::NHWC }))) { // Validate output - validate(Accessor(_target), _reference, abs_tolerance_f32); + validate(Accessor(_target), _reference, abs_tolerance_1xN_f32); } TEST_SUITE_END() // Conv3x1 @@ -182,7 +184,7 @@ FIXTURE_DATA_TEST_CASE(RunLarge, NEWinogradConvolutionLayerFixture<float>, frame framework::dataset::make("DataLayout", { DataLayout::NCHW, DataLayout::NHWC }))) { // Validate output - validate(Accessor(_target), _reference, abs_tolerance_f32); + validate(Accessor(_target), _reference, abs_tolerance_1xN_f32); } TEST_SUITE_END() // Conv1x5 @@ -204,7 +206,7 @@ FIXTURE_DATA_TEST_CASE(RunLarge, NEWinogradConvolutionLayerFixture<float>, frame framework::dataset::make("DataLayout", { DataLayout::NCHW, DataLayout::NHWC }))) { // Validate output - validate(Accessor(_target), _reference, abs_tolerance_f32); + validate(Accessor(_target), _reference, abs_tolerance_1xN_f32); } TEST_SUITE_END() // Conv5x1 |