ArmNN
 22.05
ConvertConstPermuteLayersToConstLayers Class Reference

#include <ConvertConstPermuteLayersToConstLayers.hpp>

Public Member Functions

void Run (Graph &graph, InputSlot &connection) const
 

Protected Member Functions

 ConvertConstPermuteLayersToConstLayers ()=default
 
 ~ConvertConstPermuteLayersToConstLayers ()=default
 

Detailed Description

Definition at line 17 of file ConvertConstPermuteLayersToConstLayers.hpp.

Constructor & Destructor Documentation

◆ ConvertConstPermuteLayersToConstLayers()

◆ ~ConvertConstPermuteLayersToConstLayers()

Member Function Documentation

◆ Run()

void Run ( Graph graph,
InputSlot connection 
) const
inline

Definition at line 20 of file ConvertConstPermuteLayersToConstLayers.hpp.

References ARMNN_ASSERT, armnn::BFloat16, armnn::Boolean, armnn::Constant, ConvertConstPermuteLayersToConstLayers::ConvertConstPermuteLayersToConstLayers(), armnn::Float16, armnn::Float32, InputSlot::GetConnectedOutputSlot(), TensorInfo::GetDataType(), Layer::GetDataType(), armnn::GetDataTypeSize(), TensorInfo::GetNumElements(), Layer::GetOutputSlot(), InputSlot::GetOwningLayer(), OutputSlot::GetOwningLayer(), PermuteLayer::GetPermutation(), TensorInfo::GetShape(), OutputSlot::GetTensorInfo(), Layer::GetType(), armnn::IgnoreUnused(), TensorInfo::IsConstant(), ConstantLayer::m_LayerOutput, OutputSlot::MoveAllConnections(), armnn::Permute, armnn::QAsymmS8, armnn::QAsymmU8, armnn::QSymmS16, armnn::QSymmS8, TensorInfo::SetConstant(), OutputSlot::SetTensorInfo(), armnn::Signed32, armnn::Signed64, and ConvertConstPermuteLayersToConstLayers::~ConvertConstPermuteLayersToConstLayers().

21  {
22  Layer& base = connection.GetConnectedOutputSlot()->GetOwningLayer();
23  Layer& child = connection.GetOwningLayer();
24 
25  ARMNN_ASSERT(base.GetType() == LayerType::Constant);
26  ARMNN_ASSERT(child.GetType() == LayerType::Permute);
27 
28  if (base.GetDataType() == child.GetDataType())
29  {
30  switch (base.GetDataType())
31  {
32  case DataType::Float16:
33  ReplaceConstPermuteLayer<DataType::Float16>(graph,
34  PolymorphicDowncast<ConstantLayer*>(&base),
35  PolymorphicDowncast<PermuteLayer*>(&child));
36  break;
37  case DataType::Float32:
38  ReplaceConstPermuteLayer<DataType::Float32>(graph,
39  PolymorphicDowncast<ConstantLayer*>(&base),
40  PolymorphicDowncast<PermuteLayer*>(&child));
41  break;
42  case DataType::QAsymmU8:
43  ReplaceConstPermuteLayer<DataType::QAsymmU8>(graph,
44  PolymorphicDowncast<ConstantLayer*>(&base),
45  PolymorphicDowncast<PermuteLayer*>(&child));
46  break;
47  case DataType::Signed32:
48  ReplaceConstPermuteLayer<DataType::Signed32>(graph,
49  PolymorphicDowncast<ConstantLayer*>(&base),
50  PolymorphicDowncast<PermuteLayer*>(&child));
51  break;
52  case DataType::QSymmS16:
53  ReplaceConstPermuteLayer<DataType::QSymmS16>(graph,
54  PolymorphicDowncast<ConstantLayer*>(&base),
55  PolymorphicDowncast<PermuteLayer*>(&child));
56  break;
57  case DataType::QSymmS8:
58  ReplaceConstPermuteLayer<DataType::QSymmS8>(graph,
59  PolymorphicDowncast<ConstantLayer*>(&base),
60  PolymorphicDowncast<PermuteLayer*>(&child));
61  break;
62  case DataType::QAsymmS8:
63  ReplaceConstPermuteLayer<DataType::QAsymmS8>(graph,
64  PolymorphicDowncast<ConstantLayer*>(&base),
65  PolymorphicDowncast<PermuteLayer*>(&child));
66  break;
67  case DataType::BFloat16:
68  ReplaceConstPermuteLayer<DataType::BFloat16>(graph,
69  PolymorphicDowncast<ConstantLayer*>(&base),
70  PolymorphicDowncast<PermuteLayer*>(&child));
71  break;
72  case DataType::Signed64:
73  ReplaceConstPermuteLayer<DataType::Signed64>(graph,
74  PolymorphicDowncast<ConstantLayer*>(&base),
75  PolymorphicDowncast<PermuteLayer*>(&child));
76  break;
77  case DataType::Boolean:
78  ReplaceConstPermuteLayer<DataType::Boolean>(graph,
79  PolymorphicDowncast<ConstantLayer*>(&base),
80  PolymorphicDowncast<PermuteLayer*>(&child));
81  break;
82  }
83  }
84  }
#define ARMNN_ASSERT(COND)
Definition: Assert.hpp:14

The documentation for this class was generated from the following file: