From 8bd536064f32b1ce521875e2bc8dd24044c4f5c3 Mon Sep 17 00:00:00 2001 From: Cathal Corbett Date: Thu, 12 May 2022 15:54:58 +0100 Subject: IVGCVSW-6126 ConstTensorsAsInput: Conv2d - Backends !android-nn-driver:7477 Signed-off-by: Cathal Corbett Change-Id: Ibf633ccccc385bd980934ff829407d21981323ef --- src/armnn/Network.cpp | 3 +++ .../test/optimizations/FuseActivationTests.cpp | 31 ++++++++++++---------- 2 files changed, 20 insertions(+), 14 deletions(-) (limited to 'src/armnn') diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp index 479e57fc56..77ad5c4dc2 100644 --- a/src/armnn/Network.cpp +++ b/src/armnn/Network.cpp @@ -1832,6 +1832,9 @@ IOptimizedNetworkPtr Optimize(const Graph& inGraph, ARMNN_SCOPED_PROFILING_EVENT(Compute::Undefined, "Optimizer_ConvertConstants"); Optimizer::Pass(optGraph, MakeOptimizations(ConvertConstantsFloatToHalf())); Optimizer::Pass(optGraph, MakeOptimizations(ConvertConstantsHalfToFloat())); + + // Once the constants are converted we can now safely call RedirectMembersToConstantInputs + Optimizer::Pass(optGraph, MakeOptimizations(RedirectMembersToConstantInputs())); } return optNet; } diff --git a/src/armnn/test/optimizations/FuseActivationTests.cpp b/src/armnn/test/optimizations/FuseActivationTests.cpp index 0cca86f93b..3b8917192d 100644 --- a/src/armnn/test/optimizations/FuseActivationTests.cpp +++ b/src/armnn/test/optimizations/FuseActivationTests.cpp @@ -56,32 +56,35 @@ struct Convolution2dTest float scale = 1.f, int32_t offset = 0) { + IgnoreUnused(scale); + IgnoreUnused(offset); + Convolution2dDescriptor descriptor; descriptor.m_DataLayout = DataLayout::NHWC; descriptor.m_StrideX = 1; descriptor.m_StrideY = 1; + return network->AddConvolution2dLayer(descriptor, name); + } + + static std::vector AddConstantLayers(INetwork* network, + float scale = 1.f, + int32_t offset = 0) + { + std::vector weightsData = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42}; + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42 }; std::vector weightsVector = armnnUtils::QuantizedVector(weightsData, scale, offset); TensorInfo weightsInfo(GetWeightsShape(), ArmnnType, scale, offset, true); ConstTensor weights(weightsInfo, weightsVector); - Optional optionalBias; - ARMNN_NO_DEPRECATE_WARN_BEGIN - return network->AddConvolution2dLayer(descriptor, weights, optionalBias, name); - ARMNN_NO_DEPRECATE_WARN_END - } - static std::vector AddConstantLayers(INetwork* network, - float scale = 1.f, - int32_t offset = 0) - { - IgnoreUnused(network); - IgnoreUnused(scale); - IgnoreUnused(offset); - return {}; + IConnectableLayer* weightsLayer = network->AddConstantLayer(weights, "Weights"); + weightsLayer->GetOutputSlot(0).SetTensorInfo(weightsInfo); + + std::vector layers = { weightsLayer }; + return layers; } }; -- cgit v1.2.1