From cdbd40bcfe3f3b35d5ba2133e365cf0157a867c1 Mon Sep 17 00:00:00 2001 From: Teresa Charlin Date: Fri, 25 Feb 2022 13:21:55 +0000 Subject: IVGCVSW-6454 Add FLOOR_DIV Support to the TfLiteParser Signed-off-by: Teresa Charlin Change-Id: I7ab32f2998c2bc25fee8831d4be724286263b4b3 --- src/armnnTfLiteParser/TfLiteParser.cpp | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'src/armnnTfLiteParser/TfLiteParser.cpp') diff --git a/src/armnnTfLiteParser/TfLiteParser.cpp b/src/armnnTfLiteParser/TfLiteParser.cpp index 81cbb9c8c0..5c6d619845 100644 --- a/src/armnnTfLiteParser/TfLiteParser.cpp +++ b/src/armnnTfLiteParser/TfLiteParser.cpp @@ -689,6 +689,7 @@ TfLiteParserImpl::TfLiteParserImpl(const OptionalAddDivisionLayer(layerName.c_str()); + ARMNN_ASSERT(layer != nullptr); + + TensorInfo outputTensorInfo = ToTensorInfo(outputs[0], true); + layer->GetOutputSlot(0).SetTensorInfo(outputTensorInfo); + + auto inputTensorIndexes = AsUnsignedVector(GetInputTensorIds(m_Model, subgraphIndex, operatorIndex)); + RegisterInputSlots(subgraphIndex, operatorIndex, layer, {inputTensorIndexes[0], inputTensorIndexes[1]}); + layer = AddFusedFloorLayer(layer, 0); + + auto outputTensorIndexes = AsUnsignedVector(GetOutputTensorIds(m_Model, subgraphIndex, operatorIndex)); + RegisterOutputSlots(subgraphIndex, operatorIndex, layer, {outputTensorIndexes[0]}); +} + void TfLiteParserImpl::ParseAdd(size_t subgraphIndex, size_t operatorIndex) { CHECK_MODEL(m_Model, subgraphIndex, operatorIndex); @@ -3943,6 +3972,18 @@ armnn::IConnectableLayer* TfLiteParserImpl::AddFusedActivationLayer(armnn::IConn return activationLayer; } +armnn::IConnectableLayer* TfLiteParserImpl::AddFusedFloorLayer(armnn::IConnectableLayer* prevLayer, + unsigned int outputSlot) +{ + std::string layerName = prevLayer->GetName(); + IConnectableLayer* floorLayer = m_Network->AddFloorLayer(layerName.c_str()); + + auto & prevOutputSlot = prevLayer->GetOutputSlot(outputSlot); + prevOutputSlot.Connect(floorLayer->GetInputSlot(0)); + floorLayer->GetOutputSlot(0).SetTensorInfo(prevOutputSlot.GetTensorInfo()); + return floorLayer; +} + TfLiteParserImpl::ModelPtr TfLiteParserImpl::LoadModelFromFile(const char* fileName) { if (fileName == nullptr) -- cgit v1.2.1