From c6138d8a8af334fad5230d73e456f303f9665bae Mon Sep 17 00:00:00 2001 From: Ferran Balaguer Date: Thu, 13 Jun 2019 17:23:50 +0100 Subject: IVGCVSW-3275 Add Uint8 support for L2Normalization Signed-off-by: Ferran Balaguer Change-Id: I7f2bcf0596a4f654166aad9657bc7084f55e7451 --- src/backends/backendsCommon/test/LayerTests.cpp | 105 +++++++++++++++++------- src/backends/backendsCommon/test/LayerTests.hpp | 20 +++++ 2 files changed, 97 insertions(+), 28 deletions(-) (limited to 'src/backends/backendsCommon/test') diff --git a/src/backends/backendsCommon/test/LayerTests.cpp b/src/backends/backendsCommon/test/LayerTests.cpp index 3216ac68ef..9d40197776 100644 --- a/src/backends/backendsCommon/test/LayerTests.cpp +++ b/src/backends/backendsCommon/test/LayerTests.cpp @@ -5287,15 +5287,17 @@ template> LayerTestResult L2NormalizationTestImpl( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - float qScale, - int32_t qOffset, const armnn::TensorShape& inputOutputTensorShape, + float scale, + int32_t offset, const std::vector& inputValues, + float outScale, + int32_t outOffset, const std::vector& expectedOutputValues, const armnn::DataLayout layout) { - const armnn::TensorInfo inputTensorInfo(inputOutputTensorShape, ArmnnType, qScale, qOffset); - const armnn::TensorInfo outputTensorInfo(inputOutputTensorShape, ArmnnType, qScale, qOffset); + const armnn::TensorInfo inputTensorInfo(inputOutputTensorShape, ArmnnType, scale, offset); + const armnn::TensorInfo outputTensorInfo(inputOutputTensorShape, ArmnnType, outScale, outOffset); // at this point if we require it permute the input data const armnn::PermutationVector NCHWToNHWC = { 0, 3, 1, 2 }; @@ -5799,8 +5801,10 @@ template> LayerTestResult L2Normalization1dTestCommon( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - float qScale, - int32_t qOffset, + float scale, + int32_t offset, + float outScale, + int32_t outOffset, const armnn::DataLayout layout) { // Width: 1 @@ -5864,8 +5868,8 @@ LayerTestResult L2Normalization1dTestCommon( }; - return L2NormalizationTestImpl(workloadFactory, memoryManager, qScale, qOffset, inputOutputShape, - inputValues, expectedOutputValues, layout); + return L2NormalizationTestImpl(workloadFactory, memoryManager, inputOutputShape, scale, offset, + inputValues, outScale, outOffset, expectedOutputValues, layout); } @@ -5874,7 +5878,7 @@ LayerTestResult L2Normalization1dTest( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization1dTestCommon(workloadFactory, memoryManager, 0.f, 0, layout); + return L2Normalization1dTestCommon(workloadFactory, memoryManager, 0.f, 0, 0.f, 0,layout); } LayerTestResult L2Normalization1dInt16Test( @@ -5882,16 +5886,27 @@ LayerTestResult L2Normalization1dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization1dTestCommon(workloadFactory, memoryManager, 1.f, 0, + return L2Normalization1dTestCommon(workloadFactory, memoryManager, 1.f, 0, 1.f, 0, layout); } +LayerTestResult L2Normalization1dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout) +{ + return L2Normalization1dTestCommon(workloadFactory, memoryManager, 1.f, 0, + 1.f/128, 128, layout); +} + template> LayerTestResult L2Normalization2dTestCommon( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - float qScale, - int32_t qOffset, + float scale, + int32_t offset, + float outScale, + int32_t outOffset, const armnn::DataLayout layout) { // Width: 5 @@ -5930,8 +5945,8 @@ LayerTestResult L2Normalization2dTestCommon( 10.0f * CalcInvL2Norm({ 9.0f, 10.0f }) }; - return L2NormalizationTestImpl(workloadFactory, memoryManager, qScale, qOffset, inputOutputShape, - inputValues, expectedOutputValues, layout); + return L2NormalizationTestImpl(workloadFactory, memoryManager, inputOutputShape, scale, offset, + inputValues, outScale, outOffset, expectedOutputValues, layout); } LayerTestResult L2Normalization2dTest( @@ -5939,7 +5954,8 @@ LayerTestResult L2Normalization2dTest( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization2dTestCommon(workloadFactory, memoryManager, 0.f, 0, layout); + return L2Normalization2dTestCommon(workloadFactory, memoryManager, 0.f, 0, 0.f, 0, + layout); } LayerTestResult L2Normalization2dInt16Test( @@ -5947,16 +5963,27 @@ LayerTestResult L2Normalization2dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization1dTestCommon(workloadFactory, memoryManager, 1.f, 0, + return L2Normalization1dTestCommon(workloadFactory, memoryManager, 1.f, 0, 1.f, 0, layout); } +LayerTestResult L2Normalization2dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout) +{ + return L2Normalization1dTestCommon(workloadFactory, memoryManager, 1.f, 0, + 1.f/128, 128, layout); +} + template> LayerTestResult L2Normalization3dTestCommon( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - float qScale, - int32_t qOffset, + float scale, + int32_t offset, + float outScale, + int32_t outOffset, const armnn::DataLayout layout) { // Width: 3 @@ -6015,8 +6042,8 @@ LayerTestResult L2Normalization3dTestCommon( 161.0f * CalcInvL2Norm({ 220.0f, 161.0f }) }; - return L2NormalizationTestImpl(workloadFactory, memoryManager, qScale, qOffset, inputOutputShape, - inputValues, expectedOutputValues, layout); + return L2NormalizationTestImpl(workloadFactory, memoryManager, inputOutputShape, scale, offset, + inputValues, outScale, outOffset, expectedOutputValues, layout); } LayerTestResult L2Normalization3dTest( @@ -6024,7 +6051,8 @@ LayerTestResult L2Normalization3dTest( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization3dTestCommon(workloadFactory, memoryManager, 0.f, 0, layout); + return L2Normalization3dTestCommon(workloadFactory, memoryManager, 0.f, 0, 0.f, 0, + layout); } LayerTestResult L2Normalization3dInt16Test( @@ -6032,16 +6060,27 @@ LayerTestResult L2Normalization3dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization1dTestCommon(workloadFactory, memoryManager, 1.f, 0, + return L2Normalization1dTestCommon(workloadFactory, memoryManager, 1.f, 0, 1.f, 0, layout); } +LayerTestResult L2Normalization3dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout) +{ + return L2Normalization1dTestCommon(workloadFactory, memoryManager, 1.f, 0, + 1.f/128, 128, layout); +} + template> LayerTestResult L2Normalization4dTestCommon( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - float qScale, - int32_t qOffset, + float scale, + int32_t offset, + float outScale, + int32_t outOffset, const armnn::DataLayout layout) { // Width: 3 @@ -6180,8 +6219,8 @@ LayerTestResult L2Normalization4dTestCommon( 88.0f * CalcInvL2Norm({ 189.0f, 21.0f, 88.0f }) }; - return L2NormalizationTestImpl(workloadFactory, memoryManager, qScale, qOffset, inputOutputShape, - inputValues, expectedOutputValues, layout); + return L2NormalizationTestImpl(workloadFactory, memoryManager, inputOutputShape, scale, offset, + inputValues, outScale, outOffset, expectedOutputValues, layout); } LayerTestResult L2Normalization4dTest( @@ -6189,7 +6228,8 @@ LayerTestResult L2Normalization4dTest( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization4dTestCommon(workloadFactory, memoryManager, 0.f, 0, layout); + return L2Normalization4dTestCommon(workloadFactory, memoryManager, 0.f, 0, 0.f, 0, + layout); } LayerTestResult L2Normalization4dInt16Test( @@ -6197,10 +6237,19 @@ LayerTestResult L2Normalization4dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization1dTestCommon(workloadFactory, memoryManager, 1.f, 0, + return L2Normalization1dTestCommon(workloadFactory, memoryManager, 1.f, 0, 1.f, 0, layout); } +LayerTestResult L2Normalization4dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout) +{ + return L2Normalization1dTestCommon(workloadFactory, memoryManager, 1.f, 0, + 1.f/128, 128, layout); +} + template> LayerTestResult ConstantTestImpl( armnn::IWorkloadFactory& workloadFactory, diff --git a/src/backends/backendsCommon/test/LayerTests.hpp b/src/backends/backendsCommon/test/LayerTests.hpp index 853a612b78..3eed189c1b 100644 --- a/src/backends/backendsCommon/test/LayerTests.hpp +++ b/src/backends/backendsCommon/test/LayerTests.hpp @@ -932,6 +932,11 @@ LayerTestResult L2Normalization1dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout); +LayerTestResult L2Normalization1dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout); + LayerTestResult L2Normalization2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, @@ -942,6 +947,11 @@ LayerTestResult L2Normalization2dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout); +LayerTestResult L2Normalization2dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout); + LayerTestResult L2Normalization3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, @@ -952,6 +962,11 @@ LayerTestResult L2Normalization3dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout); +LayerTestResult L2Normalization3dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout); + LayerTestResult L2Normalization4dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, @@ -962,6 +977,11 @@ LayerTestResult L2Normalization4dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout); +LayerTestResult L2Normalization4dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout); + LayerTestResult ConstantTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); -- cgit v1.2.1