diff options
author | morgolock <pablo.tello@arm.com> | 2020-03-04 14:57:46 +0000 |
---|---|---|
committer | Michele Di Giorgio <michele.digiorgio@arm.com> | 2020-03-10 18:01:33 +0000 |
commit | 6b3865ad038d60a126fe1f90df815a480527a29f (patch) | |
tree | 5f363b89bde5fc0ca98cf12d2ef82fafe1cb0bd4 /tests/validation/CL | |
parent | ce3a7b27f80960e88415bb6cabbb75de2239cea8 (diff) | |
download | ComputeLibrary-6b3865ad038d60a126fe1f90df815a480527a29f.tar.gz |
COMPMID-3080: Implement Hard-Swish activation in CL
Change-Id: I5ed35a5e0fba09791e4371b1a74108a1fdfed900
Signed-off-by: morgolock <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/2848
Reviewed-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests/validation/CL')
-rw-r--r-- | tests/validation/CL/ActivationLayer.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/tests/validation/CL/ActivationLayer.cpp b/tests/validation/CL/ActivationLayer.cpp index 8b12b0b28b..9ebbedc3c4 100644 --- a/tests/validation/CL/ActivationLayer.cpp +++ b/tests/validation/CL/ActivationLayer.cpp @@ -73,6 +73,8 @@ AbsoluteTolerance<float> tolerance(ActivationLayerInfo::ActivationFunction activ return AbsoluteTolerance<float>(data_type == DataType::F16 ? 0.01f : 0.00001f); case ActivationLayerInfo::ActivationFunction::TANH: return AbsoluteTolerance<float>(data_type == DataType::F16 ? 0.001f : 0.00001f); + case ActivationLayerInfo::ActivationFunction::HARD_SWISH: + return AbsoluteTolerance<float>(data_type == DataType::F16 ? 0.01f : epsilon); default: return AbsoluteTolerance<float>(epsilon); } @@ -222,12 +224,17 @@ TEST_SUITE_END() // Float template <typename T> using CLActivationLayerQuantizedFixture = ActivationValidationQuantizedFixture<CLTensor, CLAccessor, CLActivationLayer, T>; -const auto QuantizedActivationDataset = combine(combine(framework::dataset::make("InPlace", { false }), datasets::ActivationFunctionsQuantized()), - framework::dataset::make("AlphaBeta", { 0.5f, 1.f })); +const auto QuantizedActivationDataset8 = combine(combine(framework::dataset::make("InPlace", { false }), + concat(datasets::ActivationFunctionsQuantized(), framework::dataset::make("ActivationFunction", ActivationLayerInfo::ActivationFunction::HARD_SWISH))), + framework::dataset::make("AlphaBeta", { 0.5f, 1.f })); + +const auto QuantizedActivationDataset16 = combine(combine(framework::dataset::make("InPlace", { false }), + datasets::ActivationFunctionsQuantized()), + framework::dataset::make("AlphaBeta", { 0.5f, 1.f })); TEST_SUITE(Quantized) TEST_SUITE(QASYMM8) -FIXTURE_DATA_TEST_CASE(RunSmall, CLActivationLayerQuantizedFixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), QuantizedActivationDataset), +FIXTURE_DATA_TEST_CASE(RunSmall, CLActivationLayerQuantizedFixture<uint8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), QuantizedActivationDataset8), framework::dataset::make("DataType", DataType::QASYMM8)), framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.1f, 128.0f) }))) @@ -237,7 +244,7 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLActivationLayerQuantizedFixture<uint8_t>, fra } TEST_SUITE_END() // QASYMM8 TEST_SUITE(QASYMM8_SIGNED) -FIXTURE_DATA_TEST_CASE(RunSmall, CLActivationLayerQuantizedFixture<int8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), QuantizedActivationDataset), +FIXTURE_DATA_TEST_CASE(RunSmall, CLActivationLayerQuantizedFixture<int8_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), QuantizedActivationDataset8), framework::dataset::make("DataType", DataType::QASYMM8_SIGNED)), framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.1f, 10.0f) }))) @@ -247,7 +254,7 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLActivationLayerQuantizedFixture<int8_t>, fram } TEST_SUITE_END() // QASYMM8_SIGNED TEST_SUITE(QSYMM16) -FIXTURE_DATA_TEST_CASE(RunSmall, CLActivationLayerQuantizedFixture<int16_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), QuantizedActivationDataset), +FIXTURE_DATA_TEST_CASE(RunSmall, CLActivationLayerQuantizedFixture<int16_t>, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), QuantizedActivationDataset16), framework::dataset::make("DataType", DataType::QSYMM16)), framework::dataset::make("QuantizationInfo", { QuantizationInfo(1.f / 32768.f, 0) }))) @@ -255,7 +262,7 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLActivationLayerQuantizedFixture<int16_t>, fra // Validate output validate(CLAccessor(_target), _reference, tolerance_qsymm16); } -FIXTURE_DATA_TEST_CASE(RunLarge, CLActivationLayerQuantizedFixture<int16_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), QuantizedActivationDataset), +FIXTURE_DATA_TEST_CASE(RunLarge, CLActivationLayerQuantizedFixture<int16_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), QuantizedActivationDataset16), framework::dataset::make("DataType", DataType::QSYMM16)), framework::dataset::make("QuantizationInfo", { QuantizationInfo(1.f / 32768.f, 0) }))) |