From 67d6390c3b37c83bad2180ee4dc54893143c7b29 Mon Sep 17 00:00:00 2001 From: Matthew Bentham Date: Tue, 8 Feb 2022 15:03:07 +0000 Subject: Handle optional biases better in Neon/Cl FullyConnected workloads Use armnn::Optional for optional bias TensorInfos, similar to how it's already done in Convolution etc. Fixes some test failures found using -fsanitize=undefined Change-Id: I7b887e63e2ffab14aeab14415069be738d938ebb Signed-off-by: Matthew Bentham --- src/backends/neon/NeonBackend.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/backends/neon/NeonBackend.cpp') diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp index 66547ad4df..7089f23efa 100644 --- a/src/backends/neon/NeonBackend.cpp +++ b/src/backends/neon/NeonBackend.cpp @@ -250,12 +250,18 @@ OptimizationViews NeonBackend::OptimizeSubgraphView(const SubgraphView& subgraph else if (base.GetType() == LayerType::FullyConnected) { FullyConnectedLayer* baseLayer = PolymorphicDowncast(&base); + Optional biases; + + if (baseLayer->GetParameters().m_BiasEnabled) + { + biases = baseLayer->m_Bias->GetTensorInfo(); + } arm_compute::Status status = NeonFullyConnectedWorkloadValidate( baseLayer->GetInputSlot(0).GetConnectedOutputSlot()->GetTensorInfo(), activationLayer->GetInputSlot(0).GetConnectedOutputSlot()->GetTensorInfo(), baseLayer->m_Weight->GetTensorInfo(), - baseLayer->m_Bias->GetTensorInfo(), + biases, baseLayer->GetParameters(), &activationDesc); -- cgit v1.2.1