ArmNN
 20.02
SerializerUtils.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "SerializerUtils.hpp"
7 
8 namespace armnnSerializer
9 {
10 
12 {
13  switch (comparisonOperation)
14  {
16  return armnnSerializer::ComparisonOperation::ComparisonOperation_Equal;
18  return armnnSerializer::ComparisonOperation::ComparisonOperation_Greater;
20  return armnnSerializer::ComparisonOperation::ComparisonOperation_GreaterOrEqual;
22  return armnnSerializer::ComparisonOperation::ComparisonOperation_Less;
24  return armnnSerializer::ComparisonOperation::ComparisonOperation_LessOrEqual;
26  default:
27  return armnnSerializer::ComparisonOperation::ComparisonOperation_NotEqual;
28  }
29 }
30 
31 armnnSerializer::ConstTensorData GetFlatBufferConstTensorData(armnn::DataType dataType)
32 {
33  switch (dataType)
34  {
37  return armnnSerializer::ConstTensorData::ConstTensorData_IntData;
40  return armnnSerializer::ConstTensorData::ConstTensorData_ShortData;
43  return armnnSerializer::ConstTensorData::ConstTensorData_ByteData;
44  default:
45  return armnnSerializer::ConstTensorData::ConstTensorData_NONE;
46  }
47 }
48 
50 {
51  switch (dataType)
52  {
54  return armnnSerializer::DataType::DataType_Float32;
56  return armnnSerializer::DataType::DataType_Float16;
58  return armnnSerializer::DataType::DataType_Signed32;
60  return armnnSerializer::DataType::DataType_QSymmS16;
62  return armnnSerializer::DataType::DataType_QAsymmS8;
64  return armnnSerializer::DataType::DataType_QAsymmU8;
66  return armnnSerializer::DataType::DataType_Boolean;
67  default:
68  return armnnSerializer::DataType::DataType_Float16;
69  }
70 }
71 
73 {
74  switch (dataLayout)
75  {
77  return armnnSerializer::DataLayout::DataLayout_NHWC;
79  default:
80  return armnnSerializer::DataLayout::DataLayout_NCHW;
81  }
82 }
83 
85 {
86  switch (comparisonOperation)
87  {
89  return armnnSerializer::UnaryOperation::UnaryOperation_Abs;
91  return armnnSerializer::UnaryOperation::UnaryOperation_Rsqrt;
93  return armnnSerializer::UnaryOperation::UnaryOperation_Sqrt;
95  return armnnSerializer::UnaryOperation::UnaryOperation_Exp;
97  return armnnSerializer::UnaryOperation::UnaryOperation_Neg;
98  default:
99  throw armnn::InvalidArgumentException("Unary operation unknown");
100  }
101 }
102 
104 {
105  switch (poolingAlgorithm)
106  {
108  return armnnSerializer::PoolingAlgorithm::PoolingAlgorithm_Average;
110  return armnnSerializer::PoolingAlgorithm::PoolingAlgorithm_L2;
112  default:
113  return armnnSerializer::PoolingAlgorithm::PoolingAlgorithm_Max;
114  }
115 }
116 
118 {
119  switch (outputShapeRounding)
120  {
122  return armnnSerializer::OutputShapeRounding::OutputShapeRounding_Ceiling;
124  default:
125  return armnnSerializer::OutputShapeRounding::OutputShapeRounding_Floor;
126  }
127 }
128 
130 {
131  switch (paddingMethod)
132  {
134  return armnnSerializer::PaddingMethod::PaddingMethod_IgnoreValue;
136  default:
137  return armnnSerializer::PaddingMethod::PaddingMethod_Exclude;
138  }
139 }
140 
142  armnn::NormalizationAlgorithmChannel normalizationAlgorithmChannel)
143 {
144  switch (normalizationAlgorithmChannel)
145  {
147  return armnnSerializer::NormalizationAlgorithmChannel::NormalizationAlgorithmChannel_Across;
149  return armnnSerializer::NormalizationAlgorithmChannel::NormalizationAlgorithmChannel_Within;
150  default:
151  return armnnSerializer::NormalizationAlgorithmChannel::NormalizationAlgorithmChannel_Across;
152  }
153 }
154 
156  armnn::NormalizationAlgorithmMethod normalizationAlgorithmMethod)
157 {
158  switch (normalizationAlgorithmMethod)
159  {
161  return armnnSerializer::NormalizationAlgorithmMethod::NormalizationAlgorithmMethod_LocalBrightness;
163  return armnnSerializer::NormalizationAlgorithmMethod::NormalizationAlgorithmMethod_LocalContrast;
164  default:
165  return armnnSerializer::NormalizationAlgorithmMethod::NormalizationAlgorithmMethod_LocalBrightness;
166  }
167 }
168 
170 {
171  switch (method)
172  {
174  return armnnSerializer::ResizeMethod_NearestNeighbor;
176  return armnnSerializer::ResizeMethod_Bilinear;
177  default:
178  return armnnSerializer::ResizeMethod_NearestNeighbor;
179  }
180 }
181 
182 } // namespace armnnSerializer
armnnSerializer::UnaryOperation GetFlatBufferUnaryOperation(armnn::UnaryOperation comparisonOperation)
DataLayout
Definition: Types.hpp:49
armnnSerializer::OutputShapeRounding GetFlatBufferOutputShapeRounding(armnn::OutputShapeRounding outputShapeRounding)
The padding fields don't count and are ignored.
NormalizationAlgorithmChannel
Definition: Types.hpp:126
armnnSerializer::NormalizationAlgorithmMethod GetFlatBufferNormalizationAlgorithmMethod(armnn::NormalizationAlgorithmMethod normalizationAlgorithmMethod)
PoolingAlgorithm
Definition: Types.hpp:96
armnnSerializer::ConstTensorData GetFlatBufferConstTensorData(armnn::DataType dataType)
armnnSerializer::DataType GetFlatBufferDataType(armnn::DataType dataType)
PaddingMethod
The padding method modifies the output of pooling layers.
Definition: Types.hpp:118
ComparisonOperation
Definition: Types.hpp:77
armnnSerializer::NormalizationAlgorithmChannel GetFlatBufferNormalizationAlgorithmChannel(armnn::NormalizationAlgorithmChannel normalizationAlgorithmChannel)
DataType
Definition: Types.hpp:32
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)
OutputShapeRounding
Definition: Types.hpp:140
armnnSerializer::ComparisonOperation GetFlatBufferComparisonOperation(armnn::ComparisonOperation comparisonOperation)
The padding fields count, but are ignored.
Jarret 2009: Local Contrast Normalization.
armnnSerializer::ResizeMethod GetFlatBufferResizeMethod(armnn::ResizeMethod method)
ResizeMethod
Definition: Types.hpp:103
UnaryOperation
Definition: Types.hpp:87
armnnSerializer::PaddingMethod GetFlatBufferPaddingMethod(armnn::PaddingMethod paddingMethod)
Krichevsky 2012: Local Brightness Normalization.
NormalizationAlgorithmMethod
Definition: Types.hpp:132
armnnSerializer::PoolingAlgorithm GetFlatBufferPoolingAlgorithm(armnn::PoolingAlgorithm poolingAlgorithm)