From 60f3911996871e6163ce5a9a2dfca02125db8ecf Mon Sep 17 00:00:00 2001 From: Manuel Bottini Date: Mon, 18 Mar 2019 15:25:15 +0000 Subject: COMPMID-2008: Add support for "reflect" padding mode in CLPad Change-Id: I469f8173d5c4a1b6f03b52b9ddd33928dacd1e7b Signed-off-by: Manuel Bottini Reviewed-on: https://review.mlplatform.org/c/869 Tested-by: Arm Jenkins Comments-Addressed: Arm Jenkins Reviewed-by: Giuseppe Rossini --- tests/validation/CL/PadLayer.cpp | 89 ++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 45 deletions(-) (limited to 'tests') 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; TEST_SUITE(Float) TEST_SUITE(FP32) -FIXTURE_DATA_TEST_CASE(RunPadding, CLPaddingFixture, 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, 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, framework::DatasetMo TEST_SUITE_END() // FP32 TEST_SUITE(FP16) -FIXTURE_DATA_TEST_CASE(RunPadding, CLPaddingFixture, 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, 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, framework::DatasetMod TEST_SUITE_END() // FP16 TEST_SUITE_END() // Float -TEST_SUITE(Integer) -TEST_SUITE(S8) -FIXTURE_DATA_TEST_CASE(RunPadding, CLPaddingFixture, 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, 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, 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, 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); -- cgit v1.2.1