ArmNN  NotReleased
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_QAsymmU8;
64  return armnnSerializer::DataType::DataType_Boolean;
65  default:
66  return armnnSerializer::DataType::DataType_Float16;
67  }
68 }
69 
71 {
72  switch (dataLayout)
73  {
75  return armnnSerializer::DataLayout::DataLayout_NHWC;
77  default:
78  return armnnSerializer::DataLayout::DataLayout_NCHW;
79  }
80 }
81 
83 {
84  switch (comparisonOperation)
85  {
87  return armnnSerializer::UnaryOperation::UnaryOperation_Abs;
89  return armnnSerializer::UnaryOperation::UnaryOperation_Rsqrt;
91  return armnnSerializer::UnaryOperation::UnaryOperation_Sqrt;
93  return armnnSerializer::UnaryOperation::UnaryOperation_Exp;
95  return armnnSerializer::UnaryOperation::UnaryOperation_Neg;
96  default:
97  throw armnn::InvalidArgumentException("Unary operation unknown");
98  }
99 }
100 
102 {
103  switch (poolingAlgorithm)
104  {
106  return armnnSerializer::PoolingAlgorithm::PoolingAlgorithm_Average;
108  return armnnSerializer::PoolingAlgorithm::PoolingAlgorithm_L2;
110  default:
111  return armnnSerializer::PoolingAlgorithm::PoolingAlgorithm_Max;
112  }
113 }
114 
116 {
117  switch (outputShapeRounding)
118  {
120  return armnnSerializer::OutputShapeRounding::OutputShapeRounding_Ceiling;
122  default:
123  return armnnSerializer::OutputShapeRounding::OutputShapeRounding_Floor;
124  }
125 }
126 
128 {
129  switch (paddingMethod)
130  {
132  return armnnSerializer::PaddingMethod::PaddingMethod_IgnoreValue;
134  default:
135  return armnnSerializer::PaddingMethod::PaddingMethod_Exclude;
136  }
137 }
138 
140  armnn::NormalizationAlgorithmChannel normalizationAlgorithmChannel)
141 {
142  switch (normalizationAlgorithmChannel)
143  {
145  return armnnSerializer::NormalizationAlgorithmChannel::NormalizationAlgorithmChannel_Across;
147  return armnnSerializer::NormalizationAlgorithmChannel::NormalizationAlgorithmChannel_Within;
148  default:
149  return armnnSerializer::NormalizationAlgorithmChannel::NormalizationAlgorithmChannel_Across;
150  }
151 }
152 
154  armnn::NormalizationAlgorithmMethod normalizationAlgorithmMethod)
155 {
156  switch (normalizationAlgorithmMethod)
157  {
159  return armnnSerializer::NormalizationAlgorithmMethod::NormalizationAlgorithmMethod_LocalBrightness;
161  return armnnSerializer::NormalizationAlgorithmMethod::NormalizationAlgorithmMethod_LocalContrast;
162  default:
163  return armnnSerializer::NormalizationAlgorithmMethod::NormalizationAlgorithmMethod_LocalBrightness;
164  }
165 }
166 
168 {
169  switch (method)
170  {
172  return armnnSerializer::ResizeMethod_NearestNeighbor;
174  return armnnSerializer::ResizeMethod_Bilinear;
175  default:
176  return armnnSerializer::ResizeMethod_NearestNeighbor;
177  }
178 }
179 
180 } // namespace armnnSerializer
PaddingMethod
Definition: Types.hpp:115
armnnSerializer::OutputShapeRounding GetFlatBufferOutputShapeRounding(armnn::OutputShapeRounding outputShapeRounding)
ResizeMethod
Definition: Types.hpp:100
armnnSerializer::ConstTensorData GetFlatBufferConstTensorData(armnn::DataType dataType)
OutputShapeRounding
Definition: Types.hpp:137
armnnSerializer::PaddingMethod GetFlatBufferPaddingMethod(armnn::PaddingMethod paddingMethod)
Krichevsky 2012: Local Brightness Normalization.
Jarret 2009: Local Contrast Normalization.
armnnSerializer::PoolingAlgorithm GetFlatBufferPoolingAlgorithm(armnn::PoolingAlgorithm poolingAlgorithm)
ComparisonOperation
Definition: Types.hpp:74
PoolingAlgorithm
Definition: Types.hpp:93
The padding fields count, but are ignored.
The padding fields don't count and are ignored.
NormalizationAlgorithmMethod
Definition: Types.hpp:129
armnnSerializer::ResizeMethod GetFlatBufferResizeMethod(armnn::ResizeMethod method)
armnnSerializer::NormalizationAlgorithmChannel GetFlatBufferNormalizationAlgorithmChannel(armnn::NormalizationAlgorithmChannel normalizationAlgorithmChannel)
UnaryOperation
Definition: Types.hpp:84
armnnSerializer::ComparisonOperation GetFlatBufferComparisonOperation(armnn::ComparisonOperation comparisonOperation)
DataLayout
Definition: Types.hpp:48
armnnSerializer::DataType GetFlatBufferDataType(armnn::DataType dataType)
DataType
Definition: Types.hpp:32
NormalizationAlgorithmChannel
Definition: Types.hpp:123
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)
armnnSerializer::UnaryOperation GetFlatBufferUnaryOperation(armnn::UnaryOperation comparisonOperation)
armnnSerializer::NormalizationAlgorithmMethod GetFlatBufferNormalizationAlgorithmMethod(armnn::NormalizationAlgorithmMethod normalizationAlgorithmMethod)