From 05349c5e86cdb3f414c3b7bebf6a6f1d3505938b Mon Sep 17 00:00:00 2001 From: Matteo Martincigh Date: Tue, 21 May 2019 13:29:00 +0100 Subject: IVGCVSW-3015 Fix duplicate input/output slots in sub-graph * Avoid collecting duplicate input/output slots during the sub-graph selection process * Fixes the InceptionV3 quantized run Change-Id: I737ec8576d57184d3d25bda436a7776ec7243a0d Signed-off-by: Matteo Martincigh --- src/armnn/SubgraphViewSelector.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/armnn/SubgraphViewSelector.cpp b/src/armnn/SubgraphViewSelector.cpp index 8e4de0b5f8..4357ec4381 100644 --- a/src/armnn/SubgraphViewSelector.cpp +++ b/src/armnn/SubgraphViewSelector.cpp @@ -59,7 +59,12 @@ struct LayerSelectionInfo if (parentInfo == layerInfos.end() || m_SplitId != parentInfo->second.m_SplitId) { - inputSlots.push_back(&(*slot)); + // Avoid collecting duplicate input slots + InputSlot* inputSlot = &(*slot); + if (std::find(inputSlots.begin(), inputSlots.end(), inputSlot) == inputSlots.end()) + { + inputSlots.push_back(inputSlot); + } } } } @@ -77,7 +82,12 @@ struct LayerSelectionInfo if (childInfo == layerInfos.end() || m_SplitId != childInfo->second.m_SplitId) { - outputSlots.push_back(&(*slot)); + // Avoid collecting duplicate output slots + OutputSlot* outputSlot = &(*slot); + if (std::find(outputSlots.begin(), outputSlots.end(), outputSlot) == outputSlots.end()) + { + outputSlots.push_back(outputSlot); + } } } } -- cgit v1.2.1