ArmNN  NotReleased
OptimizationViews.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include <SubgraphView.hpp>
9 
10 namespace armnn
11 {
12 
14 {
15 public:
16  OptimizationViews() = default;
17  OptimizationViews(const OptimizationViews&) = delete;
21 
23  {
26 
29  };
30 
31  using Subgraphs = std::vector<SubgraphView>;
32  using Substitutions = std::vector<SubstitutionPair>;
33 
34  void AddSubstitution(SubstitutionPair&& substitution)
35  {
36  m_SuccesfulOptimizations.emplace_back(substitution);
37  }
38 
40  {
41  m_FailedOptimizations.emplace_back(subgraph);
42  }
43 
45  {
46  m_UntouchedSubgraphs.emplace_back(subgraph);
47  }
48 
49  const Substitutions& GetSubstitutions() const { return m_SuccesfulOptimizations; }
50  const Subgraphs& GetFailedSubgraphs() const { return m_FailedOptimizations; }
51  const Subgraphs& GetUntouchedSubgraphs() const { return m_UntouchedSubgraphs; }
52 
53  Substitutions& GetSubstitutions() { return m_SuccesfulOptimizations; }
54  Subgraphs& GetFailedSubgraphs() { return m_FailedOptimizations; }
55  Subgraphs& GetUntouchedSubgraphs() { return m_UntouchedSubgraphs; }
56 
57  bool Validate(const SubgraphView& originalSubgraph) const;
58 
59  Graph& GetGraph() { return m_Graph; }
60 
61 private:
62  Substitutions m_SuccesfulOptimizations;
63  Subgraphs m_FailedOptimizations;
64  Subgraphs m_UntouchedSubgraphs;
65 
67  Graph m_Graph;
68 };
69 
70 } //namespace armnn
void AddFailedSubgraph(SubgraphView &&subgraph)
SubgraphView m_SubstitutableSubgraph
Subgraph of Layers from the original graph which should be replaced.
void AddUntouchedSubgraph(SubgraphView &&subgraph)
const Subgraphs & GetFailedSubgraphs() const
std::vector< SubgraphView > Subgraphs
void AddSubstitution(SubstitutionPair &&substitution)
const Substitutions & GetSubstitutions() const
Substitutions & GetSubstitutions()
std::vector< SubstitutionPair > Substitutions
bool Validate(const SubgraphView &originalSubgraph) const
const Subgraphs & GetUntouchedSubgraphs() const
OptimizationViews & operator=(const OptimizationViews &)=delete
SubgraphView m_ReplacementSubgraph
A subgraph of new layers which will replace layers in m_SubstitutableSubgraph.