diff options
author | Matteo Martincigh <matteo.martincigh@arm.com> | 2018-10-01 09:26:39 +0100 |
---|---|---|
committer | Matthew Bentham <matthew.bentham@arm.com> | 2018-10-10 16:16:58 +0100 |
commit | 539b44dbd620c9f793f84933c1bcc51ce3ff085e (patch) | |
tree | 4d75b13cd8ac213f16279ecf54b2ce9c20d04b9a /src/backends/neon | |
parent | 084523a492efd8001cd8e07956d45c9aeb2bb046 (diff) | |
download | armnn-539b44dbd620c9f793f84933c1bcc51ce3ff085e.tar.gz |
IVGCVSW-1863 Unit tests for NHWC L2Normalization
* Added NHWC unit test implementation
* Programmatically selected the channel dimension when creating
the ACL Normalization layer info
* Set the input/output data layout in the constructor of the L2Normalization
workload
Change-Id: Ie69f1a360022c29d1a3a3808c1f26b69243fa8f9
Diffstat (limited to 'src/backends/neon')
-rw-r--r-- | src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp b/src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp index 4bddd9a24c..17c39bc8ad 100644 --- a/src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp +++ b/src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp @@ -18,7 +18,7 @@ arm_compute::Status NeonL2NormalizationWorkloadValidate(const TensorInfo& input, const arm_compute::TensorInfo aclOutput = BuildArmComputeTensorInfo(output, descriptor.m_DataLayout); arm_compute::NormalizationLayerInfo normalizationInfo = - CreateAclNormalizationLayerInfoForL2Normalization(input); + CreateAclNormalizationLayerInfoForL2Normalization(input, descriptor.m_DataLayout); return arm_compute::NENormalizationLayer::validate(&aclInput, &aclOutput, normalizationInfo); } @@ -32,7 +32,14 @@ NeonL2NormalizationFloatWorkload::NeonL2NormalizationFloatWorkload(const L2Norma arm_compute::ITensor& input = boost::polymorphic_downcast<INeonTensorHandle*>(m_Data.m_Inputs[0])->GetTensor(); arm_compute::ITensor& output = boost::polymorphic_downcast<INeonTensorHandle*>(m_Data.m_Outputs[0])->GetTensor(); - m_Layer.configure(&input, &output, CreateAclNormalizationLayerInfoForL2Normalization(info.m_InputTensorInfos[0])); + + arm_compute::DataLayout aclDataLayout = ConvertDataLayout(m_Data.m_Parameters.m_DataLayout); + input.info()->set_data_layout(aclDataLayout); + output.info()->set_data_layout(aclDataLayout); + + m_Layer.configure(&input, &output, + CreateAclNormalizationLayerInfoForL2Normalization(info.m_InputTensorInfos[0], + m_Data.m_Parameters.m_DataLayout)); } void NeonL2NormalizationFloatWorkload::Execute() const |