From 3dc4303c94cf3f5976e495233f663ff56089e53a Mon Sep 17 00:00:00 2001 From: Matteo Martincigh Date: Thu, 18 Oct 2018 10:55:19 +0100 Subject: IVGCVSW-2040 Add unit tests for the newly implemented NHWC support in ref BatchNormalization * Added create workload unit tests for the NHWC data layout Change-Id: I03d66c88dc9b0340302b85012cb0152f0ec6fa72 --- src/armnn/test/CreateWorkload.hpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/armnn/test') diff --git a/src/armnn/test/CreateWorkload.hpp b/src/armnn/test/CreateWorkload.hpp index 51820a425f..21385d7a99 100644 --- a/src/armnn/test/CreateWorkload.hpp +++ b/src/armnn/test/CreateWorkload.hpp @@ -133,11 +133,12 @@ std::unique_ptr CreateArithmeticWorkloadTest(armnn::IWorkloadFacto template std::unique_ptr CreateBatchNormalizationWorkloadTest( - armnn::IWorkloadFactory& factory, armnn::Graph& graph) + armnn::IWorkloadFactory& factory, armnn::Graph& graph, DataLayout dataLayout = DataLayout::NCHW) { // Creates the layer we're testing. BatchNormalizationDescriptor layerDesc; layerDesc.m_Eps = 0.05f; + layerDesc.m_DataLayout = dataLayout; BatchNormalizationLayer* const layer = graph.AddLayer(layerDesc, "layer"); @@ -155,16 +156,19 @@ std::unique_ptr CreateBatchNormalizationWorkl Layer* const input = graph.AddLayer(0, "input"); Layer* const output = graph.AddLayer(0, "output"); + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? TensorShape{ 2, 3, 1, 1 } : TensorShape{ 2, 1, 1, 3 }; + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? TensorShape{ 2, 3, 1, 1 } : TensorShape{ 2, 1, 1, 3 }; + // Connects up. - armnn::TensorInfo tensorInfo({2, 3, 1, 1}, DataType); - Connect(input, layer, tensorInfo); - Connect(layer, output, tensorInfo); + Connect(input, layer, TensorInfo(inputShape, DataType)); + Connect(layer, output, TensorInfo(outputShape, DataType)); CreateTensorHandles(graph, factory); // Makes the workload and checks it. auto workload = MakeAndCheckWorkload(*layer, graph, factory); BatchNormalizationQueueDescriptor queueDescriptor = workload->GetData(); BOOST_TEST(queueDescriptor.m_Parameters.m_Eps == 0.05f); + BOOST_TEST((queueDescriptor.m_Parameters.m_DataLayout == dataLayout)); BOOST_TEST(queueDescriptor.m_Inputs.size() == 1); BOOST_TEST(queueDescriptor.m_Outputs.size() == 1); BOOST_TEST((queueDescriptor.m_Mean->GetTensorInfo() == TensorInfo({3}, DataType))); -- cgit v1.2.1