From b4dd5cc86d4eb841de670f0f102ede599e0d9c40 Mon Sep 17 00:00:00 2001 From: Keith Davis Date: Thu, 7 Apr 2022 11:32:00 +0100 Subject: IVGCVSW-6124 ConstTensorsAsInput: Conv2d - FrontEnd * Update Front-end and Tools. * Updated Serializer, Deserializer and unit tests to reflect this. * Updated TfLiteDelegate, TfLiteParser and OnnxParser. * Updated Ref. * Fixed resulting Neon / CL tests * Unified optimizers for conv2d ops * Optimizer Fix - Fp32ToBf16 * Partial implementation for ACL backends to fix VTS failures !android-nn-driver:7477 Signed-off-by: Keith Davis Change-Id: I5fb18877f7ee32643e15a9818945356274bb401b --- src/armnnOnnxParser/OnnxParser.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/armnnOnnxParser') diff --git a/src/armnnOnnxParser/OnnxParser.cpp b/src/armnnOnnxParser/OnnxParser.cpp index dd6a06fd00..4eaf63653b 100644 --- a/src/armnnOnnxParser/OnnxParser.cpp +++ b/src/armnnOnnxParser/OnnxParser.cpp @@ -1754,6 +1754,8 @@ void OnnxParserImpl::ParseConv(const onnx::NodeProto& node) } armnn::IConnectableLayer* layer; + std::vector tensorIndexes= {node.input(0), node.input(1)}; + auto weightTensor = CreateConstTensor(node.input(1)); if (node.input_size() == 3) @@ -1766,7 +1768,9 @@ void OnnxParserImpl::ParseConv(const onnx::NodeProto& node) CHECK_LOCATION().AsString())); } desc.m_BiasEnabled = true; + tensorIndexes.emplace_back(node.input(2)); auto biasTensor = CreateConstTensor(node.input(2)); + ARMNN_NO_DEPRECATE_WARN_BEGIN layer = m_Network->AddConvolution2dLayer(desc, weightTensor.first, Optional(biasTensor.first), @@ -1778,6 +1782,7 @@ void OnnxParserImpl::ParseConv(const onnx::NodeProto& node) weightTensor.first, EmptyOptional(), node.name().c_str()); + ARMNN_NO_DEPRECATE_WARN_END } ARMNN_ASSERT(layer != nullptr); @@ -1788,7 +1793,7 @@ void OnnxParserImpl::ParseConv(const onnx::NodeProto& node) // register the input connection slots for the layer, connections are made after all layers have been created // only the tensors for the inputs are relevant, exclude the const tensors - RegisterInputSlots(layer, {node.input(0)}); + RegisterInputSlots(layer, tensorIndexes); // register the output connection slots for the layer, connections are made after all layers have been created RegisterOutputSlots(layer, {node.output(0)}); -- cgit v1.2.1