// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include "CommonTestUtils.hpp" #include #include namespace { armnn::INetworkPtr CreateAbsNetwork(const armnn::TensorInfo& tensorInfo) { armnn::INetworkPtr network(armnn::INetwork::Create()); armnn::IConnectableLayer* inputLayer = network->AddInputLayer(0, "input"); armnn::IConnectableLayer* absLayer = network->AddAbsLayer("abs"); armnn::IConnectableLayer* outputLayer = network->AddOutputLayer(0, "output"); Connect(inputLayer, absLayer, tensorInfo, 0, 0); Connect(absLayer, outputLayer, tensorInfo, 0, 0); return network; } } // anonymous namespace template> void AbsEndToEnd(const std::vector& backends) { using namespace armnn; const float qScale = IsQuantizedType() ? 0.25f : 1.0f; const int32_t qOffset = IsQuantizedType() ? 50 : 0; TensorInfo tensorInfo({ 1, 1, 2, 3 }, ArmnnType, qScale, qOffset); std::vector inputData = { -1.f, 2.f, -3.f, 4.f, -5.f, 6.f }; std::vector expectedOutputData = { 1.f, 2.f, 3.f, 4.f, 5.f, 6.f }; // quantize data std::vector qInputData = QuantizedVector(qScale, qOffset, inputData); std::vector qExpectedOutputData = QuantizedVector(qScale, qOffset, expectedOutputData); INetworkPtr network = CreateAbsNetwork(tensorInfo); EndToEndLayerTestImpl(std::move(network), { { 0, qInputData } }, { { 0, qExpectedOutputData } }, backends); }