diff options
author | Idriss Chaouch <idriss.chaouch@arm.com> | 2023-09-01 17:58:38 +0100 |
---|---|---|
committer | idriss.chaouch <idriss.chaouch@arm.com> | 2023-09-08 08:32:43 +0000 |
commit | 564c13dc098eb9353ac15e2609712ab8db9bf350 (patch) | |
tree | 6cb52e904e3cd001d650a6386b1105ee21b08847 /src/backends | |
parent | 04e3eb5d339c3778f26c69651bf1464c8ab5331d (diff) | |
download | armnn-564c13dc098eb9353ac15e2609712ab8db9bf350.tar.gz |
IVGCVSW-7525 Add broadcast_to to TFLite Parser
* Changing the optimizer
* Changing EndToEnd Tests
Signed-off-by: Idriss Chaouch <idriss.chaouch@arm.com>
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: Ib581794280322a39cfc5ea3c4e6a6398cf723d5e
Diffstat (limited to 'src/backends')
-rw-r--r-- | src/backends/backendsCommon/test/BroadcastToEndToEndTestImpl.hpp | 39 | ||||
-rw-r--r-- | src/backends/reference/test/RefEndToEndTests.cpp | 23 |
2 files changed, 52 insertions, 10 deletions
diff --git a/src/backends/backendsCommon/test/BroadcastToEndToEndTestImpl.hpp b/src/backends/backendsCommon/test/BroadcastToEndToEndTestImpl.hpp index 3b2c47fb94..f9de3b928f 100644 --- a/src/backends/backendsCommon/test/BroadcastToEndToEndTestImpl.hpp +++ b/src/backends/backendsCommon/test/BroadcastToEndToEndTestImpl.hpp @@ -87,7 +87,8 @@ namespace } template <armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> - void BroadcastToEndToEndElementWiseBinary(const std::vector<BackendId>& backends) + void BroadcastToEndToEndElementWiseBinary(const std::vector<BackendId>& backends, + const ElementwiseBinaryDescriptor& elementWiseDescriptor) { float qScale = 1.0f; int32_t qOffset = 0; @@ -114,17 +115,39 @@ namespace 1, 1, 1, 1 }, qScale, qOffset); - std::vector<T> expectedOutputData = armnnUtils::QuantizedVector<T>({ - 65, 144, 91, 161, - 65, 144, 91, 161, - 65, 144, 91, 161, - 65, 144, 91, 161 - }, qScale, qOffset); + std::vector<T> expectedOutputData; + if (elementWiseDescriptor.m_Operation == BinaryOperation::Mul || + elementWiseDescriptor.m_Operation == BinaryOperation::Div) { + expectedOutputData = armnnUtils::QuantizedVector<T>({ + 65, 144, 91, 161, + 65, 144, 91, 161, + 65, 144, 91, 161, + 65, 144, 91, 161 + }, qScale, qOffset); + } + else if (elementWiseDescriptor.m_Operation == BinaryOperation::Add) + { + expectedOutputData = armnnUtils::QuantizedVector<T>({ + 66, 145, 92, 162, + 66, 145, 92, 162, + 66, 145, 92, 162, + 66, 145, 92, 162 + }, qScale, qOffset); + } + else if (elementWiseDescriptor.m_Operation == BinaryOperation::Sub) + { + expectedOutputData = armnnUtils::QuantizedVector<T>({ + 64, 143, 90, 160, + 64, 143, 90, 160, + 64, 143, 90, 160, + 64, 143, 90, 160 + }, qScale, qOffset); + } auto descriptor = armnn::BroadcastToDescriptor(armnn::TensorShape({ 4, 4 })); CHECK(descriptor.m_BroadcastToShape == outputTensorShape); INetworkPtr network = CreateBroadcastToNetworkWithElementWiseBinary(descriptor, - BinaryOperation::Mul, + elementWiseDescriptor, inputInfo, inputInfoElementWise, outputInfo); diff --git a/src/backends/reference/test/RefEndToEndTests.cpp b/src/backends/reference/test/RefEndToEndTests.cpp index e503d3fb7f..13995f5c6f 100644 --- a/src/backends/reference/test/RefEndToEndTests.cpp +++ b/src/backends/reference/test/RefEndToEndTests.cpp @@ -1736,8 +1736,27 @@ TEST_CASE("RefBroadcastToEndToEndFloat32") BroadcastToEndToEnd<armnn::DataType::Float32>(defaultBackends); } -TEST_CASE("RefBroadcastToEndToEndWithElementWiseBinaryFloat32") +TEST_CASE("RefBroadcastToEndToEndWithMultiplicationFloat32") { - BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends); + BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends, + BinaryOperation::Mul); +} + +TEST_CASE("RefBroadcastToEndToEndWithDivisionFloat32") +{ + BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends, + BinaryOperation::Div); +} + +TEST_CASE("RefBroadcastToEndToEndWithAdditionFloat32") +{ + BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends, + BinaryOperation::Add); +} + +TEST_CASE("RefBroadcastToEndToEndWithSubtractionFloat32") +{ + BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends, + BinaryOperation::Sub); } } |