aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFerran Balaguer <ferran.balaguer@arm.com>2019-06-18 16:32:30 +0100
committerMatteo Martincigh <matteo.martincigh@arm.com>2019-06-19 07:59:40 +0000
commit0c64f461e071f281dab14d6b9dde85a0235d0c25 (patch)
tree20bc4988b6750451c82375b0163fc22512b9a1e1
parent0244cd0f70378d1a8eaebcbc04e1e76cb71be528 (diff)
downloadarmnn-0c64f461e071f281dab14d6b9dde85a0235d0c25.tar.gz
IVGCVSW-3288 Add L2Normalization epsilon Neon workload support
Signed-off-by: Ferran Balaguer <ferran.balaguer@arm.com> Change-Id: I938d97e6a2bfab8ff5f4548efeeaa43b7f5ccda2
-rw-r--r--src/backends/neon/test/NeonLayerTests.cpp3
-rw-r--r--src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp4
2 files changed, 5 insertions, 2 deletions
diff --git a/src/backends/neon/test/NeonLayerTests.cpp b/src/backends/neon/test/NeonLayerTests.cpp
index 7802ba2d52..425fe3a19e 100644
--- a/src/backends/neon/test/NeonLayerTests.cpp
+++ b/src/backends/neon/test/NeonLayerTests.cpp
@@ -404,6 +404,9 @@ ARMNN_AUTO_TEST_CASE(L2Normalization2dNhwc, L2Normalization2dTest, armnn::DataLa
ARMNN_AUTO_TEST_CASE(L2Normalization3dNhwc, L2Normalization3dTest, armnn::DataLayout::NHWC)
ARMNN_AUTO_TEST_CASE(L2Normalization4dNhwc, L2Normalization4dTest, armnn::DataLayout::NHWC)
+ARMNN_AUTO_TEST_CASE(L2NormalizationDefaultEpsilon, L2NormalizationDefaultEpsilonTest, armnn::DataLayout::NCHW)
+ARMNN_AUTO_TEST_CASE(L2NormalizationNonDefaultEpsilon, L2NormalizationNonDefaultEpsilonTest, armnn::DataLayout::NCHW)
+
// Floor
ARMNN_AUTO_TEST_CASE(SimpleFloor, SimpleFloorTest<armnn::DataType::Float32>)
diff --git a/src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp b/src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp
index e6249b3075..9de6c82702 100644
--- a/src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp
@@ -24,7 +24,7 @@ arm_compute::Status NeonL2NormalizationWorkloadValidate(const TensorInfo& input,
int axis = (descriptor.m_DataLayout == DataLayout::NCHW) ? 2 : 0;
- return arm_compute::NEL2NormalizeLayer::validate(&aclInput, &aclOutput, axis);
+ return arm_compute::NEL2NormalizeLayer::validate(&aclInput, &aclOutput, axis, descriptor.m_Eps);
}
NeonL2NormalizationFloatWorkload::NeonL2NormalizationFloatWorkload(const L2NormalizationQueueDescriptor& descriptor,
@@ -43,7 +43,7 @@ NeonL2NormalizationFloatWorkload::NeonL2NormalizationFloatWorkload(const L2Norma
int axis = (m_Data.m_Parameters.m_DataLayout == DataLayout::NCHW) ? 2 : 0;
auto layer = std::make_unique<arm_compute::NEL2NormalizeLayer>(memoryManager);
- layer->configure(&input, &output, axis);
+ layer->configure(&input, &output, axis, m_Data.m_Parameters.m_Eps);
m_Layer.reset(layer.release());
}