ArmNN
 25.11
Loading...
Searching...
No Matches
SerializerUtils.cpp
Go to the documentation of this file.
1//
2// Copyright © 2017,2019-2021,2023-2024 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include "SerializerUtils.hpp"
7
8namespace armnnSerializer
9{
10
11armnnSerializer::ComparisonOperation GetFlatBufferComparisonOperation(armnn::ComparisonOperation comparisonOperation)
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
31armnnSerializer::LogicalBinaryOperation GetFlatBufferLogicalBinaryOperation(
32 armnn::LogicalBinaryOperation logicalBinaryOperation)
33{
34 switch (logicalBinaryOperation)
35 {
37 return armnnSerializer::LogicalBinaryOperation::LogicalBinaryOperation_LogicalAnd;
39 return armnnSerializer::LogicalBinaryOperation::LogicalBinaryOperation_LogicalOr;
40 default:
41 throw armnn::InvalidArgumentException("Logical Binary operation unknown");
42 }
43}
44
45armnnSerializer::ConstTensorData GetFlatBufferConstTensorData(armnn::DataType dataType)
46{
47 switch (dataType)
48 {
51 return armnnSerializer::ConstTensorData::ConstTensorData_IntData;
54 return armnnSerializer::ConstTensorData::ConstTensorData_ShortData;
59 return armnnSerializer::ConstTensorData::ConstTensorData_ByteData;
61 return armnnSerializer::ConstTensorData::ConstTensorData_LongData;
62 default:
63 return armnnSerializer::ConstTensorData::ConstTensorData_NONE;
64 }
65}
66
67armnnSerializer::DataType GetFlatBufferDataType(armnn::DataType dataType)
68{
69 switch (dataType)
70 {
72 return armnnSerializer::DataType::DataType_Float32;
74 return armnnSerializer::DataType::DataType_Float16;
76 return armnnSerializer::DataType::DataType_Signed32;
78 return armnnSerializer::DataType::DataType_Signed64;
80 return armnnSerializer::DataType::DataType_QSymmS16;
82 return armnnSerializer::DataType::DataType_QAsymmS8;
84 return armnnSerializer::DataType::DataType_QAsymmU8;
86 return armnnSerializer::DataType::DataType_QSymmS8;
88 return armnnSerializer::DataType::DataType_Boolean;
89 default:
90 return armnnSerializer::DataType::DataType_Float16;
91 }
92}
93
94armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)
95{
96 switch (dataLayout)
97 {
99 return armnnSerializer::DataLayout::DataLayout_NHWC;
101 return armnnSerializer::DataLayout::DataLayout_NDHWC;
103 return armnnSerializer::DataLayout::DataLayout_NCDHW;
105 default:
106 return armnnSerializer::DataLayout::DataLayout_NCHW;
107 }
108}
109
110armnnSerializer::BinaryOperation GetFlatBufferBinaryOperation(armnn::BinaryOperation binaryOperation)
111{
112 switch (binaryOperation)
113 {
115 return armnnSerializer::BinaryOperation::BinaryOperation_Add;
117 return armnnSerializer::BinaryOperation::BinaryOperation_Div;
119 return armnnSerializer::BinaryOperation::BinaryOperation_Div;
121 return armnnSerializer::BinaryOperation::BinaryOperation_Maximum;
123 return armnnSerializer::BinaryOperation::BinaryOperation_Minimum;
125 return armnnSerializer::BinaryOperation::BinaryOperation_Mul;
127 return armnnSerializer::BinaryOperation::BinaryOperation_Sub;
129 return armnnSerializer::BinaryOperation::BinaryOperation_SqDiff;
131 return armnnSerializer::BinaryOperation::BinaryOperation_Power;
132 default:
133 throw armnn::InvalidArgumentException("Elementwise Binary operation unknown");
134 }
135}
136
137armnnSerializer::UnaryOperation GetFlatBufferUnaryOperation(armnn::UnaryOperation unaryOperation)
138{
139 switch (unaryOperation)
140 {
142 return armnnSerializer::UnaryOperation::UnaryOperation_Abs;
144 return armnnSerializer::UnaryOperation::UnaryOperation_Ceil;
146 return armnnSerializer::UnaryOperation::UnaryOperation_Rsqrt;
148 return armnnSerializer::UnaryOperation::UnaryOperation_Sqrt;
150 return armnnSerializer::UnaryOperation::UnaryOperation_Exp;
152 return armnnSerializer::UnaryOperation::UnaryOperation_Neg;
154 return armnnSerializer::UnaryOperation::UnaryOperation_LogicalNot;
156 return armnnSerializer::UnaryOperation::UnaryOperation_Log;
158 return armnnSerializer::UnaryOperation::UnaryOperation_Sin;
159 default:
160 throw armnn::InvalidArgumentException("Elementwise Unary operation unknown");
161 }
162}
163
164armnnSerializer::PoolingAlgorithm GetFlatBufferPoolingAlgorithm(armnn::PoolingAlgorithm poolingAlgorithm)
165{
166 switch (poolingAlgorithm)
167 {
169 return armnnSerializer::PoolingAlgorithm::PoolingAlgorithm_Average;
171 return armnnSerializer::PoolingAlgorithm::PoolingAlgorithm_L2;
173 default:
174 return armnnSerializer::PoolingAlgorithm::PoolingAlgorithm_Max;
175 }
176}
177
178armnnSerializer::OutputShapeRounding GetFlatBufferOutputShapeRounding(armnn::OutputShapeRounding outputShapeRounding)
179{
180 switch (outputShapeRounding)
181 {
183 return armnnSerializer::OutputShapeRounding::OutputShapeRounding_Ceiling;
185 default:
186 return armnnSerializer::OutputShapeRounding::OutputShapeRounding_Floor;
187 }
188}
189
190armnnSerializer::PaddingMethod GetFlatBufferPaddingMethod(armnn::PaddingMethod paddingMethod)
191{
192 switch (paddingMethod)
193 {
195 return armnnSerializer::PaddingMethod::PaddingMethod_IgnoreValue;
197 default:
198 return armnnSerializer::PaddingMethod::PaddingMethod_Exclude;
199 }
200}
201
202armnnSerializer::PaddingMode GetFlatBufferPaddingMode(armnn::PaddingMode paddingMode)
203{
204 switch (paddingMode)
205 {
207 return armnnSerializer::PaddingMode::PaddingMode_Reflect;
209 return armnnSerializer::PaddingMode::PaddingMode_Symmetric;
210 default:
211 return armnnSerializer::PaddingMode::PaddingMode_Constant;
212 }
213}
214
215armnnSerializer::NormalizationAlgorithmChannel GetFlatBufferNormalizationAlgorithmChannel(
216 armnn::NormalizationAlgorithmChannel normalizationAlgorithmChannel)
217{
218 switch (normalizationAlgorithmChannel)
219 {
221 return armnnSerializer::NormalizationAlgorithmChannel::NormalizationAlgorithmChannel_Across;
223 return armnnSerializer::NormalizationAlgorithmChannel::NormalizationAlgorithmChannel_Within;
224 default:
225 return armnnSerializer::NormalizationAlgorithmChannel::NormalizationAlgorithmChannel_Across;
226 }
227}
228
229armnnSerializer::NormalizationAlgorithmMethod GetFlatBufferNormalizationAlgorithmMethod(
230 armnn::NormalizationAlgorithmMethod normalizationAlgorithmMethod)
231{
232 switch (normalizationAlgorithmMethod)
233 {
235 return armnnSerializer::NormalizationAlgorithmMethod::NormalizationAlgorithmMethod_LocalBrightness;
237 return armnnSerializer::NormalizationAlgorithmMethod::NormalizationAlgorithmMethod_LocalContrast;
238 default:
239 return armnnSerializer::NormalizationAlgorithmMethod::NormalizationAlgorithmMethod_LocalBrightness;
240 }
241}
242
243armnnSerializer::ResizeMethod GetFlatBufferResizeMethod(armnn::ResizeMethod method)
244{
245 switch (method)
246 {
248 return armnnSerializer::ResizeMethod_NearestNeighbor;
250 return armnnSerializer::ResizeMethod_Bilinear;
251 default:
252 return armnnSerializer::ResizeMethod_NearestNeighbor;
253 }
254}
255
256armnnSerializer::ReduceOperation GetFlatBufferReduceOperation(armnn::ReduceOperation reduceOperation)
257{
258 switch (reduceOperation)
259 {
261 return armnnSerializer::ReduceOperation::ReduceOperation_Sum;
263 return armnnSerializer::ReduceOperation::ReduceOperation_Max;
265 return armnnSerializer::ReduceOperation::ReduceOperation_Mean;
267 return armnnSerializer::ReduceOperation::ReduceOperation_Min;
269 return armnnSerializer::ReduceOperation::ReduceOperation_Prod;
270 default:
271 return armnnSerializer::ReduceOperation::ReduceOperation_Sum;
272 }
273}
274
275} // namespace armnnSerializer
PaddingMode
The padding mode controls whether the padding should be filled with constant values (Constant),...
Definition Types.hpp:202
UnaryOperation
Definition Types.hpp:126
ComparisonOperation
Definition Types.hpp:110
LogicalBinaryOperation
Definition Types.hpp:120
PaddingMethod
The padding method modifies the output of pooling layers.
Definition Types.hpp:190
@ Exclude
The padding fields don't count and are ignored.
Definition Types.hpp:194
@ IgnoreValue
The padding fields count, but are ignored.
Definition Types.hpp:192
PoolingAlgorithm
Definition Types.hpp:152
ResizeMethod
Definition Types.hpp:168
ReduceOperation
Definition Types.hpp:159
NormalizationAlgorithmChannel
Definition Types.hpp:209
BinaryOperation
Definition Types.hpp:139
DataLayout
Definition Types.hpp:63
NormalizationAlgorithmMethod
Definition Types.hpp:215
@ LocalContrast
Jarret 2009: Local Contrast Normalization.
Definition Types.hpp:219
@ LocalBrightness
Krichevsky 2012: Local Brightness Normalization.
Definition Types.hpp:217
DataType
Definition Types.hpp:49
OutputShapeRounding
Definition Types.hpp:223
armnnSerializer::ComparisonOperation GetFlatBufferComparisonOperation(armnn::ComparisonOperation comparisonOperation)
armnnSerializer::ResizeMethod GetFlatBufferResizeMethod(armnn::ResizeMethod method)
armnnSerializer::DataType GetFlatBufferDataType(armnn::DataType dataType)
armnnSerializer::ReduceOperation GetFlatBufferReduceOperation(armnn::ReduceOperation reduceOperation)
armnnSerializer::LogicalBinaryOperation GetFlatBufferLogicalBinaryOperation(armnn::LogicalBinaryOperation logicalBinaryOperation)
armnnSerializer::PaddingMethod GetFlatBufferPaddingMethod(armnn::PaddingMethod paddingMethod)
armnnSerializer::BinaryOperation GetFlatBufferBinaryOperation(armnn::BinaryOperation binaryOperation)
armnnSerializer::PaddingMode GetFlatBufferPaddingMode(armnn::PaddingMode paddingMode)
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)
armnnSerializer::OutputShapeRounding GetFlatBufferOutputShapeRounding(armnn::OutputShapeRounding outputShapeRounding)
armnnSerializer::PoolingAlgorithm GetFlatBufferPoolingAlgorithm(armnn::PoolingAlgorithm poolingAlgorithm)
armnnSerializer::NormalizationAlgorithmMethod GetFlatBufferNormalizationAlgorithmMethod(armnn::NormalizationAlgorithmMethod normalizationAlgorithmMethod)
armnnSerializer::UnaryOperation GetFlatBufferUnaryOperation(armnn::UnaryOperation unaryOperation)
armnnSerializer::NormalizationAlgorithmChannel GetFlatBufferNormalizationAlgorithmChannel(armnn::NormalizationAlgorithmChannel normalizationAlgorithmChannel)
armnnSerializer::ConstTensorData GetFlatBufferConstTensorData(armnn::DataType dataType)