aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorManuel Bottini <manuel.bottini@arm.com>2019-03-18 15:25:15 +0000
committerManuel Bottini <manuel.bottini@arm.com>2019-03-28 10:40:27 +0000
commit60f3911996871e6163ce5a9a2dfca02125db8ecf (patch)
treea2f03e0183a92ea2cdd9f4f94a918125d062efaa /tests
parentc274195aa61c272f590e9e8fbdc1ca2dc387906c (diff)
downloadComputeLibrary-60f3911996871e6163ce5a9a2dfca02125db8ecf.tar.gz
COMPMID-2008: Add support for "reflect" padding mode in CLPad
Change-Id: I469f8173d5c4a1b6f03b52b9ddd33928dacd1e7b Signed-off-by: Manuel Bottini <manuel.bottini@arm.com> Reviewed-on: https://review.mlplatform.org/c/869 Tested-by: Arm Jenkins <bsgcomp@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Giuseppe Rossini <giuseppe.rossini@arm.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/validation/CL/PadLayer.cpp89
1 files changed, 44 insertions, 45 deletions
diff --git a/tests/validation/CL/PadLayer.cpp b/tests/validation/CL/PadLayer.cpp
index 9430b1212b..2ad29fc0e5 100644
--- a/tests/validation/CL/PadLayer.cpp
+++ b/tests/validation/CL/PadLayer.cpp
@@ -43,9 +43,9 @@ namespace
const auto PaddingSizesDataset = framework::dataset::make("PaddingSize", { PaddingList{ { 0, 0 } },
PaddingList{ { 1, 1 } },
PaddingList{ { 1, 1 }, { 2, 2 } },
- PaddingList{ { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 } },
- PaddingList{ { 0, 0 }, { 1, 0 }, { 0, 1 }, { 1, 2 } },
- PaddingList{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 1, 1 } }
+ PaddingList{ { 1, 1 }, { 1, 1 }, { 1, 1 } },
+ PaddingList{ { 0, 0 }, { 1, 0 }, { 0, 1 } },
+ PaddingList{ { 0, 0 }, { 0, 0 }, { 0, 0 } }
});
} // namespace
@@ -55,32 +55,44 @@ TEST_SUITE(PadLayer)
// *INDENT-OFF*
// clang-format off
-DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(
+DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(
framework::dataset::make("InputInfo", { TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::F32), // Mismatching data type input/output
- TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::F32), // Mismatching shapes
+ TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::F32), // Mismatching shapes with padding
TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::F32),
+ TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::F32), // Mismatching shapes dimension
TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::F32),
- TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::F32),
- TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::F32)
+ TensorInfo(TensorShape(32U, 13U), 1, DataType::F32) // Invalid padding list
}),
framework::dataset::make("OutputInfo",{ TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::F16),
TensorInfo(TensorShape(28U, 11U, 2U), 1, DataType::F32),
TensorInfo(TensorShape(29U, 17U, 2U), 1, DataType::F32),
TensorInfo(TensorShape(29U, 15U, 4U, 3U), 1, DataType::F32),
- TensorInfo(TensorShape(27U, 14U, 3U, 4U), 1, DataType::F32),
- TensorInfo(TensorShape(32U, 13U, 2U, 3U), 1, DataType::F32)
+ TensorInfo(TensorShape(29U, 17U, 2U), 1, DataType::F32),
+ TensorInfo(TensorShape(32U, 13U), 1, DataType::F32)
})),
framework::dataset::make("PaddingSize", { PaddingList{{0, 0}},
- PaddingList{{1, 1}},
- PaddingList{{1, 1}, {2, 2}},
- PaddingList{{1,1}, {1,1}, {1,1}, {1,1}},
- PaddingList{{0,0}, {1,0}, {0,1}, {1,2}},
- PaddingList{{0,0}, {0,0}, {0,0}, {1,1}}
- })),
- framework::dataset::make("Expected", { false, false, true, true, true, true })),
- input_info, output_info, padding, expected)
+ PaddingList{{1, 1}},
+ PaddingList{{1, 1}, {2, 2}},
+ PaddingList{{1,1}, {1,1}, {1,1}},
+ PaddingList{{1, 1}, {2, 2}},
+ PaddingList{{0,0}, {0,0}, {1,1}}
+ })),
+ framework::dataset::make("PaddingMode", { PaddingMode::CONSTANT,
+ PaddingMode::CONSTANT,
+ PaddingMode::CONSTANT,
+ PaddingMode::SYMMETRIC,
+ PaddingMode::REFLECT,
+ PaddingMode::REFLECT
+})),
+ framework::dataset::make("Expected", { false,
+ false,
+ true,
+ false,
+ true,
+ false })),
+ input_info, output_info, padding, mode, expected)
{
- ARM_COMPUTE_EXPECT(bool(CLPadLayer::validate(&input_info.clone()->set_is_resizable(true), &output_info.clone()->set_is_resizable(true), padding)) == expected, framework::LogLevel::ERRORS);
+ ARM_COMPUTE_EXPECT(bool(CLPadLayer::validate(&input_info.clone()->set_is_resizable(true), &output_info.clone()->set_is_resizable(true), padding, PixelValue(), mode)) == expected, framework::LogLevel::ERRORS);
}
// clang-format on
@@ -92,11 +104,9 @@ using CLPaddingFixture = PaddingFixture<CLTensor, CLAccessor, CLPadLayer, T>;
TEST_SUITE(Float)
TEST_SUITE(FP32)
-FIXTURE_DATA_TEST_CASE(RunPadding, CLPaddingFixture<float>, framework::DatasetMode::ALL,
- combine(
- combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", { DataType::F32 })),
- PaddingSizesDataset),
- framework::dataset::make("PaddingMode", { PaddingMode::CONSTANT })))
+FIXTURE_DATA_TEST_CASE(RunSmall, CLPaddingFixture<float>, framework::DatasetMode::ALL,
+ combine(combine(combine(datasets::Small3DShapes(), framework::dataset::make("DataType", { DataType::F32 })), PaddingSizesDataset),
+ framework::dataset::make("PaddingMode", { PaddingMode::CONSTANT, PaddingMode::REFLECT, PaddingMode::SYMMETRIC })))
{
// Validate output
validate(CLAccessor(_target), _reference);
@@ -104,11 +114,9 @@ FIXTURE_DATA_TEST_CASE(RunPadding, CLPaddingFixture<float>, framework::DatasetMo
TEST_SUITE_END() // FP32
TEST_SUITE(FP16)
-FIXTURE_DATA_TEST_CASE(RunPadding, CLPaddingFixture<half>, framework::DatasetMode::ALL,
- combine(
- combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", { DataType::F16 })),
- PaddingSizesDataset),
- framework::dataset::make("PaddingMode", { PaddingMode::CONSTANT })))
+FIXTURE_DATA_TEST_CASE(RunLarge, CLPaddingFixture<half>, framework::DatasetMode::NIGHTLY,
+ combine(combine(combine(datasets::Large3DShapes(), framework::dataset::make("DataType", { DataType::F16 })), PaddingSizesDataset),
+ framework::dataset::make("PaddingMode", { PaddingMode::CONSTANT, PaddingMode::REFLECT })))
{
// Validate output
validate(CLAccessor(_target), _reference);
@@ -116,27 +124,18 @@ FIXTURE_DATA_TEST_CASE(RunPadding, CLPaddingFixture<half>, framework::DatasetMod
TEST_SUITE_END() // FP16
TEST_SUITE_END() // Float
-TEST_SUITE(Integer)
-TEST_SUITE(S8)
-FIXTURE_DATA_TEST_CASE(RunPadding, CLPaddingFixture<int8_t>, framework::DatasetMode::ALL,
- combine(
- combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", { DataType::S8 })),
- PaddingSizesDataset),
- framework::dataset::make("PaddingMode", { PaddingMode::CONSTANT })))
+TEST_SUITE(Quantized)
+TEST_SUITE(QASYMM8)
+FIXTURE_DATA_TEST_CASE(RunSmall, CLPaddingFixture<uint8_t>, framework::DatasetMode::PRECOMMIT,
+ combine(combine(combine(datasets::Small3DShapes(), framework::dataset::make("DataType", { DataType::QASYMM8 })), PaddingSizesDataset),
+ framework::dataset::make("PaddingMode", { PaddingMode::CONSTANT, PaddingMode::REFLECT })))
{
// Validate output
validate(CLAccessor(_target), _reference);
}
-TEST_SUITE_END() // S8
-TEST_SUITE_END() // Integer
-
-TEST_SUITE(Quantized)
-TEST_SUITE(QASYMM8)
-FIXTURE_DATA_TEST_CASE(RunPadding, CLPaddingFixture<uint8_t>, framework::DatasetMode::ALL,
- combine(
- combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", { DataType::QASYMM8 })),
- PaddingSizesDataset),
- framework::dataset::make("PaddingMode", { PaddingMode::CONSTANT })))
+FIXTURE_DATA_TEST_CASE(RunLarge, CLPaddingFixture<uint8_t>, framework::DatasetMode::NIGHTLY,
+ combine(combine(combine(datasets::Large3DShapes(), framework::dataset::make("DataType", { DataType::QASYMM8 })), PaddingSizesDataset),
+ framework::dataset::make("PaddingMode", { PaddingMode::CONSTANT, PaddingMode::REFLECT })))
{
// Validate output
validate(CLAccessor(_target), _reference);