diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/armnn/Graph.cpp | 5 | ||||
-rw-r--r-- | src/armnn/test/GraphTests.cpp | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/armnn/Graph.cpp b/src/armnn/Graph.cpp index be792a63a5..a5c85092b0 100644 --- a/src/armnn/Graph.cpp +++ b/src/armnn/Graph.cpp @@ -263,7 +263,10 @@ void Graph::AddCopyLayers() // All layers should have been associated with a valid compute device at this point. BOOST_ASSERT(layer.GetBackendId() != Compute::Undefined); // Does not need another copy layer if a copy layer is already present. - return layer.GetType() != LayerType::MemCopy; + return layer.GetType() != LayerType::MemCopy && + // Input and Output layers can perform their own copies internally. + layer.GetType() != LayerType::Input && + layer.GetType() != LayerType::Output; }; for (auto&& srcLayer : m_Layers) diff --git a/src/armnn/test/GraphTests.cpp b/src/armnn/test/GraphTests.cpp index 0777d98d3a..44cfa2eaec 100644 --- a/src/armnn/test/GraphTests.cpp +++ b/src/armnn/test/GraphTests.cpp @@ -545,7 +545,7 @@ BOOST_AUTO_TEST_CASE(CopyLayersAddedBetweenSameLayersHaveDifferentNames) graph.AddCopyLayers(); std::vector<Edge> edges = GetEdgeList(graph); - BOOST_CHECK(edges.size() == 7u); + BOOST_CHECK(edges.size() == 6u); std::sort(edges.begin(), edges.end()); auto last = std::unique(edges.begin(), edges.end()); BOOST_CHECK_MESSAGE(last == edges.end(), "Found duplicated edges after AddCopyLayers()"); |