aboutsummaryrefslogtreecommitdiff
path: root/src/backends/test/LayerTests.cpp
diff options
context:
space:
mode:
authorJames Conroy <james.conroy@arm.com>2018-10-31 11:47:53 +0000
committerJames Conroy <james.conroy@arm.com>2018-10-31 12:06:53 +0000
commit45a9b775bf63283320315d90e4e9a6c641df6e20 (patch)
treee1f0d33d98410255a6804ea9cccf16805fc6080f /src/backends/test/LayerTests.cpp
parentd84216a013445e86183e39c8b5b904836c71a95b (diff)
downloadarmnn-45a9b775bf63283320315d90e4e9a6c641df6e20.tar.gz
IVGCVSW-2102: Fix Pooling2D CpuRef indexing bug
* Fixes bug when calcuating indexes for NHWC in Pooling2D CpuRef implementation, it now uses TensorBufferArrayView. * Adds 2-Channel unit tests for Pooling2d on CpuRef, Cl and Neon. The single channel tests were not properly exercising Pooling2d using NHWC data layout. * Refactors Pooling2D NHWC tests so that the input and output data are permuted to NHWC when necessary, instead of hard coding the data in NHWC format. Change-Id: I5b9d41ed425ff283ea8c8ef6b1266ae0bc80f43b
Diffstat (limited to 'src/backends/test/LayerTests.cpp')
-rwxr-xr-xsrc/backends/test/LayerTests.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/backends/test/LayerTests.cpp b/src/backends/test/LayerTests.cpp
index ae6d16c755..abe3704a17 100755
--- a/src/backends/test/LayerTests.cpp
+++ b/src/backends/test/LayerTests.cpp
@@ -5602,24 +5602,28 @@ LayerTestResult<uint8_t, 4> SimpleMaxPooling2dSize3x3Stride2x4Uint8Test(armnn::I
return SimpleMaxPooling2dSize3x3Stride2x4TestCommon<uint8_t>(workloadFactory, forceNoPadding, 0.1f, 128);
}
-LayerTestResult<float, 4> SimpleAveragePooling2dTest(armnn::IWorkloadFactory& workloadFactory)
+LayerTestResult<float, 4> SimpleMaxPooling2dTest(armnn::IWorkloadFactory& workloadFactory,
+ const armnn::DataLayoutIndexed& dataLayout)
{
- return SimpleAveragePooling2dTest<float>(workloadFactory);
+ return SimpleMaxPooling2dTestCommon<float>(workloadFactory, dataLayout);
}
-LayerTestResult<float, 4> SimpleAveragePooling2dNhwcTest(armnn::IWorkloadFactory& workloadFactory)
+LayerTestResult<uint8_t, 4> SimpleMaxPooling2dUint8Test(armnn::IWorkloadFactory& workloadFactory,
+ const armnn::DataLayoutIndexed& dataLayout)
{
- return SimpleAveragePooling2dNhwcTest<float>(workloadFactory);
+ return SimpleMaxPooling2dTestCommon<uint8_t>(workloadFactory, dataLayout);
}
-LayerTestResult<uint8_t, 4> SimpleAveragePooling2dUint8Test(armnn::IWorkloadFactory& workloadFactory)
+LayerTestResult<float, 4> SimpleAveragePooling2dTest(armnn::IWorkloadFactory& workloadFactory,
+ const armnn::DataLayoutIndexed& dataLayout)
{
- return SimpleAveragePooling2dTest<uint8_t>(workloadFactory, 0.5, -1);
+ return SimpleAveragePooling2dTestCommon<float>(workloadFactory, dataLayout);
}
-LayerTestResult<uint8_t, 4> SimpleAveragePooling2dUint8NhwcTest(armnn::IWorkloadFactory& workloadFactory)
+LayerTestResult<uint8_t, 4> SimpleAveragePooling2dUint8Test(armnn::IWorkloadFactory& workloadFactory,
+ const armnn::DataLayoutIndexed& dataLayout)
{
- return SimpleAveragePooling2dNhwcTest<uint8_t>(workloadFactory, 0.5, -1);
+ return SimpleAveragePooling2dTestCommon<uint8_t>(workloadFactory, dataLayout, 0.5, -1);
}
LayerTestResult<float, 4> IgnorePaddingAveragePooling2dSize3x2Stride2x2Test(armnn::IWorkloadFactory& workloadFactory,
@@ -5638,14 +5642,16 @@ LayerTestResult<uint8_t, 4> LargeTensorsAveragePooling2dUint8Test(armnn::IWorklo
return LargeTensorsAveragePooling2dTestCommon<uint8_t>(workloadFactory, 0.5, -1);
}
-LayerTestResult<float, 4> SimpleL2Pooling2dTest(armnn::IWorkloadFactory& workloadFactory)
+LayerTestResult<float, 4> SimpleL2Pooling2dTest(armnn::IWorkloadFactory& workloadFactory,
+ const armnn::DataLayoutIndexed& dataLayout)
{
- return SimpleL2Pooling2dTestCommon<float>(workloadFactory);
+ return SimpleL2Pooling2dTestCommon<float>(workloadFactory, dataLayout);
}
-LayerTestResult<uint8_t, 4> SimpleL2Pooling2dUint8Test(armnn::IWorkloadFactory& workloadFactory)
+LayerTestResult<uint8_t, 4> SimpleL2Pooling2dUint8Test(armnn::IWorkloadFactory& workloadFactory,
+ const armnn::DataLayoutIndexed& dataLayout)
{
- return SimpleL2Pooling2dTestCommon<uint8_t>(workloadFactory);
+ return SimpleL2Pooling2dTestCommon<uint8_t>(workloadFactory, dataLayout);
}
LayerTestResult<float, 4> L2Pooling2dSize3Stride1Test(armnn::IWorkloadFactory& workloadFactory)