diff options
author | Nikhil Raj <nikhil.raj@arm.com> | 2018-10-18 10:11:04 +0100 |
---|---|---|
committer | Matthew Bentham <matthew.bentham@arm.com> | 2018-10-22 16:57:54 +0100 |
commit | e4dfd6ead59e17828f8814f0ecc5fa67f0c72868 (patch) | |
tree | bb3da260b428d16987374ad3482c46ebb68c20fc /src/backends/reference/test/RefCreateWorkloadTests.cpp | |
parent | 3e9e11541c177abd7101962ef1e703d70d718c56 (diff) | |
download | armnn-e4dfd6ead59e17828f8814f0ecc5fa67f0c72868.tar.gz |
IVGCVSW-1865 - Support NHWC for Convolution2D (CpuRef)
* Updated the ConvImpl.hpp to use DataLayoutIndex
* Enabled unit test for CpuRef
* Update CreateWorkload Tests for ref with NHWC
Change-Id: Id309b7ef677489d63dcb5e09bd48ab9624b5ebfb
Diffstat (limited to 'src/backends/reference/test/RefCreateWorkloadTests.cpp')
-rw-r--r-- | src/backends/reference/test/RefCreateWorkloadTests.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/backends/reference/test/RefCreateWorkloadTests.cpp b/src/backends/reference/test/RefCreateWorkloadTests.cpp index dc0348dc10..236267c177 100644 --- a/src/backends/reference/test/RefCreateWorkloadTests.cpp +++ b/src/backends/reference/test/RefCreateWorkloadTests.cpp @@ -177,17 +177,32 @@ BOOST_AUTO_TEST_CASE(CreateConvertFp32ToFp16Float16Workload) std::move(workload), TensorInfo({1, 3, 2, 3}, DataType::Float32), TensorInfo({1, 3, 2, 3}, DataType::Float16)); } -BOOST_AUTO_TEST_CASE(CreateConvolution2dWorkload) +static void RefCreateConvolution2dWorkloadTest(DataLayout dataLayout = DataLayout::NCHW) { - Graph graph; + Graph graph; RefWorkloadFactory factory; - auto workload = CreateConvolution2dWorkloadTest<RefConvolution2dFloat32Workload, - DataType::Float32>(factory, graph); + auto workload = CreateConvolution2dWorkloadTest<RefConvolution2dFloat32Workload, DataType::Float32> + (factory, graph, dataLayout); + + std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) ? + std::initializer_list<unsigned int>({2, 3, 8, 16}) : std::initializer_list<unsigned int>({2, 8, 16, 3}); + std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) ? + std::initializer_list<unsigned int>({2, 2, 2, 10}) : std::initializer_list<unsigned int>({2, 2, 10, 2}); // Checks that outputs and inputs are as we expect them (see definition of CreateConvolution2dWorkloadTest). CheckInputOutput(std::move(workload), - TensorInfo({2, 3, 8, 16}, DataType::Float32), - TensorInfo({2, 2, 2, 10}, DataType::Float32)); + TensorInfo(inputShape, DataType::Float32), + TensorInfo(outputShape, DataType::Float32)); +} + +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatNchwWorkload) +{ + RefCreateConvolution2dWorkloadTest(DataLayout::NCHW); +} + +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatNhwcWorkload) +{ + RefCreateConvolution2dWorkloadTest(DataLayout::NHWC); } template <typename FullyConnectedWorkloadType, armnn::DataType DataType> |