blob: bfe795c8c4f236509890205061c767ef6ac9ee8f [file] [log] [blame]
Saoirse Stewart3166c3e2019-02-18 15:24:53 +00001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include "SerializerUtils.hpp"
7
8namespace armnnSerializer
9{
10
11using namespace armnn;
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000012
Derek Lamberti0028d1b2019-02-20 13:57:42 +000013armnnSerializer::ConstTensorData GetFlatBufferConstTensorData(armnn::DataType dataType)
Mike Kellya0766c32019-02-19 17:22:07 +000014{
15 switch (dataType)
16 {
Derek Lamberti0028d1b2019-02-20 13:57:42 +000017 case armnn::DataType::Float32:
18 case armnn::DataType::Signed32:
19 return armnnSerializer::ConstTensorData::ConstTensorData_IntData;
20 case armnn::DataType::Float16:
21 return armnnSerializer::ConstTensorData::ConstTensorData_ShortData;
22 case armnn::DataType::QuantisedAsymm8:
23 case armnn::DataType::Boolean:
24 return armnnSerializer::ConstTensorData::ConstTensorData_ByteData;
Mike Kellya0766c32019-02-19 17:22:07 +000025 default:
Derek Lamberti0028d1b2019-02-20 13:57:42 +000026 return armnnSerializer::ConstTensorData::ConstTensorData_NONE;
Mike Kellya0766c32019-02-19 17:22:07 +000027 }
28}
29
Derek Lamberti0028d1b2019-02-20 13:57:42 +000030armnnSerializer::DataType GetFlatBufferDataType(armnn::DataType dataType)
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000031{
32 switch (dataType)
33 {
Derek Lamberti0028d1b2019-02-20 13:57:42 +000034 case armnn::DataType::Float32:
35 return armnnSerializer::DataType::DataType_Float32;
36 case armnn::DataType::Float16:
37 return armnnSerializer::DataType::DataType_Float16;
38 case armnn::DataType::Signed32:
39 return armnnSerializer::DataType::DataType_Signed32;
40 case armnn::DataType::QuantisedAsymm8:
41 return armnnSerializer::DataType::DataType_QuantisedAsymm8;
42 case armnn::DataType::Boolean:
43 return armnnSerializer::DataType::DataType_Boolean;
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000044 default:
Derek Lamberti0028d1b2019-02-20 13:57:42 +000045 return armnnSerializer::DataType::DataType_Float16;
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000046 }
47}
48
Derek Lamberti0028d1b2019-02-20 13:57:42 +000049armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000050{
51 switch (dataLayout)
52 {
Derek Lamberti0028d1b2019-02-20 13:57:42 +000053 case armnn::DataLayout::NHWC:
54 return armnnSerializer::DataLayout::DataLayout_NHWC;
55 case armnn::DataLayout::NCHW:
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000056 default:
Derek Lamberti0028d1b2019-02-20 13:57:42 +000057 return armnnSerializer::DataLayout::DataLayout_NCHW;
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000058 }
59}
60
Derek Lamberti0028d1b2019-02-20 13:57:42 +000061armnnSerializer::PoolingAlgorithm GetFlatBufferPoolingAlgorithm(armnn::PoolingAlgorithm poolingAlgorithm)
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000062{
63 switch (poolingAlgorithm)
64 {
Derek Lamberti0028d1b2019-02-20 13:57:42 +000065 case armnn::PoolingAlgorithm::Average:
66 return armnnSerializer::PoolingAlgorithm::PoolingAlgorithm_Average;
67 case armnn::PoolingAlgorithm::L2:
68 return armnnSerializer::PoolingAlgorithm::PoolingAlgorithm_L2;
69 case armnn::PoolingAlgorithm::Max:
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000070 default:
Derek Lamberti0028d1b2019-02-20 13:57:42 +000071 return armnnSerializer::PoolingAlgorithm::PoolingAlgorithm_Max;
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000072 }
73}
74
Derek Lamberti0028d1b2019-02-20 13:57:42 +000075armnnSerializer::OutputShapeRounding GetFlatBufferOutputShapeRounding(armnn::OutputShapeRounding outputShapeRounding)
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000076{
77 switch (outputShapeRounding)
78 {
Derek Lamberti0028d1b2019-02-20 13:57:42 +000079 case armnn::OutputShapeRounding::Ceiling:
80 return armnnSerializer::OutputShapeRounding::OutputShapeRounding_Ceiling;
81 case armnn::OutputShapeRounding::Floor:
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000082 default:
Derek Lamberti0028d1b2019-02-20 13:57:42 +000083 return armnnSerializer::OutputShapeRounding::OutputShapeRounding_Floor;
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000084 }
85}
86
Derek Lamberti0028d1b2019-02-20 13:57:42 +000087armnnSerializer::PaddingMethod GetFlatBufferPaddingMethod(armnn::PaddingMethod paddingMethod)
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000088{
89 switch (paddingMethod)
90 {
Derek Lamberti0028d1b2019-02-20 13:57:42 +000091 case armnn::PaddingMethod::IgnoreValue:
92 return armnnSerializer::PaddingMethod::PaddingMethod_IgnoreValue;
93 case armnn::PaddingMethod::Exclude:
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000094 default:
Derek Lamberti0028d1b2019-02-20 13:57:42 +000095 return armnnSerializer::PaddingMethod::PaddingMethod_Exclude;
Saoirse Stewart3166c3e2019-02-18 15:24:53 +000096 }
97}
98
Nina Drozd57728782019-02-27 10:53:27 +000099armnnSerializer::NormalizationAlgorithmChannel GetFlatBufferNormalizationAlgorithmChannel(
100 armnn::NormalizationAlgorithmChannel normalizationAlgorithmChannel)
101{
102 switch (normalizationAlgorithmChannel)
103 {
104 case armnn::NormalizationAlgorithmChannel::Across:
105 return armnnSerializer::NormalizationAlgorithmChannel::NormalizationAlgorithmChannel_Across;
106 case armnn::NormalizationAlgorithmChannel::Within:
107 return armnnSerializer::NormalizationAlgorithmChannel::NormalizationAlgorithmChannel_Within;
108 default:
109 return armnnSerializer::NormalizationAlgorithmChannel::NormalizationAlgorithmChannel_Across;
110 }
111}
112
113armnnSerializer::NormalizationAlgorithmMethod GetFlatBufferNormalizationAlgorithmMethod(
114 armnn::NormalizationAlgorithmMethod normalizationAlgorithmMethod)
115{
116 switch (normalizationAlgorithmMethod)
117 {
118 case armnn::NormalizationAlgorithmMethod::LocalBrightness:
119 return armnnSerializer::NormalizationAlgorithmMethod::NormalizationAlgorithmMethod_LocalBrightness;
120 case armnn::NormalizationAlgorithmMethod::LocalContrast:
121 return armnnSerializer::NormalizationAlgorithmMethod::NormalizationAlgorithmMethod_LocalContrast;
122 default:
123 return armnnSerializer::NormalizationAlgorithmMethod::NormalizationAlgorithmMethod_LocalBrightness;
124 }
125}
126
Saoirse Stewart3166c3e2019-02-18 15:24:53 +0000127} // namespace armnnSerializer