IVGCVSW-7623: GpuFsa Op: Add Pool2d operator
* Add Pool2d EndToEnd tests to all backends
* Add utility functions for the attributes in a separate file
* Remove some unnecessary includes
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: I0f82ebbf7b3301c6368462fb4fb4d4d02b246fc6
diff --git a/src/backends/backendsCommon/test/Pooling2dEndToEndTestImpl.hpp b/src/backends/backendsCommon/test/Pooling2dEndToEndTestImpl.hpp
index 7a264e1..adff6e0 100644
--- a/src/backends/backendsCommon/test/Pooling2dEndToEndTestImpl.hpp
+++ b/src/backends/backendsCommon/test/Pooling2dEndToEndTestImpl.hpp
@@ -76,7 +76,8 @@
}
template<armnn::DataType ArmnnType>
-void MaxPool2dEndToEndFloat16(const std::vector<armnn::BackendId>& backends)
+void MaxPool2dEndToEndFloat16(const std::vector<armnn::BackendId>& backends,
+ PaddingMethod padMethod = PaddingMethod::Exclude)
{
using namespace half_float::literal;
using Half = half_float::half;
@@ -84,7 +85,7 @@
const TensorShape& inputShape = { 1, 3, 3, 1 };
const TensorShape& outputShape = { 1, 3, 3, 1 };
- INetworkPtr network = CreatePooling2dNetwork<ArmnnType>(inputShape, outputShape);
+ INetworkPtr network = CreatePooling2dNetwork<ArmnnType>(inputShape, outputShape, padMethod);
CHECK(network);
std::vector<Half> inputData{ 1._h, 2._h, 3._h,
@@ -140,7 +141,7 @@
template<armnn::DataType ArmnnType>
void AvgPool2dEndToEndFloat16(const std::vector<armnn::BackendId>& backends,
- PaddingMethod padMethod = PaddingMethod::IgnoreValue)
+ PaddingMethod padMethod = PaddingMethod::Exclude)
{
using namespace half_float::literal;
using Half = half_float::half;
@@ -155,9 +156,19 @@
std::vector<Half> inputData{ 1._h, 2._h, 3._h,
4._h, 5._h, 6._h,
7._h, 8._h, 9._h };
- std::vector<Half> expectedOutput{ 1.33333_h, 2.33333_h, 1.77778_h,
- 3._h , 5._h , 3.66667_h,
- 2.66667_h, 4.33333_h, 3.11111_h };
+ std::vector<Half> expectedOutput;
+ if (padMethod == PaddingMethod::Exclude)
+ {
+ expectedOutput = { 3._h , 3.5_h, 4._h ,
+ 4.5_h, 5._h , 5.5_h,
+ 6._h , 6.5_h, 7._h };
+ }
+ else
+ {
+ expectedOutput = { 1.33333_h, 2.33333_h, 1.77778_h,
+ 3._h , 5._h , 3.66667_h,
+ 2.66667_h, 4.33333_h, 3.11111_h };
+ }
std::map<int, std::vector<Half>> inputTensorData = { { 0, inputData } };
std::map<int, std::vector<Half>> expectedOutputData = { { 0, expectedOutput } };