From 7f6db40e8c02084a5e960e1f377e8e83ed87f6a1 Mon Sep 17 00:00:00 2001 From: konsof01 Date: Fri, 7 Jun 2019 15:15:58 +0100 Subject: IVGCVSW-3010: Unit Test for Activation Workload for Float32 and Uint8 Unit tests for following Activations have been added *Relu *SoftRelu *LeakyRelu *Abs *Sqrt *Square *Tanh Signed-off-by: Konstantin Sofeikov Change-Id: I2812a24842400c8b2c2d87933fbe1eca8c66e911 --- .../backendsCommon/test/ActivationTestImpl.hpp | 99 ++++++++++++++++++++++ src/backends/backendsCommon/test/LayerTests.hpp | 55 ++++++++++++ src/backends/reference/test/RefLayerTests.cpp | 15 ++++ 3 files changed, 169 insertions(+) diff --git a/src/backends/backendsCommon/test/ActivationTestImpl.hpp b/src/backends/backendsCommon/test/ActivationTestImpl.hpp index 1a5bcd4fbb..9088d18858 100644 --- a/src/backends/backendsCommon/test/ActivationTestImpl.hpp +++ b/src/backends/backendsCommon/test/ActivationTestImpl.hpp @@ -548,6 +548,21 @@ LayerTestResult ReLuInt16Test( } +LayerTestResult ReLuUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return ReLuTestCommon(workloadFactory, memoryManager, 0.1f, 0); +} + +LayerTestResult ReLuTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return ReLuTestCommon(workloadFactory, memoryManager, 0.1f, 0); +} + + template> LayerTestResult BoundedReLuTestCommon( armnn::IWorkloadFactory& workloadFactory, @@ -624,6 +639,20 @@ LayerTestResult SoftReLuTestCommon( outputExpectedData); } +LayerTestResult SoftReLuTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SoftReLuTestCommon(workloadFactory, memoryManager, 0.1f, 0); +} + +LayerTestResult SoftReLuUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SoftReLuTestCommon(workloadFactory, memoryManager, 0.0625f, 64); +} + LayerTestResult SoftReLuInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) @@ -665,6 +694,20 @@ LayerTestResult LeakyReLuTestCommon( outputExpectedData); } +LayerTestResult LeakyReLuTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return LeakyReLuTestCommon(workloadFactory, memoryManager, 0.1f, 0); +} + +LayerTestResult LeakyReLuUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return LeakyReLuTestCommon(workloadFactory, memoryManager, 0.0625f, 64); +} + LayerTestResult LeakyReLuInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) @@ -705,6 +748,20 @@ LayerTestResult AbsTestCommon( outputExpectedData); } +LayerTestResult AbsTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return AbsTestCommon(workloadFactory, memoryManager, 0.1f, 0); +} + +LayerTestResult AbsUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return AbsTestCommon(workloadFactory, memoryManager, 0.0625f, 64); +} + LayerTestResult AbsInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) @@ -745,6 +802,20 @@ LayerTestResult SqrtTestCommon( outputExpectedData); } +LayerTestResult SqrtTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SqrtTestCommon(workloadFactory, memoryManager, 0.1f, 0); +} + +LayerTestResult SqrtUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SqrtTestCommon(workloadFactory, memoryManager, 0.0625f, 64); +} + LayerTestResult SqrtInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) @@ -785,6 +856,20 @@ LayerTestResult SquareTestCommon( outputExpectedData); } +LayerTestResult SquareTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SquareTestCommon(workloadFactory, memoryManager, 0.1f, 0); +} + +LayerTestResult SquareUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SquareTestCommon(workloadFactory, memoryManager, 0.0625f, 64); +} + LayerTestResult SquareInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) @@ -827,6 +912,20 @@ LayerTestResult TanhTestCommon( outputExpectedData); } +LayerTestResult TanhTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return TanhTestCommon(workloadFactory, memoryManager, 0.1f, 0); +} + +LayerTestResult TanhUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return TanhTestCommon(workloadFactory, memoryManager, 0.1f, 64); +} + LayerTestResult TanhInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) diff --git a/src/backends/backendsCommon/test/LayerTests.hpp b/src/backends/backendsCommon/test/LayerTests.hpp index b035d13488..19105855e1 100644 --- a/src/backends/backendsCommon/test/LayerTests.hpp +++ b/src/backends/backendsCommon/test/LayerTests.hpp @@ -754,6 +754,13 @@ LayerTestResult CompareBoundedReLuTest( float upperBound, float lowerBound); +LayerTestResult ReLuTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult ReLuUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); LayerTestResult ReLuInt16Test( armnn::IWorkloadFactory& workloadFactory, @@ -763,26 +770,74 @@ LayerTestResult BoundedReLuInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +LayerTestResult SoftReLuTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult SoftReLuUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + LayerTestResult SoftReLuInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +LayerTestResult LeakyReLuTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult LeakyReLuUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + LayerTestResult LeakyReLuInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +LayerTestResult AbsTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult AbsUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + LayerTestResult AbsInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +LayerTestResult SqrtTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult SqrtUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + LayerTestResult SqrtInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +LayerTestResult SquareTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult SquareUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + LayerTestResult SquareInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +LayerTestResult TanhTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult TanhUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + LayerTestResult TanhInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); diff --git a/src/backends/reference/test/RefLayerTests.cpp b/src/backends/reference/test/RefLayerTests.cpp index 35ce5b3eda..efdd1efb82 100644 --- a/src/backends/reference/test/RefLayerTests.cpp +++ b/src/backends/reference/test/RefLayerTests.cpp @@ -242,24 +242,39 @@ ARMNN_AUTO_TEST_CASE(ReLu6Uint8, BoundedReLuUint8UpperBoundOnlyTest) ARMNN_AUTO_TEST_CASE(BoundedReLuInt16, BoundedReLuInt16Test) // ReLU Activation +ARMNN_AUTO_TEST_CASE(ReLu, ReLuTest) +ARMNN_AUTO_TEST_CASE(ReLuUint8, ReLuUint8Test) ARMNN_AUTO_TEST_CASE(ReLuInt16, ReLuInt16Test) // SoftReLU Activation +ARMNN_AUTO_TEST_CASE(SoftReLu, SoftReLuTest) +ARMNN_AUTO_TEST_CASE(SoftReLuUint8, SoftReLuUint8Test) ARMNN_AUTO_TEST_CASE(SoftReLuInt16, SoftReLuInt16Test) + // LeakyReLU Activation +ARMNN_AUTO_TEST_CASE(LeakyReLu, LeakyReLuTest) +ARMNN_AUTO_TEST_CASE(LeakyReLuUint8, LeakyReLuUint8Test) ARMNN_AUTO_TEST_CASE(LeakyReLuInt16, LeakyReLuInt16Test) // Abs Activation +ARMNN_AUTO_TEST_CASE(Abs, AbsTest) +ARMNN_AUTO_TEST_CASE(AbsUint8, AbsUint8Test) ARMNN_AUTO_TEST_CASE(AbsInt16, AbsInt16Test) // Sqrt Activation +ARMNN_AUTO_TEST_CASE(Sqrt, SqrtTest) +ARMNN_AUTO_TEST_CASE(SqrtUint8, SqrtUint8Test) ARMNN_AUTO_TEST_CASE(SqrtInt16, SqrtInt16Test) // Square Activation +ARMNN_AUTO_TEST_CASE(Square, SquareTest) +ARMNN_AUTO_TEST_CASE(SquareUint8, SquareUint8Test) ARMNN_AUTO_TEST_CASE(SquareInt16, SquareInt16Test) // Tanh Activation +ARMNN_AUTO_TEST_CASE(Tanh, TanhTest) +ARMNN_AUTO_TEST_CASE(TanhUint8, TanhUint8Test) ARMNN_AUTO_TEST_CASE(TanhInt16, TanhInt16Test) -- cgit v1.2.1