aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon/test
diff options
context:
space:
mode:
authorJames Conroy <james.conroy@arm.com>2019-07-02 10:57:56 +0100
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2019-07-09 10:21:21 +0000
commit6059784511ce472c9df2289582ad13a0e2aa160e (patch)
tree3b072ed96d1822441f967321e461c6d2ff66b5e9 /src/backends/backendsCommon/test
parenta5b5bbf7a01758d49fa3f14431b9f8c23a97fe9e (diff)
downloadarmnn-6059784511ce472c9df2289582ad13a0e2aa160e.tar.gz
IVGCVSW-3391 Add SpaceToDepth CreateWorkload and EndToEnd tests
* Refactored existing EndToEnd tests, moved tests in reference to backendsCommon. * Enabled EndToEnd tests for CL. * Added new Ref/CL CreateWorkload tests. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I0a5e52961a8aca540d43241a3805d19c9c6ff56c
Diffstat (limited to 'src/backends/backendsCommon/test')
-rw-r--r--src/backends/backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp138
1 files changed, 129 insertions, 9 deletions
diff --git a/src/backends/backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp b/src/backends/backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp
index 456af4cbbb..fd442a88e8 100644
--- a/src/backends/backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp
+++ b/src/backends/backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp
@@ -81,26 +81,146 @@ void SpaceToDepthEndToEnd(const std::vector<armnn::BackendId>& backends,
{
using namespace armnn;
- if (dataLayout == armnn::DataLayout::NCHW){
+ if (dataLayout == armnn::DataLayout::NCHW)
+ {
PermuteDataToNCHW<armnn::DataType::Float32>(backends, dataLayout, inputTensorInfo, inputData);
PermuteDataToNCHW<armnn::DataType::Float32>(backends, dataLayout, outputTensorInfo, expectedOutputData);
}
// Builds up the structure of the network
- INetworkPtr net = CreateSpaceToDepthNetwork<armnn::DataType::Float32>(inputTensorInfo.GetShape(),
- outputTensorInfo.GetShape(),
- dataLayout,
- blockSize);
+ INetworkPtr net = CreateSpaceToDepthNetwork<armnn::DataType::Float32>(
+ inputTensorInfo.GetShape(),
+ outputTensorInfo.GetShape(),
+ dataLayout,
+ blockSize);
BOOST_TEST_CHECKPOINT("Create a network");
std::map<int, std::vector<float>> inputTensorData = { { 0, inputData } };
std::map<int, std::vector<float>> expectedOutputTensorData = { { 0, expectedOutputData } };
- EndToEndLayerTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>(move(net),
- inputTensorData,
- expectedOutputTensorData,
- backends);
+ EndToEndLayerTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>(
+ move(net),
+ inputTensorData,
+ expectedOutputTensorData,
+ backends);
+}
+
+void SpaceToDepthNHWCEndToEndTest1(const std::vector<armnn::BackendId>& defaultBackends)
+{
+ const unsigned int blockSize = 2;
+
+ armnn::TensorShape inputShape{1, 2, 2, 1};
+ armnn::TensorInfo inputTensorInfo(inputShape, armnn::DataType::Float32);
+
+ armnn::TensorShape outputShape{1, 1, 1, 4};
+ armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Float32);
+
+ std::vector<float> inputData = std::vector<float>(
+ {
+ 1.0f, 2.0f, 3.0f, 4.0f
+ });
+
+ std::vector<float> expectedOutputData = std::vector<float>(
+ {
+ 1.0f, 2.0f, 3.0f, 4.0f
+ });
+
+ SpaceToDepthEndToEnd(defaultBackends,
+ armnn::DataLayout::NHWC,
+ inputTensorInfo,
+ outputTensorInfo,
+ inputData,
+ expectedOutputData,
+ blockSize);
+}
+
+void SpaceToDepthNCHWEndToEndTest1(const std::vector<armnn::BackendId>& defaultBackends)
+{
+ const unsigned int blockSize = 2;
+
+ armnn::TensorShape inputShape{1, 2, 2, 1};
+ armnn::TensorInfo inputTensorInfo(inputShape, armnn::DataType::Float32);
+
+ armnn::TensorShape outputShape{1, 1, 1, 4};
+ armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Float32);
+
+ std::vector<float> inputData = std::vector<float>(
+ {
+ 1.0f, 2.0f, 3.0f, 4.0f
+ });
+
+ std::vector<float> expectedOutputData = std::vector<float>(
+ {
+ 1.0f, 2.0f, 3.0f, 4.0f
+ });
+
+ SpaceToDepthEndToEnd(defaultBackends,
+ armnn::DataLayout::NCHW,
+ inputTensorInfo,
+ outputTensorInfo,
+ inputData,
+ expectedOutputData,
+ blockSize);
+}
+
+void SpaceToDepthNHWCEndToEndTest2(const std::vector<armnn::BackendId>& defaultBackends)
+{
+ const unsigned int blockSize = 2;
+
+ armnn::TensorShape inputShape{1, 2, 2, 2};
+ armnn::TensorShape outputShape{1, 1, 1, 8};
+
+ armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Float32);
+ armnn::TensorInfo inputTensorInfo(inputShape, armnn::DataType::Float32);
+
+ std::vector<float> inputData = std::vector<float>(
+ {
+ 1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f
+ });
+
+ std::vector<float> expectedOutputData = std::vector<float>(
+ {
+ 1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f
+ });
+
+ SpaceToDepthEndToEnd(defaultBackends,
+ armnn::DataLayout::NHWC,
+ inputTensorInfo,
+ outputTensorInfo,
+ inputData,
+ expectedOutputData,
+ blockSize);
+}
+
+void SpaceToDepthNCHWEndToEndTest2(const std::vector<armnn::BackendId>& defaultBackends)
+{
+ const unsigned int blockSize = 2;
+
+ armnn::TensorShape inputShape{1, 2, 2, 2};
+ armnn::TensorShape outputShape{1, 1, 1, 8};
+
+ armnn::TensorInfo inputTensorInfo(inputShape, armnn::DataType::Float32);
+ armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Float32);
+
+
+ std::vector<float> inputData = std::vector<float>(
+ {
+ 1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f
+ });
+
+ std::vector<float> expectedOutputData = std::vector<float>(
+ {
+ 1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f
+ });
+
+ SpaceToDepthEndToEnd(defaultBackends,
+ armnn::DataLayout::NCHW,
+ inputTensorInfo,
+ outputTensorInfo,
+ inputData,
+ expectedOutputData,
+ blockSize);
}
} // anonymous namespace