diff options
Diffstat (limited to 'src/armnn/Graph.cpp')
-rw-r--r-- | src/armnn/Graph.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/armnn/Graph.cpp b/src/armnn/Graph.cpp index 8c2b232ead..31ca55cb9d 100644 --- a/src/armnn/Graph.cpp +++ b/src/armnn/Graph.cpp @@ -308,6 +308,17 @@ void Graph::SubstituteSubgraph(SubgraphView& subgraph, IConnectableLayer* substi void Graph::SubstituteSubgraph(SubgraphView& subgraph, const SubgraphView& substituteSubgraph) { + // Look through each layer in the new subgraph and add any that are not already a member of this graph + substituteSubgraph.ForEachLayer([this](Layer* layer) + { + if (std::find(std::begin(m_Layers), std::end(m_Layers), layer) == std::end(m_Layers)) + { + layer->Reparent(*this, m_Layers.end()); + m_LayersInOrder = false; + } + }); + + TopologicalSort(); ReplaceSubgraphConnections(subgraph, substituteSubgraph); EraseSubgraphLayers(subgraph); } |