ArmNN
 25.11
Loading...
Searching...
No Matches
GraphUtils.hpp File Reference
#include <Graph.hpp>
#include <string>
Include dependency graph for GraphUtils.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

bool GraphHasNamedLayer (const armnn::Graph &graph, const std::string &name)
armnn::LayerGetFirstLayerWithName (armnn::Graph &graph, const std::string &name)
bool CheckNumberOfInputSlot (armnn::Layer *layer, unsigned int num)
bool CheckNumberOfOutputSlot (armnn::Layer *layer, unsigned int num)
bool IsConnected (armnn::Layer *srcLayer, armnn::Layer *destLayer, unsigned int srcSlot, unsigned int destSlot, const armnn::TensorInfo &expectedTensorInfo)
bool CheckOrder (const armnn::Graph &graph, const armnn::Layer *first, const armnn::Layer *second)
 Checks that first comes before second in the order.

Function Documentation

◆ CheckNumberOfInputSlot()

bool CheckNumberOfInputSlot ( armnn::Layer * layer,
unsigned int num )

Definition at line 34 of file GraphUtils.cpp.

35{
36 return layer->GetNumInputSlots() == num;
37}
unsigned int GetNumInputSlots() const override
Returns the number of connectable input slots.
Definition Layer.hpp:334

References Layer::GetNumInputSlots().

◆ CheckNumberOfOutputSlot()

bool CheckNumberOfOutputSlot ( armnn::Layer * layer,
unsigned int num )

Definition at line 39 of file GraphUtils.cpp.

40{
41 return layer->GetNumOutputSlots() == num;
42}
unsigned int GetNumOutputSlots() const override
Returns the number of connectable output slots.
Definition Layer.hpp:335

References Layer::GetNumOutputSlots().

◆ CheckOrder()

bool CheckOrder ( const armnn::Graph & graph,
const armnn::Layer * first,
const armnn::Layer * second )

Checks that first comes before second in the order.

Definition at line 68 of file GraphUtils.cpp.

69{
70 graph.Print();
71
72 const auto& order = graph.TopologicalSort();
73
74 auto firstPos = std::find(order.begin(), order.end(), first);
75 auto secondPos = std::find(firstPos, order.end(), second);
76
77 return (secondPos != order.end());
78}
Status Print(bool extended=false) const
Definition Graph.cpp:68
Graph & TopologicalSort()
Sorts layers in topological order and return this.
Definition Graph.hpp:191

References Graph::Print(), and Graph::TopologicalSort().

◆ GetFirstLayerWithName()

armnn::Layer * GetFirstLayerWithName ( armnn::Graph & graph,
const std::string & name )

Definition at line 22 of file GraphUtils.cpp.

23{
24 for (auto&& layer : graph)
25 {
26 if (layer->GetNameStr() == name)
27 {
28 return layer;
29 }
30 }
31 return nullptr;
32}

◆ GraphHasNamedLayer()

bool GraphHasNamedLayer ( const armnn::Graph & graph,
const std::string & name )

Definition at line 10 of file GraphUtils.cpp.

11{
12 for (auto&& layer : graph)
13 {
14 if (layer->GetName() == name)
15 {
16 return true;
17 }
18 }
19 return false;
20}

◆ IsConnected()

bool IsConnected ( armnn::Layer * srcLayer,
armnn::Layer * destLayer,
unsigned int srcSlot,
unsigned int destSlot,
const armnn::TensorInfo & expectedTensorInfo )

Definition at line 44 of file GraphUtils.cpp.

47{
48 const armnn::IOutputSlot& outputSlot = srcLayer->GetOutputSlot(srcSlot);
49 const armnn::TensorInfo& tensorInfo = outputSlot.GetTensorInfo();
50 if (expectedTensorInfo != tensorInfo)
51 {
52 return false;
53 }
54 const unsigned int numConnections = outputSlot.GetNumConnections();
55 for (unsigned int c = 0; c < numConnections; ++c)
56 {
58 if (inputSlot->GetOwningLayer().GetNameStr() == destLayer->GetNameStr() &&
59 inputSlot->GetSlotIndex() == destSlot)
60 {
61 return true;
62 }
63 }
64 return false;
65}
An output connection slot for a layer.
Definition INetwork.hpp:54
virtual const IInputSlot * GetConnection(unsigned int index) const =0
virtual unsigned int GetNumConnections() const =0
virtual const TensorInfo & GetTensorInfo() const =0
const std::string & GetNameStr() const
Definition Layer.hpp:240
const OutputSlot & GetOutputSlot(unsigned int index=0) const override
Get the const output slot handle by slot index.
Definition Layer.hpp:339
DestType PolymorphicDowncast(SourceType *value)
Polymorphic downcast for build in pointers only.

References IOutputSlot::GetConnection(), Layer::GetNameStr(), IOutputSlot::GetNumConnections(), Layer::GetOutputSlot(), IOutputSlot::GetTensorInfo(), and armnn::PolymorphicDowncast().