diff options
author | Cian McGriskin <cian.mcgriskin@arm.com> | 2023-07-25 14:15:45 +0100 |
---|---|---|
committer | TeresaARM <teresa.charlinreyes@arm.com> | 2023-07-25 17:04:40 +0000 |
commit | 160edb3a6b10bfe5fd6e3fcc118765265d1722a6 (patch) | |
tree | 0aad2731736b47b5f4ce77ad19616061a663d718 /src/backends/backendsCommon/test/TileEndToEndTestImpl.hpp | |
parent | 616b22f52b169db10992fd70f4584365fd3db463 (diff) | |
download | armnn-160edb3a6b10bfe5fd6e3fcc118765265d1722a6.tar.gz |
IVGCVSW-7887 Add TILE End to End tests
* Fix error in InferOutputShapes
Signed-off-by: Cian McGriskin <cian.mcgriskin@arm.com>
Change-Id: I1b38285d82d22715c6502dc63b7bab981e3258e4
Diffstat (limited to 'src/backends/backendsCommon/test/TileEndToEndTestImpl.hpp')
-rw-r--r-- | src/backends/backendsCommon/test/TileEndToEndTestImpl.hpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/backends/backendsCommon/test/TileEndToEndTestImpl.hpp b/src/backends/backendsCommon/test/TileEndToEndTestImpl.hpp new file mode 100644 index 0000000000..4047e5ad8e --- /dev/null +++ b/src/backends/backendsCommon/test/TileEndToEndTestImpl.hpp @@ -0,0 +1,61 @@ +// +// Copyright © 2023 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// +#pragma once +#include "armnn/INetwork.hpp" +#include "armnnUtils/QuantizeHelper.hpp" +#include <CommonTestUtils.hpp> +#include <ResolveType.hpp> +#include <doctest/doctest.h> + +namespace +{ +using namespace armnn; +armnn::INetworkPtr CreateTileNetwork(TileDescriptor& descriptor, + const armnn::TensorInfo& inputInfo, + const armnn::TensorInfo& outputInfo) +{ + INetworkPtr network(INetwork::Create()); + IConnectableLayer* inputLayer = network->AddInputLayer(0, "input"); + IConnectableLayer* tileLayer = network->AddTileLayer(descriptor, "tile"); + IConnectableLayer* outputLayer = network->AddOutputLayer(0, "output"); + Connect(inputLayer, tileLayer, inputInfo, 0, 0); + Connect(tileLayer, outputLayer, outputInfo, 0, 0); + return network; +} + +template <armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> +void TileEndToEnd(const std::vector<BackendId>& backends) +{ + float qScale = 1.0f; + int32_t qOffset = 0; + bool qConst = true; + + const TensorShape inputTensorShape = { 2, 3 }; + const TensorShape outputTensorShape = { 4, 6 }; + + TensorInfo inputInfo (inputTensorShape, ArmnnType, qScale, qOffset, qConst); + TensorInfo outputInfo (outputTensorShape, ArmnnType,qScale, qOffset); + + std::vector<T> inputData = armnnUtils::QuantizedVector<T>({ + 0.f, 1.f, 2.f, + 3.f, 4.f, 5.f + }, qScale, qOffset); + + std::vector<T> expectedOutputData = armnnUtils::QuantizedVector<T>({ + 0.f, 1.f, 2.f, 0.f, 1.f, 2.f, + 3.f, 4.f, 5.f, 3.f, 4.f, 5.f, + 0.f, 1.f, 2.f, 0.f, 1.f, 2.f, + 3.f, 4.f, 5.f, 3.f, 4.f, 5.f + }, qScale, qOffset); + + auto descriptor = armnn::TileDescriptor(std::vector<uint32_t>{ 2, 2 }); + INetworkPtr network = CreateTileNetwork(descriptor, inputInfo, outputInfo); + + std::map<int, std::vector<T>> inputTensor = { { 0, inputData } }; + std::map<int, std::vector<T>> expectedOutputTensor = { { 0, expectedOutputData } }; + EndToEndLayerTestImpl<ArmnnType, ArmnnType>(std::move(network), inputTensor, expectedOutputTensor, backends); +} + +} // anonymous namespace
\ No newline at end of file |