21 originalLayers.sort();
25 for (
auto& failed : m_FailedOptimizations)
27 countedLayers.insert(countedLayers.end(), failed.GetLayers().begin(), failed.GetLayers().end());
29 for (
auto& untouched : m_UntouchedSubgraphs)
31 countedLayers.insert(countedLayers.end(), untouched.GetLayers().begin(), untouched.GetLayers().end());
33 for (
auto& successful : m_SuccesfulOptimizations)
35 countedLayers.insert(countedLayers.end(),
36 successful.m_SubstitutableSubgraph.GetLayers().begin(),
37 successful.m_SubstitutableSubgraph.GetLayers().end());
42 valid &= originalLayers.size() == countedLayers.size();
44 auto oIt = originalLayers.begin();
45 auto cIt = countedLayers.begin();
46 for (
size_t i=0; i < originalLayers.size() && valid; ++i, ++oIt, ++cIt)
48 valid &= (*oIt == *cIt);
54 for (
auto& substitution : m_SuccesfulOptimizations)
56 bool validSubstitution =
true;
57 const SubgraphView& replacement = substitution.m_ReplacementSubgraph;
58 const SubgraphView& old = substitution.m_SubstitutableSubgraph;
61 valid &= validSubstitution;
Copyright (c) 2020 ARM Limited.
The SubgraphView class represents a subgraph of a Graph.
bool Validate(const SubgraphView &originalSubgraph) const
const InputSlots & GetInputSlots() const
const OutputSlots & GetOutputSlots() const
const Layers & GetLayers() const
std::list< Layer * > Layers