diff options
author | Jan Eilers <jan.eilers@arm.com> | 2020-03-18 15:58:11 +0000 |
---|---|---|
committer | Jan Eilers <jan.eilers@arm.com> | 2020-03-18 18:33:38 +0000 |
commit | a83af7b388a1ac721c6a85b0e80ac2950687dfad (patch) | |
tree | 0423109f7269ae66f2bfceaea6c246312712ae15 /src/backends/backendsCommon/test | |
parent | bca73e1c82438f160364a113793d0a2195c665ac (diff) | |
download | armnn-a83af7b388a1ac721c6a85b0e80ac2950687dfad.tar.gz |
IVGCVSW-4446 Add HardSwish EndToEnd tests
* adds convert from armnn HardSwish to Acl HardSwish
* adds EndToEnd tests for Ref, Cl and Neon
Signed-off-by: Jan Eilers <jan.eilers@arm.com>
Change-Id: If997dad783ff45d7f061254e7e30bb69d4d4d564
Diffstat (limited to 'src/backends/backendsCommon/test')
-rw-r--r-- | src/backends/backendsCommon/test/ActivationEndToEndTestImpl.hpp | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/backends/backendsCommon/test/ActivationEndToEndTestImpl.hpp b/src/backends/backendsCommon/test/ActivationEndToEndTestImpl.hpp index 23884b0c20..1b735bed5e 100644 --- a/src/backends/backendsCommon/test/ActivationEndToEndTestImpl.hpp +++ b/src/backends/backendsCommon/test/ActivationEndToEndTestImpl.hpp @@ -32,6 +32,8 @@ float GetActivationTolerance(const armnn::ActivationFunction& activationFunction // The following values are taken from ArmComputeLibrary/tests/validation/CL/ActivationLayer.cpp case ActivationFunction::Elu: return (dataType == DataType::Float16 ? 0.01f : 0.00001f); + case ActivationFunction::HardSwish: + return (dataType == DataType::Float16 ? 0.01f : defaultTolerance); default: return defaultTolerance; } @@ -123,7 +125,7 @@ void EluEndToEndTest(const std::vector<BackendId>& backends) 1.0f, 2.0f, 3.0f, 4.0f }; std::vector<float> floatExpectedOutputData{ -0.86466471676f, -0.63212055882f, -0.0f, 0.0f, - 1.0f , 2.0f, 3.0f, 4.0f }; + 1.0f , 2.0f , 3.0f, 4.0f }; float qScale = 1.0f; int32_t qOffset = 0; @@ -140,4 +142,33 @@ void EluEndToEndTest(const std::vector<BackendId>& backends) descriptor); } +/** Executes an end to end test for HardSwish activation with specific input and expected-output data + * + * @tparam ArmnnType The armnn data type for the input and expected-output data + * @param backends The backends on which to run the test + */ +template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> +void HardSwishEndToEndTest(const std::vector<BackendId>& backends) +{ + std::vector<float> floatInputData{ -2.0f, -1.0f, -0.5f, 0.0f, + 1.0f, 2.0f, 3.0f, 4.0f }; + + std::vector<float> floatExpectedOutputData{ -0.33333333333f, -0.33333333333f, -0.208333f, 0.0f, + 0.66666666667f, 1.66666666667f, 3.0f , 4.0f }; + + float qScale = 1.0f; + int32_t qOffset = 0; + armnn::TensorInfo inputInfo({ 2, 2, 2, 1 }, ArmnnType, qScale, qOffset); + armnn::TensorInfo outputInfo({ 2, 2, 2, 1 }, ArmnnType, qScale, qOffset); + + armnn::ActivationDescriptor descriptor(ActivationFunction::HardSwish, 1.0); + + ActivationEndToEndImpl<ArmnnType>(backends, + floatInputData, + floatExpectedOutputData, + inputInfo, + outputInfo, + descriptor); +} + } // anonymous namespace
\ No newline at end of file |