aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/CL/Winograd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/validation/CL/Winograd.cpp')
-rw-r--r--tests/validation/CL/Winograd.cpp39
1 files changed, 38 insertions, 1 deletions
diff --git a/tests/validation/CL/Winograd.cpp b/tests/validation/CL/Winograd.cpp
index 771acf9461..d1522f3e7f 100644
--- a/tests/validation/CL/Winograd.cpp
+++ b/tests/validation/CL/Winograd.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2019 Arm Limited.
+ * Copyright (c) 2018-2020 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -182,6 +182,29 @@ const auto ActivationFunctionsSmallDataset = framework::dataset::make("Activatio
ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::LEAKY_RELU),
ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::SOFT_RELU)
});
+
+/** Zero padding test */
+bool validate_zero_padding(unsigned int width, unsigned height)
+{
+ TensorShape shape(width, height, 11, 1);
+
+ WinogradInfo winograd_info = WinogradInfo(Size2D(4U, 4U), Size2D(5U, 5U), Size2D(width, height), PadStrideInfo(), DataLayout::NHWC);
+
+ // Create tensors
+ CLTensor src = create_tensor<CLTensor>(shape, DataType::F32, 1, QuantizationInfo(), DataLayout::NHWC);
+ CLTensor dst;
+
+ src.info()->set_quantization_info(QuantizationInfo(1.f / 256.f, 0));
+ dst.info()->set_quantization_info(QuantizationInfo(1.f / 256.f, 0));
+
+ CLWinogradInputTransform input_transform;
+
+ input_transform.configure(&src, &dst, winograd_info);
+
+ // Padding can be added along rhs and bias's X dimension
+ return src.info()->padding().empty() && dst.info()->padding().empty();
+}
+
} // namespace
using namespace arm_compute::misc::shape_calculator;
@@ -190,6 +213,20 @@ TEST_SUITE(CL)
TEST_SUITE(Winograd)
TEST_SUITE(InputTransform)
+
+/** Validate zero padding tests
+ *
+ * A series of validation tests to check that no padding is added
+ */
+DATA_TEST_CASE(ValidateZeroPadding, framework::DatasetMode::ALL, zip(
+framework::dataset::make("Width", { 32U, 37U, 12U, 1U }),
+framework::dataset::make("Height", { 13U, 27U, 19U, 1U })),
+width, height)
+{
+ bool status = validate_zero_padding(width, height);
+ ARM_COMPUTE_EXPECT(status, framework::LogLevel::ERRORS);
+}
+
DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(
framework::dataset::make("InputInfo",{
TensorInfo(TensorShape(53U, 21U, 5U, 3U), 1, DataType::F16), // F16 not supported