diff options
author | Ferran Balaguer <ferran.balaguer@arm.com> | 2019-06-13 17:23:50 +0100 |
---|---|---|
committer | Matteo Martincigh <matteo.martincigh@arm.com> | 2019-06-14 13:03:49 +0000 |
commit | c6138d8a8af334fad5230d73e456f303f9665bae (patch) | |
tree | e8577d42476dc9a3fa5ac13fbf297c8744207cd9 /src/backends/backendsCommon/test | |
parent | d73d14fd77fe1405a33b3ecf3c56e1ac65647ff7 (diff) | |
download | armnn-c6138d8a8af334fad5230d73e456f303f9665bae.tar.gz |
IVGCVSW-3275 Add Uint8 support for L2Normalization
Signed-off-by: Ferran Balaguer <ferran.balaguer@arm.com>
Change-Id: I7f2bcf0596a4f654166aad9657bc7084f55e7451
Diffstat (limited to 'src/backends/backendsCommon/test')
-rw-r--r-- | src/backends/backendsCommon/test/LayerTests.cpp | 105 | ||||
-rw-r--r-- | src/backends/backendsCommon/test/LayerTests.hpp | 20 |
2 files changed, 97 insertions, 28 deletions
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<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> LayerTestResult<T, 4> 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<float>& inputValues, + float outScale, + int32_t outOffset, const std::vector<float>& 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<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> LayerTestResult<T, 4> 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<T, 4> L2Normalization1dTestCommon( }; - return L2NormalizationTestImpl<ArmnnType>(workloadFactory, memoryManager, qScale, qOffset, inputOutputShape, - inputValues, expectedOutputValues, layout); + return L2NormalizationTestImpl<ArmnnType>(workloadFactory, memoryManager, inputOutputShape, scale, offset, + inputValues, outScale, outOffset, expectedOutputValues, layout); } @@ -5874,7 +5878,7 @@ LayerTestResult<float, 4> L2Normalization1dTest( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization1dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, 0.f, 0, layout); + return L2Normalization1dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, 0.f, 0, 0.f, 0,layout); } LayerTestResult<int16_t, 4> L2Normalization1dInt16Test( @@ -5882,16 +5886,27 @@ LayerTestResult<int16_t, 4> L2Normalization1dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization1dTestCommon<armnn::DataType::QuantisedSymm16>(workloadFactory, memoryManager, 1.f, 0, + return L2Normalization1dTestCommon<armnn::DataType::QuantisedSymm16>(workloadFactory, memoryManager, 1.f, 0, 1.f, 0, layout); } +LayerTestResult<uint8_t, 4> L2Normalization1dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout) +{ + return L2Normalization1dTestCommon<armnn::DataType::QuantisedAsymm8>(workloadFactory, memoryManager, 1.f, 0, + 1.f/128, 128, layout); +} + template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> LayerTestResult<T, 4> 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<T, 4> L2Normalization2dTestCommon( 10.0f * CalcInvL2Norm({ 9.0f, 10.0f }) }; - return L2NormalizationTestImpl<ArmnnType>(workloadFactory, memoryManager, qScale, qOffset, inputOutputShape, - inputValues, expectedOutputValues, layout); + return L2NormalizationTestImpl<ArmnnType>(workloadFactory, memoryManager, inputOutputShape, scale, offset, + inputValues, outScale, outOffset, expectedOutputValues, layout); } LayerTestResult<float, 4> L2Normalization2dTest( @@ -5939,7 +5954,8 @@ LayerTestResult<float, 4> L2Normalization2dTest( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization2dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, 0.f, 0, layout); + return L2Normalization2dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, 0.f, 0, 0.f, 0, + layout); } LayerTestResult<int16_t, 4> L2Normalization2dInt16Test( @@ -5947,16 +5963,27 @@ LayerTestResult<int16_t, 4> L2Normalization2dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization1dTestCommon<armnn::DataType::QuantisedSymm16>(workloadFactory, memoryManager, 1.f, 0, + return L2Normalization1dTestCommon<armnn::DataType::QuantisedSymm16>(workloadFactory, memoryManager, 1.f, 0, 1.f, 0, layout); } +LayerTestResult<uint8_t, 4> L2Normalization2dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout) +{ + return L2Normalization1dTestCommon<armnn::DataType::QuantisedAsymm8>(workloadFactory, memoryManager, 1.f, 0, + 1.f/128, 128, layout); +} + template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> LayerTestResult<T, 4> 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<T, 4> L2Normalization3dTestCommon( 161.0f * CalcInvL2Norm({ 220.0f, 161.0f }) }; - return L2NormalizationTestImpl<ArmnnType>(workloadFactory, memoryManager, qScale, qOffset, inputOutputShape, - inputValues, expectedOutputValues, layout); + return L2NormalizationTestImpl<ArmnnType>(workloadFactory, memoryManager, inputOutputShape, scale, offset, + inputValues, outScale, outOffset, expectedOutputValues, layout); } LayerTestResult<float, 4> L2Normalization3dTest( @@ -6024,7 +6051,8 @@ LayerTestResult<float, 4> L2Normalization3dTest( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization3dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, 0.f, 0, layout); + return L2Normalization3dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, 0.f, 0, 0.f, 0, + layout); } LayerTestResult<int16_t, 4> L2Normalization3dInt16Test( @@ -6032,16 +6060,27 @@ LayerTestResult<int16_t, 4> L2Normalization3dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization1dTestCommon<armnn::DataType::QuantisedSymm16>(workloadFactory, memoryManager, 1.f, 0, + return L2Normalization1dTestCommon<armnn::DataType::QuantisedSymm16>(workloadFactory, memoryManager, 1.f, 0, 1.f, 0, layout); } +LayerTestResult<uint8_t, 4> L2Normalization3dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout) +{ + return L2Normalization1dTestCommon<armnn::DataType::QuantisedAsymm8>(workloadFactory, memoryManager, 1.f, 0, + 1.f/128, 128, layout); +} + template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> LayerTestResult<T, 4> 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<T, 4> L2Normalization4dTestCommon( 88.0f * CalcInvL2Norm({ 189.0f, 21.0f, 88.0f }) }; - return L2NormalizationTestImpl<ArmnnType>(workloadFactory, memoryManager, qScale, qOffset, inputOutputShape, - inputValues, expectedOutputValues, layout); + return L2NormalizationTestImpl<ArmnnType>(workloadFactory, memoryManager, inputOutputShape, scale, offset, + inputValues, outScale, outOffset, expectedOutputValues, layout); } LayerTestResult<float, 4> L2Normalization4dTest( @@ -6189,7 +6228,8 @@ LayerTestResult<float, 4> L2Normalization4dTest( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization4dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, 0.f, 0, layout); + return L2Normalization4dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, 0.f, 0, 0.f, 0, + layout); } LayerTestResult<int16_t, 4> L2Normalization4dInt16Test( @@ -6197,10 +6237,19 @@ LayerTestResult<int16_t, 4> L2Normalization4dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout) { - return L2Normalization1dTestCommon<armnn::DataType::QuantisedSymm16>(workloadFactory, memoryManager, 1.f, 0, + return L2Normalization1dTestCommon<armnn::DataType::QuantisedSymm16>(workloadFactory, memoryManager, 1.f, 0, 1.f, 0, layout); } +LayerTestResult<uint8_t, 4> L2Normalization4dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout) +{ + return L2Normalization1dTestCommon<armnn::DataType::QuantisedAsymm8>(workloadFactory, memoryManager, 1.f, 0, + 1.f/128, 128, layout); +} + template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> LayerTestResult<T, 4> 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<int16_t, 4> L2Normalization1dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout); +LayerTestResult<uint8_t, 4> L2Normalization1dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout); + LayerTestResult<float, 4> L2Normalization2dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, @@ -942,6 +947,11 @@ LayerTestResult<int16_t, 4> L2Normalization2dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout); +LayerTestResult<uint8_t, 4> L2Normalization2dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout); + LayerTestResult<float, 4> L2Normalization3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, @@ -952,6 +962,11 @@ LayerTestResult<int16_t, 4> L2Normalization3dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout); +LayerTestResult<uint8_t, 4> L2Normalization3dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout); + LayerTestResult<float, 4> L2Normalization4dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, @@ -962,6 +977,11 @@ LayerTestResult<int16_t, 4> L2Normalization4dInt16Test( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::DataLayout layout); +LayerTestResult<uint8_t, 4> L2Normalization4dUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::DataLayout layout); + LayerTestResult<float, 4> ConstantTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); |