ArmNN
 21.02
ArmnnSchema_generated.h
Go to the documentation of this file.
1 //
2 // Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 // automatically generated by the FlatBuffers compiler, do not modify
6 
7 
8 #ifndef FLATBUFFERS_GENERATED_ARMNNSCHEMA_ARMNNSERIALIZER_H_
9 #define FLATBUFFERS_GENERATED_ARMNNSCHEMA_ARMNNSERIALIZER_H_
10 
11 #include "flatbuffers/flatbuffers.h"
12 
13 namespace armnnSerializer {
14 
15 struct TensorInfo;
16 struct TensorInfoBuilder;
17 
18 struct Connection;
19 
20 struct ByteData;
21 struct ByteDataBuilder;
22 
23 struct ShortData;
24 struct ShortDataBuilder;
25 
26 struct IntData;
27 struct IntDataBuilder;
28 
29 struct LongData;
30 struct LongDataBuilder;
31 
32 struct ConstTensor;
33 struct ConstTensorBuilder;
34 
35 struct InputSlot;
36 struct InputSlotBuilder;
37 
38 struct OutputSlot;
39 struct OutputSlotBuilder;
40 
41 struct LayerBase;
42 struct LayerBaseBuilder;
43 
44 struct BindableLayerBase;
45 struct BindableLayerBaseBuilder;
46 
47 struct AbsLayer;
48 struct AbsLayerBuilder;
49 
50 struct ActivationLayer;
51 struct ActivationLayerBuilder;
52 
53 struct ActivationDescriptor;
54 struct ActivationDescriptorBuilder;
55 
56 struct AdditionLayer;
57 struct AdditionLayerBuilder;
58 
59 struct ArgMinMaxLayer;
60 struct ArgMinMaxLayerBuilder;
61 
62 struct ArgMinMaxDescriptor;
63 struct ArgMinMaxDescriptorBuilder;
64 
65 struct ComparisonDescriptor;
66 struct ComparisonDescriptorBuilder;
67 
68 struct ComparisonLayer;
69 struct ComparisonLayerBuilder;
70 
71 struct ConstantLayer;
72 struct ConstantLayerBuilder;
73 
74 struct Convolution2dLayer;
75 struct Convolution2dLayerBuilder;
76 
77 struct Convolution2dDescriptor;
78 struct Convolution2dDescriptorBuilder;
79 
80 struct DepthToSpaceLayer;
81 struct DepthToSpaceLayerBuilder;
82 
84 struct DepthToSpaceDescriptorBuilder;
85 
86 struct DivisionLayer;
87 struct DivisionLayerBuilder;
88 
89 struct ElementwiseUnaryDescriptor;
90 struct ElementwiseUnaryDescriptorBuilder;
91 
92 struct ElementwiseUnaryLayer;
93 struct ElementwiseUnaryLayerBuilder;
94 
95 struct EqualLayer;
96 struct EqualLayerBuilder;
97 
98 struct FillLayer;
99 struct FillLayerBuilder;
100 
101 struct FillDescriptor;
102 struct FillDescriptorBuilder;
103 
104 struct FloorLayer;
105 struct FloorLayerBuilder;
106 
107 struct FullyConnectedLayer;
108 struct FullyConnectedLayerBuilder;
109 
110 struct FullyConnectedDescriptor;
111 struct FullyConnectedDescriptorBuilder;
112 
113 struct GatherLayer;
114 struct GatherLayerBuilder;
115 
116 struct GatherDescriptor;
117 struct GatherDescriptorBuilder;
118 
119 struct GreaterLayer;
120 struct GreaterLayerBuilder;
121 
122 struct InputLayer;
123 struct InputLayerBuilder;
124 
125 struct InstanceNormalizationLayer;
126 struct InstanceNormalizationLayerBuilder;
127 
128 struct InstanceNormalizationDescriptor;
129 struct InstanceNormalizationDescriptorBuilder;
130 
131 struct LogSoftmaxLayer;
132 struct LogSoftmaxLayerBuilder;
133 
134 struct LogSoftmaxDescriptor;
135 struct LogSoftmaxDescriptorBuilder;
136 
137 struct L2NormalizationLayer;
138 struct L2NormalizationLayerBuilder;
139 
140 struct L2NormalizationDescriptor;
141 struct L2NormalizationDescriptorBuilder;
142 
143 struct LogicalBinaryDescriptor;
144 struct LogicalBinaryDescriptorBuilder;
145 
146 struct LogicalBinaryLayer;
147 struct LogicalBinaryLayerBuilder;
148 
149 struct MinimumLayer;
150 struct MinimumLayerBuilder;
151 
152 struct MaximumLayer;
153 struct MaximumLayerBuilder;
154 
155 struct MultiplicationLayer;
156 struct MultiplicationLayerBuilder;
157 
158 struct Pooling2dLayer;
159 struct Pooling2dLayerBuilder;
160 
161 struct Pooling2dDescriptor;
162 struct Pooling2dDescriptorBuilder;
163 
164 struct QuantizeLayer;
165 struct QuantizeLayerBuilder;
166 
167 struct SoftmaxLayer;
168 struct SoftmaxLayerBuilder;
169 
170 struct SoftmaxDescriptor;
171 struct SoftmaxDescriptorBuilder;
172 
173 struct DepthwiseConvolution2dLayer;
174 struct DepthwiseConvolution2dLayerBuilder;
175 
176 struct DepthwiseConvolution2dDescriptor;
177 struct DepthwiseConvolution2dDescriptorBuilder;
178 
179 struct OutputLayer;
180 struct OutputLayerBuilder;
181 
182 struct ReshapeLayer;
183 struct ReshapeLayerBuilder;
184 
185 struct ReshapeDescriptor;
186 struct ReshapeDescriptorBuilder;
187 
188 struct PermuteLayer;
189 struct PermuteLayerBuilder;
190 
191 struct PermuteDescriptor;
192 struct PermuteDescriptorBuilder;
193 
194 struct SpaceToBatchNdLayer;
195 struct SpaceToBatchNdLayerBuilder;
196 
197 struct SpaceToBatchNdDescriptor;
198 struct SpaceToBatchNdDescriptorBuilder;
199 
200 struct SpaceToDepthLayer;
201 struct SpaceToDepthLayerBuilder;
202 
203 struct SpaceToDepthDescriptor;
204 struct SpaceToDepthDescriptorBuilder;
205 
206 struct SubtractionLayer;
207 struct SubtractionLayerBuilder;
208 
209 struct BatchToSpaceNdLayer;
210 struct BatchToSpaceNdLayerBuilder;
211 
212 struct BatchToSpaceNdDescriptor;
213 struct BatchToSpaceNdDescriptorBuilder;
214 
215 struct NormalizationLayer;
216 struct NormalizationLayerBuilder;
217 
218 struct NormalizationDescriptor;
219 struct NormalizationDescriptorBuilder;
220 
221 struct MeanLayer;
222 struct MeanLayerBuilder;
223 
224 struct MeanDescriptor;
225 struct MeanDescriptorBuilder;
226 
227 struct PadLayer;
228 struct PadLayerBuilder;
229 
230 struct PadDescriptor;
231 struct PadDescriptorBuilder;
232 
233 struct RsqrtLayer;
234 struct RsqrtLayerBuilder;
235 
236 struct BatchNormalizationLayer;
237 struct BatchNormalizationLayerBuilder;
238 
239 struct BatchNormalizationDescriptor;
240 struct BatchNormalizationDescriptorBuilder;
241 
242 struct ResizeBilinearLayer;
243 struct ResizeBilinearLayerBuilder;
244 
245 struct ResizeBilinearDescriptor;
246 struct ResizeBilinearDescriptorBuilder;
247 
248 struct SliceLayer;
249 struct SliceLayerBuilder;
250 
251 struct SliceDescriptor;
252 struct SliceDescriptorBuilder;
253 
254 struct StridedSliceLayer;
255 struct StridedSliceLayerBuilder;
256 
257 struct StridedSliceDescriptor;
258 struct StridedSliceDescriptorBuilder;
259 
260 struct ConcatLayer;
261 struct ConcatLayerBuilder;
262 
263 struct MergerLayer;
264 struct MergerLayerBuilder;
265 
266 struct UintVector;
267 struct UintVectorBuilder;
268 
269 struct OriginsDescriptor;
270 struct OriginsDescriptorBuilder;
271 
272 struct ViewsDescriptor;
273 struct ViewsDescriptorBuilder;
274 
275 struct SplitterLayer;
276 struct SplitterLayerBuilder;
277 
278 struct DetectionPostProcessLayer;
279 struct DetectionPostProcessLayerBuilder;
280 
281 struct DetectionPostProcessDescriptor;
282 struct DetectionPostProcessDescriptorBuilder;
283 
284 struct LstmInputParams;
285 struct LstmInputParamsBuilder;
286 
287 struct LstmDescriptor;
288 struct LstmDescriptorBuilder;
289 
290 struct LstmLayer;
291 struct LstmLayerBuilder;
292 
293 struct QLstmInputParams;
294 struct QLstmInputParamsBuilder;
295 
296 struct QLstmDescriptor;
297 struct QLstmDescriptorBuilder;
298 
299 struct QLstmLayer;
300 struct QLstmLayerBuilder;
301 
302 struct QuantizedLstmInputParams;
303 struct QuantizedLstmInputParamsBuilder;
304 
305 struct QuantizedLstmLayer;
306 struct QuantizedLstmLayerBuilder;
307 
308 struct DequantizeLayer;
309 struct DequantizeLayerBuilder;
310 
311 struct MergeLayer;
312 struct MergeLayerBuilder;
313 
314 struct SwitchLayer;
315 struct SwitchLayerBuilder;
316 
317 struct PreluLayer;
318 struct PreluLayerBuilder;
319 
320 struct TransposeConvolution2dLayer;
321 struct TransposeConvolution2dLayerBuilder;
322 
323 struct TransposeConvolution2dDescriptor;
324 struct TransposeConvolution2dDescriptorBuilder;
325 
326 struct TransposeLayer;
327 struct TransposeLayerBuilder;
328 
329 struct TransposeDescriptor;
330 struct TransposeDescriptorBuilder;
331 
332 struct ResizeLayer;
333 struct ResizeLayerBuilder;
334 
335 struct ResizeDescriptor;
336 struct ResizeDescriptorBuilder;
337 
338 struct StackLayer;
339 struct StackLayerBuilder;
340 
341 struct StackDescriptor;
342 struct StackDescriptorBuilder;
343 
344 struct StandInDescriptor;
345 struct StandInDescriptorBuilder;
346 
347 struct StandInLayer;
348 struct StandInLayerBuilder;
349 
350 struct RankLayer;
351 struct RankLayerBuilder;
352 
353 struct ReduceLayer;
354 struct ReduceLayerBuilder;
355 
356 struct ReduceDescriptor;
357 struct ReduceDescriptorBuilder;
358 
359 struct AnyLayer;
360 struct AnyLayerBuilder;
361 
362 struct FeatureCompatibilityVersions;
363 struct FeatureCompatibilityVersionsBuilder;
364 
365 struct SerializedGraph;
366 struct SerializedGraphBuilder;
367 
383 };
384 
386  static const ActivationFunction values[] = {
399  };
400  return values;
401 }
402 
403 inline const char * const *EnumNamesActivationFunction() {
404  static const char * const names[13] = {
405  "Sigmoid",
406  "TanH",
407  "Linear",
408  "ReLu",
409  "BoundedReLu",
410  "SoftReLu",
411  "LeakyReLu",
412  "Abs",
413  "Sqrt",
414  "Square",
415  "Elu",
416  "HardSwish",
417  nullptr
418  };
419  return names;
420 }
421 
423  if (flatbuffers::IsOutRange(e, ActivationFunction_Sigmoid, ActivationFunction_HardSwish)) return "";
424  const size_t index = static_cast<size_t>(e);
425  return EnumNamesActivationFunction()[index];
426 }
427 
433 };
434 
436  static const ArgMinMaxFunction values[] = {
439  };
440  return values;
441 }
442 
443 inline const char * const *EnumNamesArgMinMaxFunction() {
444  static const char * const names[3] = {
445  "Min",
446  "Max",
447  nullptr
448  };
449  return names;
450 }
451 
453  if (flatbuffers::IsOutRange(e, ArgMinMaxFunction_Min, ArgMinMaxFunction_Max)) return "";
454  const size_t index = static_cast<size_t>(e);
455  return EnumNamesArgMinMaxFunction()[index];
456 }
457 
458 enum DataType {
471 };
472 
473 inline const DataType (&EnumValuesDataType())[10] {
474  static const DataType values[] = {
485  };
486  return values;
487 }
488 
489 inline const char * const *EnumNamesDataType() {
490  static const char * const names[11] = {
491  "Float16",
492  "Float32",
493  "QuantisedAsymm8",
494  "Signed32",
495  "Boolean",
496  "QuantisedSymm16",
497  "QAsymmU8",
498  "QSymmS16",
499  "QAsymmS8",
500  "QSymmS8",
501  nullptr
502  };
503  return names;
504 }
505 
506 inline const char *EnumNameDataType(DataType e) {
507  if (flatbuffers::IsOutRange(e, DataType_Float16, DataType_QSymmS8)) return "";
508  const size_t index = static_cast<size_t>(e);
509  return EnumNamesDataType()[index];
510 }
511 
517 };
518 
519 inline const DataLayout (&EnumValuesDataLayout())[2] {
520  static const DataLayout values[] = {
523  };
524  return values;
525 }
526 
527 inline const char * const *EnumNamesDataLayout() {
528  static const char * const names[3] = {
529  "NHWC",
530  "NCHW",
531  nullptr
532  };
533  return names;
534 }
535 
536 inline const char *EnumNameDataLayout(DataLayout e) {
537  if (flatbuffers::IsOutRange(e, DataLayout_NHWC, DataLayout_NCHW)) return "";
538  const size_t index = static_cast<size_t>(e);
539  return EnumNamesDataLayout()[index];
540 }
541 
549 };
550 
552  static const ReduceOperation values[] = {
557  };
558  return values;
559 }
560 
561 inline const char * const *EnumNamesReduceOperation() {
562  static const char * const names[5] = {
563  "Sum",
564  "Max",
565  "Mean",
566  "Min",
567  nullptr
568  };
569  return names;
570 }
571 
573  if (flatbuffers::IsOutRange(e, ReduceOperation_Sum, ReduceOperation_Min)) return "";
574  const size_t index = static_cast<size_t>(e);
575  return EnumNamesReduceOperation()[index];
576 }
577 
583 };
584 
585 inline const ResizeMethod (&EnumValuesResizeMethod())[2] {
586  static const ResizeMethod values[] = {
589  };
590  return values;
591 }
592 
593 inline const char * const *EnumNamesResizeMethod() {
594  static const char * const names[3] = {
595  "NearestNeighbor",
596  "Bilinear",
597  nullptr
598  };
599  return names;
600 }
601 
602 inline const char *EnumNameResizeMethod(ResizeMethod e) {
603  if (flatbuffers::IsOutRange(e, ResizeMethod_NearestNeighbor, ResizeMethod_Bilinear)) return "";
604  const size_t index = static_cast<size_t>(e);
605  return EnumNamesResizeMethod()[index];
606 }
607 
616 };
617 
619  static const ConstTensorData values[] = {
625  };
626  return values;
627 }
628 
629 inline const char * const *EnumNamesConstTensorData() {
630  static const char * const names[6] = {
631  "NONE",
632  "ByteData",
633  "ShortData",
634  "IntData",
635  "LongData",
636  nullptr
637  };
638  return names;
639 }
640 
642  if (flatbuffers::IsOutRange(e, ConstTensorData_NONE, ConstTensorData_LongData)) return "";
643  const size_t index = static_cast<size_t>(e);
644  return EnumNamesConstTensorData()[index];
645 }
646 
647 template<typename T> struct ConstTensorDataTraits {
649 };
650 
651 template<> struct ConstTensorDataTraits<armnnSerializer::ByteData> {
653 };
654 
655 template<> struct ConstTensorDataTraits<armnnSerializer::ShortData> {
657 };
658 
659 template<> struct ConstTensorDataTraits<armnnSerializer::IntData> {
661 };
662 
663 template<> struct ConstTensorDataTraits<armnnSerializer::LongData> {
665 };
666 
667 bool VerifyConstTensorData(flatbuffers::Verifier &verifier, const void *obj, ConstTensorData type);
668 bool VerifyConstTensorDataVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
669 
670 enum LayerType {
734 };
735 
736 inline const LayerType (&EnumValuesLayerType())[61] {
737  static const LayerType values[] = {
799  };
800  return values;
801 }
802 
803 inline const char * const *EnumNamesLayerType() {
804  static const char * const names[62] = {
805  "Addition",
806  "Input",
807  "Multiplication",
808  "Output",
809  "Pooling2d",
810  "Reshape",
811  "Softmax",
812  "Convolution2d",
813  "DepthwiseConvolution2d",
814  "Activation",
815  "Permute",
816  "FullyConnected",
817  "Constant",
818  "SpaceToBatchNd",
819  "BatchToSpaceNd",
820  "Division",
821  "Minimum",
822  "Equal",
823  "Maximum",
824  "Normalization",
825  "Pad",
826  "Rsqrt",
827  "Floor",
828  "BatchNormalization",
829  "Greater",
830  "ResizeBilinear",
831  "Subtraction",
832  "StridedSlice",
833  "Gather",
834  "Mean",
835  "Merger",
836  "L2Normalization",
837  "Splitter",
838  "DetectionPostProcess",
839  "Lstm",
840  "Quantize",
841  "Dequantize",
842  "Merge",
843  "Switch",
844  "Concat",
845  "SpaceToDepth",
846  "Prelu",
847  "TransposeConvolution2d",
848  "Resize",
849  "Stack",
850  "QuantizedLstm",
851  "Abs",
852  "ArgMinMax",
853  "Slice",
854  "DepthToSpace",
855  "InstanceNormalization",
856  "LogSoftmax",
857  "Comparison",
858  "StandIn",
859  "ElementwiseUnary",
860  "Transpose",
861  "QLstm",
862  "Fill",
863  "Rank",
864  "LogicalBinary",
865  "Reduce",
866  nullptr
867  };
868  return names;
869 }
870 
871 inline const char *EnumNameLayerType(LayerType e) {
872  if (flatbuffers::IsOutRange(e, LayerType_Addition, LayerType_Reduce)) return "";
873  const size_t index = static_cast<size_t>(e);
874  return EnumNamesLayerType()[index];
875 }
876 
886 };
887 
889  static const ComparisonOperation values[] = {
896  };
897  return values;
898 }
899 
900 inline const char * const *EnumNamesComparisonOperation() {
901  static const char * const names[7] = {
902  "Equal",
903  "Greater",
904  "GreaterOrEqual",
905  "Less",
906  "LessOrEqual",
907  "NotEqual",
908  nullptr
909  };
910  return names;
911 }
912 
914  if (flatbuffers::IsOutRange(e, ComparisonOperation_Equal, ComparisonOperation_NotEqual)) return "";
915  const size_t index = static_cast<size_t>(e);
916  return EnumNamesComparisonOperation()[index];
917 }
918 
928 };
929 
931  static const UnaryOperation values[] = {
938  };
939  return values;
940 }
941 
942 inline const char * const *EnumNamesUnaryOperation() {
943  static const char * const names[7] = {
944  "Abs",
945  "Rsqrt",
946  "Sqrt",
947  "Exp",
948  "Neg",
949  "LogicalNot",
950  nullptr
951  };
952  return names;
953 }
954 
955 inline const char *EnumNameUnaryOperation(UnaryOperation e) {
956  if (flatbuffers::IsOutRange(e, UnaryOperation_Abs, UnaryOperation_LogicalNot)) return "";
957  const size_t index = static_cast<size_t>(e);
958  return EnumNamesUnaryOperation()[index];
959 }
960 
966 };
967 
969  static const LogicalBinaryOperation values[] = {
972  };
973  return values;
974 }
975 
976 inline const char * const *EnumNamesLogicalBinaryOperation() {
977  static const char * const names[3] = {
978  "LogicalAnd",
979  "LogicalOr",
980  nullptr
981  };
982  return names;
983 }
984 
986  if (flatbuffers::IsOutRange(e, LogicalBinaryOperation_LogicalAnd, LogicalBinaryOperation_LogicalOr)) return "";
987  const size_t index = static_cast<size_t>(e);
988  return EnumNamesLogicalBinaryOperation()[index];
989 }
990 
997 };
998 
1000  static const PoolingAlgorithm values[] = {
1004  };
1005  return values;
1006 }
1007 
1008 inline const char * const *EnumNamesPoolingAlgorithm() {
1009  static const char * const names[4] = {
1010  "Max",
1011  "Average",
1012  "L2",
1013  nullptr
1014  };
1015  return names;
1016 }
1017 
1019  if (flatbuffers::IsOutRange(e, PoolingAlgorithm_Max, PoolingAlgorithm_L2)) return "";
1020  const size_t index = static_cast<size_t>(e);
1021  return EnumNamesPoolingAlgorithm()[index];
1022 }
1023 
1029 };
1030 
1032  static const OutputShapeRounding values[] = {
1035  };
1036  return values;
1037 }
1038 
1039 inline const char * const *EnumNamesOutputShapeRounding() {
1040  static const char * const names[3] = {
1041  "Floor",
1042  "Ceiling",
1043  nullptr
1044  };
1045  return names;
1046 }
1047 
1049  if (flatbuffers::IsOutRange(e, OutputShapeRounding_Floor, OutputShapeRounding_Ceiling)) return "";
1050  const size_t index = static_cast<size_t>(e);
1051  return EnumNamesOutputShapeRounding()[index];
1052 }
1053 
1059 };
1060 
1062  static const PaddingMethod values[] = {
1065  };
1066  return values;
1067 }
1068 
1069 inline const char * const *EnumNamesPaddingMethod() {
1070  static const char * const names[3] = {
1071  "IgnoreValue",
1072  "Exclude",
1073  nullptr
1074  };
1075  return names;
1076 }
1077 
1078 inline const char *EnumNamePaddingMethod(PaddingMethod e) {
1079  if (flatbuffers::IsOutRange(e, PaddingMethod_IgnoreValue, PaddingMethod_Exclude)) return "";
1080  const size_t index = static_cast<size_t>(e);
1081  return EnumNamesPaddingMethod()[index];
1082 }
1083 
1089 };
1090 
1092  static const NormalizationAlgorithmChannel values[] = {
1095  };
1096  return values;
1097 }
1098 
1099 inline const char * const *EnumNamesNormalizationAlgorithmChannel() {
1100  static const char * const names[3] = {
1101  "Across",
1102  "Within",
1103  nullptr
1104  };
1105  return names;
1106 }
1107 
1109  if (flatbuffers::IsOutRange(e, NormalizationAlgorithmChannel_Across, NormalizationAlgorithmChannel_Within)) return "";
1110  const size_t index = static_cast<size_t>(e);
1112 }
1113 
1119 };
1120 
1122  static const NormalizationAlgorithmMethod values[] = {
1125  };
1126  return values;
1127 }
1128 
1129 inline const char * const *EnumNamesNormalizationAlgorithmMethod() {
1130  static const char * const names[3] = {
1131  "LocalBrightness",
1132  "LocalContrast",
1133  nullptr
1134  };
1135  return names;
1136 }
1137 
1140  const size_t index = static_cast<size_t>(e);
1141  return EnumNamesNormalizationAlgorithmMethod()[index];
1142 }
1143 
1144 enum Layer {
1209 };
1210 
1211 inline const Layer (&EnumValuesLayer())[62] {
1212  static const Layer values[] = {
1213  Layer_NONE,
1275  };
1276  return values;
1277 }
1278 
1279 inline const char * const *EnumNamesLayer() {
1280  static const char * const names[63] = {
1281  "NONE",
1282  "ActivationLayer",
1283  "AdditionLayer",
1284  "BatchToSpaceNdLayer",
1285  "BatchNormalizationLayer",
1286  "ConstantLayer",
1287  "Convolution2dLayer",
1288  "DepthwiseConvolution2dLayer",
1289  "FullyConnectedLayer",
1290  "InputLayer",
1291  "MultiplicationLayer",
1292  "OutputLayer",
1293  "PermuteLayer",
1294  "Pooling2dLayer",
1295  "ReshapeLayer",
1296  "SoftmaxLayer",
1297  "SpaceToBatchNdLayer",
1298  "DivisionLayer",
1299  "MinimumLayer",
1300  "EqualLayer",
1301  "MaximumLayer",
1302  "NormalizationLayer",
1303  "PadLayer",
1304  "RsqrtLayer",
1305  "FloorLayer",
1306  "GreaterLayer",
1307  "ResizeBilinearLayer",
1308  "SubtractionLayer",
1309  "StridedSliceLayer",
1310  "GatherLayer",
1311  "MeanLayer",
1312  "MergerLayer",
1313  "L2NormalizationLayer",
1314  "SplitterLayer",
1315  "DetectionPostProcessLayer",
1316  "LstmLayer",
1317  "QuantizedLstmLayer",
1318  "QuantizeLayer",
1319  "DequantizeLayer",
1320  "MergeLayer",
1321  "SwitchLayer",
1322  "ConcatLayer",
1323  "SpaceToDepthLayer",
1324  "PreluLayer",
1325  "TransposeConvolution2dLayer",
1326  "ResizeLayer",
1327  "StackLayer",
1328  "AbsLayer",
1329  "ArgMinMaxLayer",
1330  "SliceLayer",
1331  "DepthToSpaceLayer",
1332  "InstanceNormalizationLayer",
1333  "LogSoftmaxLayer",
1334  "ComparisonLayer",
1335  "StandInLayer",
1336  "ElementwiseUnaryLayer",
1337  "TransposeLayer",
1338  "QLstmLayer",
1339  "FillLayer",
1340  "RankLayer",
1341  "LogicalBinaryLayer",
1342  "ReduceLayer",
1343  nullptr
1344  };
1345  return names;
1346 }
1347 
1348 inline const char *EnumNameLayer(Layer e) {
1349  if (flatbuffers::IsOutRange(e, Layer_NONE, Layer_ReduceLayer)) return "";
1350  const size_t index = static_cast<size_t>(e);
1351  return EnumNamesLayer()[index];
1352 }
1353 
1354 template<typename T> struct LayerTraits {
1355  static const Layer enum_value = Layer_NONE;
1356 };
1357 
1358 template<> struct LayerTraits<armnnSerializer::ActivationLayer> {
1360 };
1361 
1362 template<> struct LayerTraits<armnnSerializer::AdditionLayer> {
1364 };
1365 
1366 template<> struct LayerTraits<armnnSerializer::BatchToSpaceNdLayer> {
1368 };
1369 
1370 template<> struct LayerTraits<armnnSerializer::BatchNormalizationLayer> {
1372 };
1373 
1374 template<> struct LayerTraits<armnnSerializer::ConstantLayer> {
1376 };
1377 
1378 template<> struct LayerTraits<armnnSerializer::Convolution2dLayer> {
1380 };
1381 
1382 template<> struct LayerTraits<armnnSerializer::DepthwiseConvolution2dLayer> {
1384 };
1385 
1386 template<> struct LayerTraits<armnnSerializer::FullyConnectedLayer> {
1388 };
1389 
1390 template<> struct LayerTraits<armnnSerializer::InputLayer> {
1392 };
1393 
1394 template<> struct LayerTraits<armnnSerializer::MultiplicationLayer> {
1396 };
1397 
1398 template<> struct LayerTraits<armnnSerializer::OutputLayer> {
1400 };
1401 
1402 template<> struct LayerTraits<armnnSerializer::PermuteLayer> {
1404 };
1405 
1406 template<> struct LayerTraits<armnnSerializer::Pooling2dLayer> {
1408 };
1409 
1410 template<> struct LayerTraits<armnnSerializer::ReshapeLayer> {
1412 };
1413 
1414 template<> struct LayerTraits<armnnSerializer::SoftmaxLayer> {
1416 };
1417 
1418 template<> struct LayerTraits<armnnSerializer::SpaceToBatchNdLayer> {
1420 };
1421 
1422 template<> struct LayerTraits<armnnSerializer::DivisionLayer> {
1424 };
1425 
1426 template<> struct LayerTraits<armnnSerializer::MinimumLayer> {
1428 };
1429 
1430 template<> struct LayerTraits<armnnSerializer::EqualLayer> {
1432 };
1433 
1434 template<> struct LayerTraits<armnnSerializer::MaximumLayer> {
1436 };
1437 
1438 template<> struct LayerTraits<armnnSerializer::NormalizationLayer> {
1440 };
1441 
1442 template<> struct LayerTraits<armnnSerializer::PadLayer> {
1444 };
1445 
1446 template<> struct LayerTraits<armnnSerializer::RsqrtLayer> {
1448 };
1449 
1450 template<> struct LayerTraits<armnnSerializer::FloorLayer> {
1452 };
1453 
1454 template<> struct LayerTraits<armnnSerializer::GreaterLayer> {
1456 };
1457 
1458 template<> struct LayerTraits<armnnSerializer::ResizeBilinearLayer> {
1460 };
1461 
1462 template<> struct LayerTraits<armnnSerializer::SubtractionLayer> {
1464 };
1465 
1466 template<> struct LayerTraits<armnnSerializer::StridedSliceLayer> {
1468 };
1469 
1470 template<> struct LayerTraits<armnnSerializer::GatherLayer> {
1472 };
1473 
1474 template<> struct LayerTraits<armnnSerializer::MeanLayer> {
1476 };
1477 
1480 };
1481 
1482 template<> struct LayerTraits<armnnSerializer::L2NormalizationLayer> {
1484 };
1485 
1486 template<> struct LayerTraits<armnnSerializer::SplitterLayer> {
1488 };
1489 
1490 template<> struct LayerTraits<armnnSerializer::DetectionPostProcessLayer> {
1492 };
1493 
1494 template<> struct LayerTraits<armnnSerializer::LstmLayer> {
1496 };
1497 
1498 template<> struct LayerTraits<armnnSerializer::QuantizedLstmLayer> {
1500 };
1501 
1502 template<> struct LayerTraits<armnnSerializer::QuantizeLayer> {
1504 };
1505 
1506 template<> struct LayerTraits<armnnSerializer::DequantizeLayer> {
1508 };
1509 
1510 template<> struct LayerTraits<armnnSerializer::MergeLayer> {
1512 };
1513 
1514 template<> struct LayerTraits<armnnSerializer::SwitchLayer> {
1516 };
1517 
1518 template<> struct LayerTraits<armnnSerializer::ConcatLayer> {
1520 };
1521 
1522 template<> struct LayerTraits<armnnSerializer::SpaceToDepthLayer> {
1524 };
1525 
1526 template<> struct LayerTraits<armnnSerializer::PreluLayer> {
1528 };
1529 
1530 template<> struct LayerTraits<armnnSerializer::TransposeConvolution2dLayer> {
1532 };
1533 
1534 template<> struct LayerTraits<armnnSerializer::ResizeLayer> {
1536 };
1537 
1538 template<> struct LayerTraits<armnnSerializer::StackLayer> {
1540 };
1541 
1542 template<> struct LayerTraits<armnnSerializer::AbsLayer> {
1544 };
1545 
1546 template<> struct LayerTraits<armnnSerializer::ArgMinMaxLayer> {
1548 };
1549 
1550 template<> struct LayerTraits<armnnSerializer::SliceLayer> {
1552 };
1553 
1554 template<> struct LayerTraits<armnnSerializer::DepthToSpaceLayer> {
1556 };
1557 
1558 template<> struct LayerTraits<armnnSerializer::InstanceNormalizationLayer> {
1560 };
1561 
1562 template<> struct LayerTraits<armnnSerializer::LogSoftmaxLayer> {
1564 };
1565 
1566 template<> struct LayerTraits<armnnSerializer::ComparisonLayer> {
1568 };
1569 
1570 template<> struct LayerTraits<armnnSerializer::StandInLayer> {
1572 };
1573 
1574 template<> struct LayerTraits<armnnSerializer::ElementwiseUnaryLayer> {
1576 };
1577 
1578 template<> struct LayerTraits<armnnSerializer::TransposeLayer> {
1580 };
1581 
1582 template<> struct LayerTraits<armnnSerializer::QLstmLayer> {
1584 };
1585 
1586 template<> struct LayerTraits<armnnSerializer::FillLayer> {
1588 };
1589 
1590 template<> struct LayerTraits<armnnSerializer::RankLayer> {
1592 };
1593 
1594 template<> struct LayerTraits<armnnSerializer::LogicalBinaryLayer> {
1596 };
1597 
1598 template<> struct LayerTraits<armnnSerializer::ReduceLayer> {
1600 };
1601 
1602 bool VerifyLayer(flatbuffers::Verifier &verifier, const void *obj, Layer type);
1603 bool VerifyLayerVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
1604 
1606  private:
1607  uint32_t sourceLayerIndex_;
1608  uint32_t outputSlotIndex_;
1609 
1610  public:
1611  Connection() {
1612  memset(static_cast<void *>(this), 0, sizeof(Connection));
1613  }
1614  Connection(uint32_t _sourceLayerIndex, uint32_t _outputSlotIndex)
1615  : sourceLayerIndex_(flatbuffers::EndianScalar(_sourceLayerIndex)),
1616  outputSlotIndex_(flatbuffers::EndianScalar(_outputSlotIndex)) {
1617  }
1618  uint32_t sourceLayerIndex() const {
1619  return flatbuffers::EndianScalar(sourceLayerIndex_);
1620  }
1621  uint32_t outputSlotIndex() const {
1622  return flatbuffers::EndianScalar(outputSlotIndex_);
1623  }
1624 };
1625 FLATBUFFERS_STRUCT_END(Connection, 8);
1626 
1627 struct TensorInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1629  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1637  VT_DIMENSIONSPECIFICITY = 18
1638  };
1639  const flatbuffers::Vector<uint32_t> *dimensions() const {
1640  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_DIMENSIONS);
1641  }
1643  return static_cast<armnnSerializer::DataType>(GetField<int8_t>(VT_DATATYPE, 0));
1644  }
1645  float quantizationScale() const {
1646  return GetField<float>(VT_QUANTIZATIONSCALE, 1.0f);
1647  }
1648  int32_t quantizationOffset() const {
1649  return GetField<int32_t>(VT_QUANTIZATIONOFFSET, 0);
1650  }
1651  const flatbuffers::Vector<float> *quantizationScales() const {
1652  return GetPointer<const flatbuffers::Vector<float> *>(VT_QUANTIZATIONSCALES);
1653  }
1654  uint32_t quantizationDim() const {
1655  return GetField<uint32_t>(VT_QUANTIZATIONDIM, 0);
1656  }
1657  uint32_t dimensionality() const {
1658  return GetField<uint32_t>(VT_DIMENSIONALITY, 1);
1659  }
1660  const flatbuffers::Vector<uint8_t> *dimensionSpecificity() const {
1661  return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DIMENSIONSPECIFICITY);
1662  }
1663  bool Verify(flatbuffers::Verifier &verifier) const {
1664  return VerifyTableStart(verifier) &&
1665  VerifyOffset(verifier, VT_DIMENSIONS) &&
1666  verifier.VerifyVector(dimensions()) &&
1667  VerifyField<int8_t>(verifier, VT_DATATYPE) &&
1668  VerifyField<float>(verifier, VT_QUANTIZATIONSCALE) &&
1669  VerifyField<int32_t>(verifier, VT_QUANTIZATIONOFFSET) &&
1670  VerifyOffset(verifier, VT_QUANTIZATIONSCALES) &&
1671  verifier.VerifyVector(quantizationScales()) &&
1672  VerifyField<uint32_t>(verifier, VT_QUANTIZATIONDIM) &&
1673  VerifyField<uint32_t>(verifier, VT_DIMENSIONALITY) &&
1674  VerifyOffset(verifier, VT_DIMENSIONSPECIFICITY) &&
1675  verifier.VerifyVector(dimensionSpecificity()) &&
1676  verifier.EndTable();
1677  }
1678 };
1679 
1681  typedef TensorInfo Table;
1682  flatbuffers::FlatBufferBuilder &fbb_;
1683  flatbuffers::uoffset_t start_;
1684  void add_dimensions(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> dimensions) {
1685  fbb_.AddOffset(TensorInfo::VT_DIMENSIONS, dimensions);
1686  }
1688  fbb_.AddElement<int8_t>(TensorInfo::VT_DATATYPE, static_cast<int8_t>(dataType), 0);
1689  }
1690  void add_quantizationScale(float quantizationScale) {
1691  fbb_.AddElement<float>(TensorInfo::VT_QUANTIZATIONSCALE, quantizationScale, 1.0f);
1692  }
1693  void add_quantizationOffset(int32_t quantizationOffset) {
1694  fbb_.AddElement<int32_t>(TensorInfo::VT_QUANTIZATIONOFFSET, quantizationOffset, 0);
1695  }
1696  void add_quantizationScales(flatbuffers::Offset<flatbuffers::Vector<float>> quantizationScales) {
1697  fbb_.AddOffset(TensorInfo::VT_QUANTIZATIONSCALES, quantizationScales);
1698  }
1699  void add_quantizationDim(uint32_t quantizationDim) {
1700  fbb_.AddElement<uint32_t>(TensorInfo::VT_QUANTIZATIONDIM, quantizationDim, 0);
1701  }
1702  void add_dimensionality(uint32_t dimensionality) {
1703  fbb_.AddElement<uint32_t>(TensorInfo::VT_DIMENSIONALITY, dimensionality, 1);
1704  }
1705  void add_dimensionSpecificity(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> dimensionSpecificity) {
1706  fbb_.AddOffset(TensorInfo::VT_DIMENSIONSPECIFICITY, dimensionSpecificity);
1707  }
1708  explicit TensorInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1709  : fbb_(_fbb) {
1710  start_ = fbb_.StartTable();
1711  }
1712  TensorInfoBuilder &operator=(const TensorInfoBuilder &);
1713  flatbuffers::Offset<TensorInfo> Finish() {
1714  const auto end = fbb_.EndTable(start_);
1715  auto o = flatbuffers::Offset<TensorInfo>(end);
1716  return o;
1717  }
1718 };
1719 
1720 inline flatbuffers::Offset<TensorInfo> CreateTensorInfo(
1721  flatbuffers::FlatBufferBuilder &_fbb,
1722  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> dimensions = 0,
1724  float quantizationScale = 1.0f,
1725  int32_t quantizationOffset = 0,
1726  flatbuffers::Offset<flatbuffers::Vector<float>> quantizationScales = 0,
1727  uint32_t quantizationDim = 0,
1728  uint32_t dimensionality = 1,
1729  flatbuffers::Offset<flatbuffers::Vector<uint8_t>> dimensionSpecificity = 0) {
1730  TensorInfoBuilder builder_(_fbb);
1731  builder_.add_dimensionSpecificity(dimensionSpecificity);
1732  builder_.add_dimensionality(dimensionality);
1733  builder_.add_quantizationDim(quantizationDim);
1734  builder_.add_quantizationScales(quantizationScales);
1735  builder_.add_quantizationOffset(quantizationOffset);
1736  builder_.add_quantizationScale(quantizationScale);
1737  builder_.add_dimensions(dimensions);
1738  builder_.add_dataType(dataType);
1739  return builder_.Finish();
1740 }
1741 
1742 inline flatbuffers::Offset<TensorInfo> CreateTensorInfoDirect(
1743  flatbuffers::FlatBufferBuilder &_fbb,
1744  const std::vector<uint32_t> *dimensions = nullptr,
1746  float quantizationScale = 1.0f,
1747  int32_t quantizationOffset = 0,
1748  const std::vector<float> *quantizationScales = nullptr,
1749  uint32_t quantizationDim = 0,
1750  uint32_t dimensionality = 1,
1751  const std::vector<uint8_t> *dimensionSpecificity = nullptr) {
1752  auto dimensions__ = dimensions ? _fbb.CreateVector<uint32_t>(*dimensions) : 0;
1753  auto quantizationScales__ = quantizationScales ? _fbb.CreateVector<float>(*quantizationScales) : 0;
1754  auto dimensionSpecificity__ = dimensionSpecificity ? _fbb.CreateVector<uint8_t>(*dimensionSpecificity) : 0;
1756  _fbb,
1757  dimensions__,
1758  dataType,
1759  quantizationScale,
1760  quantizationOffset,
1761  quantizationScales__,
1762  quantizationDim,
1763  dimensionality,
1764  dimensionSpecificity__);
1765 }
1766 
1767 struct ByteData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1769  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1770  VT_DATA = 4
1771  };
1772  const flatbuffers::Vector<int8_t> *data() const {
1773  return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_DATA);
1774  }
1775  bool Verify(flatbuffers::Verifier &verifier) const {
1776  return VerifyTableStart(verifier) &&
1777  VerifyOffset(verifier, VT_DATA) &&
1778  verifier.VerifyVector(data()) &&
1779  verifier.EndTable();
1780  }
1781 };
1782 
1784  typedef ByteData Table;
1785  flatbuffers::FlatBufferBuilder &fbb_;
1786  flatbuffers::uoffset_t start_;
1787  void add_data(flatbuffers::Offset<flatbuffers::Vector<int8_t>> data) {
1788  fbb_.AddOffset(ByteData::VT_DATA, data);
1789  }
1790  explicit ByteDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1791  : fbb_(_fbb) {
1792  start_ = fbb_.StartTable();
1793  }
1794  ByteDataBuilder &operator=(const ByteDataBuilder &);
1795  flatbuffers::Offset<ByteData> Finish() {
1796  const auto end = fbb_.EndTable(start_);
1797  auto o = flatbuffers::Offset<ByteData>(end);
1798  return o;
1799  }
1800 };
1801 
1802 inline flatbuffers::Offset<ByteData> CreateByteData(
1803  flatbuffers::FlatBufferBuilder &_fbb,
1804  flatbuffers::Offset<flatbuffers::Vector<int8_t>> data = 0) {
1805  ByteDataBuilder builder_(_fbb);
1806  builder_.add_data(data);
1807  return builder_.Finish();
1808 }
1809 
1810 inline flatbuffers::Offset<ByteData> CreateByteDataDirect(
1811  flatbuffers::FlatBufferBuilder &_fbb,
1812  const std::vector<int8_t> *data = nullptr) {
1813  auto data__ = data ? _fbb.CreateVector<int8_t>(*data) : 0;
1815  _fbb,
1816  data__);
1817 }
1818 
1819 struct ShortData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1821  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1822  VT_DATA = 4
1823  };
1824  const flatbuffers::Vector<int16_t> *data() const {
1825  return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_DATA);
1826  }
1827  bool Verify(flatbuffers::Verifier &verifier) const {
1828  return VerifyTableStart(verifier) &&
1829  VerifyOffset(verifier, VT_DATA) &&
1830  verifier.VerifyVector(data()) &&
1831  verifier.EndTable();
1832  }
1833 };
1834 
1836  typedef ShortData Table;
1837  flatbuffers::FlatBufferBuilder &fbb_;
1838  flatbuffers::uoffset_t start_;
1839  void add_data(flatbuffers::Offset<flatbuffers::Vector<int16_t>> data) {
1840  fbb_.AddOffset(ShortData::VT_DATA, data);
1841  }
1842  explicit ShortDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1843  : fbb_(_fbb) {
1844  start_ = fbb_.StartTable();
1845  }
1846  ShortDataBuilder &operator=(const ShortDataBuilder &);
1847  flatbuffers::Offset<ShortData> Finish() {
1848  const auto end = fbb_.EndTable(start_);
1849  auto o = flatbuffers::Offset<ShortData>(end);
1850  return o;
1851  }
1852 };
1853 
1854 inline flatbuffers::Offset<ShortData> CreateShortData(
1855  flatbuffers::FlatBufferBuilder &_fbb,
1856  flatbuffers::Offset<flatbuffers::Vector<int16_t>> data = 0) {
1857  ShortDataBuilder builder_(_fbb);
1858  builder_.add_data(data);
1859  return builder_.Finish();
1860 }
1861 
1862 inline flatbuffers::Offset<ShortData> CreateShortDataDirect(
1863  flatbuffers::FlatBufferBuilder &_fbb,
1864  const std::vector<int16_t> *data = nullptr) {
1865  auto data__ = data ? _fbb.CreateVector<int16_t>(*data) : 0;
1867  _fbb,
1868  data__);
1869 }
1870 
1871 struct IntData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1873  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1874  VT_DATA = 4
1875  };
1876  const flatbuffers::Vector<int32_t> *data() const {
1877  return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DATA);
1878  }
1879  bool Verify(flatbuffers::Verifier &verifier) const {
1880  return VerifyTableStart(verifier) &&
1881  VerifyOffset(verifier, VT_DATA) &&
1882  verifier.VerifyVector(data()) &&
1883  verifier.EndTable();
1884  }
1885 };
1886 
1888  typedef IntData Table;
1889  flatbuffers::FlatBufferBuilder &fbb_;
1890  flatbuffers::uoffset_t start_;
1891  void add_data(flatbuffers::Offset<flatbuffers::Vector<int32_t>> data) {
1892  fbb_.AddOffset(IntData::VT_DATA, data);
1893  }
1894  explicit IntDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1895  : fbb_(_fbb) {
1896  start_ = fbb_.StartTable();
1897  }
1898  IntDataBuilder &operator=(const IntDataBuilder &);
1899  flatbuffers::Offset<IntData> Finish() {
1900  const auto end = fbb_.EndTable(start_);
1901  auto o = flatbuffers::Offset<IntData>(end);
1902  return o;
1903  }
1904 };
1905 
1906 inline flatbuffers::Offset<IntData> CreateIntData(
1907  flatbuffers::FlatBufferBuilder &_fbb,
1908  flatbuffers::Offset<flatbuffers::Vector<int32_t>> data = 0) {
1909  IntDataBuilder builder_(_fbb);
1910  builder_.add_data(data);
1911  return builder_.Finish();
1912 }
1913 
1914 inline flatbuffers::Offset<IntData> CreateIntDataDirect(
1915  flatbuffers::FlatBufferBuilder &_fbb,
1916  const std::vector<int32_t> *data = nullptr) {
1917  auto data__ = data ? _fbb.CreateVector<int32_t>(*data) : 0;
1919  _fbb,
1920  data__);
1921 }
1922 
1923 struct LongData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1925  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1926  VT_DATA = 4
1927  };
1928  const flatbuffers::Vector<int64_t> *data() const {
1929  return GetPointer<const flatbuffers::Vector<int64_t> *>(VT_DATA);
1930  }
1931  bool Verify(flatbuffers::Verifier &verifier) const {
1932  return VerifyTableStart(verifier) &&
1933  VerifyOffset(verifier, VT_DATA) &&
1934  verifier.VerifyVector(data()) &&
1935  verifier.EndTable();
1936  }
1937 };
1938 
1940  typedef LongData Table;
1941  flatbuffers::FlatBufferBuilder &fbb_;
1942  flatbuffers::uoffset_t start_;
1943  void add_data(flatbuffers::Offset<flatbuffers::Vector<int64_t>> data) {
1944  fbb_.AddOffset(LongData::VT_DATA, data);
1945  }
1946  explicit LongDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1947  : fbb_(_fbb) {
1948  start_ = fbb_.StartTable();
1949  }
1950  LongDataBuilder &operator=(const LongDataBuilder &);
1951  flatbuffers::Offset<LongData> Finish() {
1952  const auto end = fbb_.EndTable(start_);
1953  auto o = flatbuffers::Offset<LongData>(end);
1954  return o;
1955  }
1956 };
1957 
1958 inline flatbuffers::Offset<LongData> CreateLongData(
1959  flatbuffers::FlatBufferBuilder &_fbb,
1960  flatbuffers::Offset<flatbuffers::Vector<int64_t>> data = 0) {
1961  LongDataBuilder builder_(_fbb);
1962  builder_.add_data(data);
1963  return builder_.Finish();
1964 }
1965 
1966 inline flatbuffers::Offset<LongData> CreateLongDataDirect(
1967  flatbuffers::FlatBufferBuilder &_fbb,
1968  const std::vector<int64_t> *data = nullptr) {
1969  auto data__ = data ? _fbb.CreateVector<int64_t>(*data) : 0;
1971  _fbb,
1972  data__);
1973 }
1974 
1975 struct ConstTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1977  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1978  VT_INFO = 4,
1980  VT_DATA = 8
1981  };
1982  const armnnSerializer::TensorInfo *info() const {
1983  return GetPointer<const armnnSerializer::TensorInfo *>(VT_INFO);
1984  }
1986  return static_cast<armnnSerializer::ConstTensorData>(GetField<uint8_t>(VT_DATA_TYPE, 0));
1987  }
1988  const void *data() const {
1989  return GetPointer<const void *>(VT_DATA);
1990  }
1991  template<typename T> const T *data_as() const;
1992  const armnnSerializer::ByteData *data_as_ByteData() const {
1993  return data_type() == armnnSerializer::ConstTensorData_ByteData ? static_cast<const armnnSerializer::ByteData *>(data()) : nullptr;
1994  }
1995  const armnnSerializer::ShortData *data_as_ShortData() const {
1996  return data_type() == armnnSerializer::ConstTensorData_ShortData ? static_cast<const armnnSerializer::ShortData *>(data()) : nullptr;
1997  }
1998  const armnnSerializer::IntData *data_as_IntData() const {
1999  return data_type() == armnnSerializer::ConstTensorData_IntData ? static_cast<const armnnSerializer::IntData *>(data()) : nullptr;
2000  }
2001  const armnnSerializer::LongData *data_as_LongData() const {
2002  return data_type() == armnnSerializer::ConstTensorData_LongData ? static_cast<const armnnSerializer::LongData *>(data()) : nullptr;
2003  }
2004  bool Verify(flatbuffers::Verifier &verifier) const {
2005  return VerifyTableStart(verifier) &&
2006  VerifyOffset(verifier, VT_INFO) &&
2007  verifier.VerifyTable(info()) &&
2008  VerifyField<uint8_t>(verifier, VT_DATA_TYPE) &&
2009  VerifyOffset(verifier, VT_DATA) &&
2010  VerifyConstTensorData(verifier, data(), data_type()) &&
2011  verifier.EndTable();
2012  }
2013 };
2014 
2015 template<> inline const armnnSerializer::ByteData *ConstTensor::data_as<armnnSerializer::ByteData>() const {
2016  return data_as_ByteData();
2017 }
2018 
2019 template<> inline const armnnSerializer::ShortData *ConstTensor::data_as<armnnSerializer::ShortData>() const {
2020  return data_as_ShortData();
2021 }
2022 
2023 template<> inline const armnnSerializer::IntData *ConstTensor::data_as<armnnSerializer::IntData>() const {
2024  return data_as_IntData();
2025 }
2026 
2027 template<> inline const armnnSerializer::LongData *ConstTensor::data_as<armnnSerializer::LongData>() const {
2028  return data_as_LongData();
2029 }
2030 
2032  typedef ConstTensor Table;
2033  flatbuffers::FlatBufferBuilder &fbb_;
2034  flatbuffers::uoffset_t start_;
2035  void add_info(flatbuffers::Offset<armnnSerializer::TensorInfo> info) {
2036  fbb_.AddOffset(ConstTensor::VT_INFO, info);
2037  }
2039  fbb_.AddElement<uint8_t>(ConstTensor::VT_DATA_TYPE, static_cast<uint8_t>(data_type), 0);
2040  }
2041  void add_data(flatbuffers::Offset<void> data) {
2042  fbb_.AddOffset(ConstTensor::VT_DATA, data);
2043  }
2044  explicit ConstTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2045  : fbb_(_fbb) {
2046  start_ = fbb_.StartTable();
2047  }
2048  ConstTensorBuilder &operator=(const ConstTensorBuilder &);
2049  flatbuffers::Offset<ConstTensor> Finish() {
2050  const auto end = fbb_.EndTable(start_);
2051  auto o = flatbuffers::Offset<ConstTensor>(end);
2052  return o;
2053  }
2054 };
2055 
2056 inline flatbuffers::Offset<ConstTensor> CreateConstTensor(
2057  flatbuffers::FlatBufferBuilder &_fbb,
2058  flatbuffers::Offset<armnnSerializer::TensorInfo> info = 0,
2060  flatbuffers::Offset<void> data = 0) {
2061  ConstTensorBuilder builder_(_fbb);
2062  builder_.add_data(data);
2063  builder_.add_info(info);
2064  builder_.add_data_type(data_type);
2065  return builder_.Finish();
2066 }
2067 
2068 struct InputSlot FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2070  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2072  VT_CONNECTION = 6
2073  };
2074  uint32_t index() const {
2075  return GetField<uint32_t>(VT_INDEX, 0);
2076  }
2077  const armnnSerializer::Connection *connection() const {
2078  return GetStruct<const armnnSerializer::Connection *>(VT_CONNECTION);
2079  }
2080  bool Verify(flatbuffers::Verifier &verifier) const {
2081  return VerifyTableStart(verifier) &&
2082  VerifyField<uint32_t>(verifier, VT_INDEX) &&
2083  VerifyField<armnnSerializer::Connection>(verifier, VT_CONNECTION) &&
2084  verifier.EndTable();
2085  }
2086 };
2087 
2089  typedef InputSlot Table;
2090  flatbuffers::FlatBufferBuilder &fbb_;
2091  flatbuffers::uoffset_t start_;
2092  void add_index(uint32_t index) {
2093  fbb_.AddElement<uint32_t>(InputSlot::VT_INDEX, index, 0);
2094  }
2095  void add_connection(const armnnSerializer::Connection *connection) {
2096  fbb_.AddStruct(InputSlot::VT_CONNECTION, connection);
2097  }
2098  explicit InputSlotBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2099  : fbb_(_fbb) {
2100  start_ = fbb_.StartTable();
2101  }
2102  InputSlotBuilder &operator=(const InputSlotBuilder &);
2103  flatbuffers::Offset<InputSlot> Finish() {
2104  const auto end = fbb_.EndTable(start_);
2105  auto o = flatbuffers::Offset<InputSlot>(end);
2106  return o;
2107  }
2108 };
2109 
2110 inline flatbuffers::Offset<InputSlot> CreateInputSlot(
2111  flatbuffers::FlatBufferBuilder &_fbb,
2112  uint32_t index = 0,
2113  const armnnSerializer::Connection *connection = 0) {
2114  InputSlotBuilder builder_(_fbb);
2115  builder_.add_connection(connection);
2116  builder_.add_index(index);
2117  return builder_.Finish();
2118 }
2119 
2120 struct OutputSlot FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2122  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2123  VT_INDEX = 4,
2124  VT_TENSORINFO = 6
2125  };
2126  uint32_t index() const {
2127  return GetField<uint32_t>(VT_INDEX, 0);
2128  }
2129  const armnnSerializer::TensorInfo *tensorInfo() const {
2130  return GetPointer<const armnnSerializer::TensorInfo *>(VT_TENSORINFO);
2131  }
2132  bool Verify(flatbuffers::Verifier &verifier) const {
2133  return VerifyTableStart(verifier) &&
2134  VerifyField<uint32_t>(verifier, VT_INDEX) &&
2135  VerifyOffset(verifier, VT_TENSORINFO) &&
2136  verifier.VerifyTable(tensorInfo()) &&
2137  verifier.EndTable();
2138  }
2139 };
2140 
2142  typedef OutputSlot Table;
2143  flatbuffers::FlatBufferBuilder &fbb_;
2144  flatbuffers::uoffset_t start_;
2145  void add_index(uint32_t index) {
2146  fbb_.AddElement<uint32_t>(OutputSlot::VT_INDEX, index, 0);
2147  }
2148  void add_tensorInfo(flatbuffers::Offset<armnnSerializer::TensorInfo> tensorInfo) {
2149  fbb_.AddOffset(OutputSlot::VT_TENSORINFO, tensorInfo);
2150  }
2151  explicit OutputSlotBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2152  : fbb_(_fbb) {
2153  start_ = fbb_.StartTable();
2154  }
2155  OutputSlotBuilder &operator=(const OutputSlotBuilder &);
2156  flatbuffers::Offset<OutputSlot> Finish() {
2157  const auto end = fbb_.EndTable(start_);
2158  auto o = flatbuffers::Offset<OutputSlot>(end);
2159  return o;
2160  }
2161 };
2162 
2163 inline flatbuffers::Offset<OutputSlot> CreateOutputSlot(
2164  flatbuffers::FlatBufferBuilder &_fbb,
2165  uint32_t index = 0,
2166  flatbuffers::Offset<armnnSerializer::TensorInfo> tensorInfo = 0) {
2167  OutputSlotBuilder builder_(_fbb);
2168  builder_.add_tensorInfo(tensorInfo);
2169  builder_.add_index(index);
2170  return builder_.Finish();
2171 }
2172 
2173 struct LayerBase FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2175  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2176  VT_INDEX = 4,
2180  VT_OUTPUTSLOTS = 12
2181  };
2182  uint32_t index() const {
2183  return GetField<uint32_t>(VT_INDEX, 0);
2184  }
2185  const flatbuffers::String *layerName() const {
2186  return GetPointer<const flatbuffers::String *>(VT_LAYERNAME);
2187  }
2189  return static_cast<armnnSerializer::LayerType>(GetField<uint32_t>(VT_LAYERTYPE, 0));
2190  }
2191  const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::InputSlot>> *inputSlots() const {
2192  return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::InputSlot>> *>(VT_INPUTSLOTS);
2193  }
2194  const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::OutputSlot>> *outputSlots() const {
2195  return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::OutputSlot>> *>(VT_OUTPUTSLOTS);
2196  }
2197  bool Verify(flatbuffers::Verifier &verifier) const {
2198  return VerifyTableStart(verifier) &&
2199  VerifyField<uint32_t>(verifier, VT_INDEX) &&
2200  VerifyOffset(verifier, VT_LAYERNAME) &&
2201  verifier.VerifyString(layerName()) &&
2202  VerifyField<uint32_t>(verifier, VT_LAYERTYPE) &&
2203  VerifyOffset(verifier, VT_INPUTSLOTS) &&
2204  verifier.VerifyVector(inputSlots()) &&
2205  verifier.VerifyVectorOfTables(inputSlots()) &&
2206  VerifyOffset(verifier, VT_OUTPUTSLOTS) &&
2207  verifier.VerifyVector(outputSlots()) &&
2208  verifier.VerifyVectorOfTables(outputSlots()) &&
2209  verifier.EndTable();
2210  }
2211 };
2212 
2214  typedef LayerBase Table;
2215  flatbuffers::FlatBufferBuilder &fbb_;
2216  flatbuffers::uoffset_t start_;
2217  void add_index(uint32_t index) {
2218  fbb_.AddElement<uint32_t>(LayerBase::VT_INDEX, index, 0);
2219  }
2220  void add_layerName(flatbuffers::Offset<flatbuffers::String> layerName) {
2221  fbb_.AddOffset(LayerBase::VT_LAYERNAME, layerName);
2222  }
2224  fbb_.AddElement<uint32_t>(LayerBase::VT_LAYERTYPE, static_cast<uint32_t>(layerType), 0);
2225  }
2226  void add_inputSlots(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::InputSlot>>> inputSlots) {
2227  fbb_.AddOffset(LayerBase::VT_INPUTSLOTS, inputSlots);
2228  }
2229  void add_outputSlots(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::OutputSlot>>> outputSlots) {
2230  fbb_.AddOffset(LayerBase::VT_OUTPUTSLOTS, outputSlots);
2231  }
2232  explicit LayerBaseBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2233  : fbb_(_fbb) {
2234  start_ = fbb_.StartTable();
2235  }
2236  LayerBaseBuilder &operator=(const LayerBaseBuilder &);
2237  flatbuffers::Offset<LayerBase> Finish() {
2238  const auto end = fbb_.EndTable(start_);
2239  auto o = flatbuffers::Offset<LayerBase>(end);
2240  return o;
2241  }
2242 };
2243 
2244 inline flatbuffers::Offset<LayerBase> CreateLayerBase(
2245  flatbuffers::FlatBufferBuilder &_fbb,
2246  uint32_t index = 0,
2247  flatbuffers::Offset<flatbuffers::String> layerName = 0,
2249  flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::InputSlot>>> inputSlots = 0,
2250  flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::OutputSlot>>> outputSlots = 0) {
2251  LayerBaseBuilder builder_(_fbb);
2252  builder_.add_outputSlots(outputSlots);
2253  builder_.add_inputSlots(inputSlots);
2254  builder_.add_layerType(layerType);
2255  builder_.add_layerName(layerName);
2256  builder_.add_index(index);
2257  return builder_.Finish();
2258 }
2259 
2260 inline flatbuffers::Offset<LayerBase> CreateLayerBaseDirect(
2261  flatbuffers::FlatBufferBuilder &_fbb,
2262  uint32_t index = 0,
2263  const char *layerName = nullptr,
2265  const std::vector<flatbuffers::Offset<armnnSerializer::InputSlot>> *inputSlots = nullptr,
2266  const std::vector<flatbuffers::Offset<armnnSerializer::OutputSlot>> *outputSlots = nullptr) {
2267  auto layerName__ = layerName ? _fbb.CreateString(layerName) : 0;
2268  auto inputSlots__ = inputSlots ? _fbb.CreateVector<flatbuffers::Offset<armnnSerializer::InputSlot>>(*inputSlots) : 0;
2269  auto outputSlots__ = outputSlots ? _fbb.CreateVector<flatbuffers::Offset<armnnSerializer::OutputSlot>>(*outputSlots) : 0;
2271  _fbb,
2272  index,
2273  layerName__,
2274  layerType,
2275  inputSlots__,
2276  outputSlots__);
2277 }
2278 
2279 struct BindableLayerBase FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2281  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2282  VT_BASE = 4,
2283  VT_LAYERBINDINGID = 6
2284  };
2285  const armnnSerializer::LayerBase *base() const {
2286  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2287  }
2288  int32_t layerBindingId() const {
2289  return GetField<int32_t>(VT_LAYERBINDINGID, 0);
2290  }
2291  bool Verify(flatbuffers::Verifier &verifier) const {
2292  return VerifyTableStart(verifier) &&
2293  VerifyOffset(verifier, VT_BASE) &&
2294  verifier.VerifyTable(base()) &&
2295  VerifyField<int32_t>(verifier, VT_LAYERBINDINGID) &&
2296  verifier.EndTable();
2297  }
2298 };
2299 
2301  typedef BindableLayerBase Table;
2302  flatbuffers::FlatBufferBuilder &fbb_;
2303  flatbuffers::uoffset_t start_;
2304  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2305  fbb_.AddOffset(BindableLayerBase::VT_BASE, base);
2306  }
2307  void add_layerBindingId(int32_t layerBindingId) {
2308  fbb_.AddElement<int32_t>(BindableLayerBase::VT_LAYERBINDINGID, layerBindingId, 0);
2309  }
2310  explicit BindableLayerBaseBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2311  : fbb_(_fbb) {
2312  start_ = fbb_.StartTable();
2313  }
2315  flatbuffers::Offset<BindableLayerBase> Finish() {
2316  const auto end = fbb_.EndTable(start_);
2317  auto o = flatbuffers::Offset<BindableLayerBase>(end);
2318  return o;
2319  }
2320 };
2321 
2322 inline flatbuffers::Offset<BindableLayerBase> CreateBindableLayerBase(
2323  flatbuffers::FlatBufferBuilder &_fbb,
2324  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
2325  int32_t layerBindingId = 0) {
2326  BindableLayerBaseBuilder builder_(_fbb);
2327  builder_.add_layerBindingId(layerBindingId);
2328  builder_.add_base(base);
2329  return builder_.Finish();
2330 }
2331 
2332 /// @deprecated Use ElementwiseUnaryLayer instead
2333 struct AbsLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2335  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2336  VT_BASE = 4
2337  };
2338  const armnnSerializer::LayerBase *base() const {
2339  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2340  }
2341  bool Verify(flatbuffers::Verifier &verifier) const {
2342  return VerifyTableStart(verifier) &&
2343  VerifyOffset(verifier, VT_BASE) &&
2344  verifier.VerifyTable(base()) &&
2345  verifier.EndTable();
2346  }
2347 };
2348 
2350  typedef AbsLayer Table;
2351  flatbuffers::FlatBufferBuilder &fbb_;
2352  flatbuffers::uoffset_t start_;
2353  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2354  fbb_.AddOffset(AbsLayer::VT_BASE, base);
2355  }
2356  explicit AbsLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2357  : fbb_(_fbb) {
2358  start_ = fbb_.StartTable();
2359  }
2360  AbsLayerBuilder &operator=(const AbsLayerBuilder &);
2361  flatbuffers::Offset<AbsLayer> Finish() {
2362  const auto end = fbb_.EndTable(start_);
2363  auto o = flatbuffers::Offset<AbsLayer>(end);
2364  return o;
2365  }
2366 };
2367 
2368 inline flatbuffers::Offset<AbsLayer> CreateAbsLayer(
2369  flatbuffers::FlatBufferBuilder &_fbb,
2370  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
2371  AbsLayerBuilder builder_(_fbb);
2372  builder_.add_base(base);
2373  return builder_.Finish();
2374 }
2375 
2376 struct ActivationLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2378  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2379  VT_BASE = 4,
2380  VT_DESCRIPTOR = 6
2381  };
2382  const armnnSerializer::LayerBase *base() const {
2383  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2384  }
2385  const armnnSerializer::ActivationDescriptor *descriptor() const {
2386  return GetPointer<const armnnSerializer::ActivationDescriptor *>(VT_DESCRIPTOR);
2387  }
2388  bool Verify(flatbuffers::Verifier &verifier) const {
2389  return VerifyTableStart(verifier) &&
2390  VerifyOffset(verifier, VT_BASE) &&
2391  verifier.VerifyTable(base()) &&
2392  VerifyOffset(verifier, VT_DESCRIPTOR) &&
2393  verifier.VerifyTable(descriptor()) &&
2394  verifier.EndTable();
2395  }
2396 };
2397 
2399  typedef ActivationLayer Table;
2400  flatbuffers::FlatBufferBuilder &fbb_;
2401  flatbuffers::uoffset_t start_;
2402  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2403  fbb_.AddOffset(ActivationLayer::VT_BASE, base);
2404  }
2405  void add_descriptor(flatbuffers::Offset<armnnSerializer::ActivationDescriptor> descriptor) {
2406  fbb_.AddOffset(ActivationLayer::VT_DESCRIPTOR, descriptor);
2407  }
2408  explicit ActivationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2409  : fbb_(_fbb) {
2410  start_ = fbb_.StartTable();
2411  }
2412  ActivationLayerBuilder &operator=(const ActivationLayerBuilder &);
2413  flatbuffers::Offset<ActivationLayer> Finish() {
2414  const auto end = fbb_.EndTable(start_);
2415  auto o = flatbuffers::Offset<ActivationLayer>(end);
2416  return o;
2417  }
2418 };
2419 
2420 inline flatbuffers::Offset<ActivationLayer> CreateActivationLayer(
2421  flatbuffers::FlatBufferBuilder &_fbb,
2422  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
2423  flatbuffers::Offset<armnnSerializer::ActivationDescriptor> descriptor = 0) {
2424  ActivationLayerBuilder builder_(_fbb);
2425  builder_.add_descriptor(descriptor);
2426  builder_.add_base(base);
2427  return builder_.Finish();
2428 }
2429 
2430 struct ActivationDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2432  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2434  VT_A = 6,
2435  VT_B = 8
2436  };
2438  return static_cast<armnnSerializer::ActivationFunction>(GetField<int8_t>(VT_ACTIVATIONFUNCTION, 0));
2439  }
2440  float a() const {
2441  return GetField<float>(VT_A, 0.0f);
2442  }
2443  float b() const {
2444  return GetField<float>(VT_B, 0.0f);
2445  }
2446  bool Verify(flatbuffers::Verifier &verifier) const {
2447  return VerifyTableStart(verifier) &&
2448  VerifyField<int8_t>(verifier, VT_ACTIVATIONFUNCTION) &&
2449  VerifyField<float>(verifier, VT_A) &&
2450  VerifyField<float>(verifier, VT_B) &&
2451  verifier.EndTable();
2452  }
2453 };
2454 
2456  typedef ActivationDescriptor Table;
2457  flatbuffers::FlatBufferBuilder &fbb_;
2458  flatbuffers::uoffset_t start_;
2460  fbb_.AddElement<int8_t>(ActivationDescriptor::VT_ACTIVATIONFUNCTION, static_cast<int8_t>(activationFunction), 0);
2461  }
2462  void add_a(float a) {
2463  fbb_.AddElement<float>(ActivationDescriptor::VT_A, a, 0.0f);
2464  }
2465  void add_b(float b) {
2466  fbb_.AddElement<float>(ActivationDescriptor::VT_B, b, 0.0f);
2467  }
2468  explicit ActivationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2469  : fbb_(_fbb) {
2470  start_ = fbb_.StartTable();
2471  }
2473  flatbuffers::Offset<ActivationDescriptor> Finish() {
2474  const auto end = fbb_.EndTable(start_);
2475  auto o = flatbuffers::Offset<ActivationDescriptor>(end);
2476  return o;
2477  }
2478 };
2479 
2480 inline flatbuffers::Offset<ActivationDescriptor> CreateActivationDescriptor(
2481  flatbuffers::FlatBufferBuilder &_fbb,
2483  float a = 0.0f,
2484  float b = 0.0f) {
2485  ActivationDescriptorBuilder builder_(_fbb);
2486  builder_.add_b(b);
2487  builder_.add_a(a);
2488  builder_.add_activationFunction(activationFunction);
2489  return builder_.Finish();
2490 }
2491 
2492 struct AdditionLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2494  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2495  VT_BASE = 4
2496  };
2497  const armnnSerializer::LayerBase *base() const {
2498  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2499  }
2500  bool Verify(flatbuffers::Verifier &verifier) const {
2501  return VerifyTableStart(verifier) &&
2502  VerifyOffset(verifier, VT_BASE) &&
2503  verifier.VerifyTable(base()) &&
2504  verifier.EndTable();
2505  }
2506 };
2507 
2509  typedef AdditionLayer Table;
2510  flatbuffers::FlatBufferBuilder &fbb_;
2511  flatbuffers::uoffset_t start_;
2512  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2513  fbb_.AddOffset(AdditionLayer::VT_BASE, base);
2514  }
2515  explicit AdditionLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2516  : fbb_(_fbb) {
2517  start_ = fbb_.StartTable();
2518  }
2519  AdditionLayerBuilder &operator=(const AdditionLayerBuilder &);
2520  flatbuffers::Offset<AdditionLayer> Finish() {
2521  const auto end = fbb_.EndTable(start_);
2522  auto o = flatbuffers::Offset<AdditionLayer>(end);
2523  return o;
2524  }
2525 };
2526 
2527 inline flatbuffers::Offset<AdditionLayer> CreateAdditionLayer(
2528  flatbuffers::FlatBufferBuilder &_fbb,
2529  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
2530  AdditionLayerBuilder builder_(_fbb);
2531  builder_.add_base(base);
2532  return builder_.Finish();
2533 }
2534 
2535 struct ArgMinMaxLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2537  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2538  VT_BASE = 4,
2539  VT_DESCRIPTOR = 6
2540  };
2541  const armnnSerializer::LayerBase *base() const {
2542  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2543  }
2544  const armnnSerializer::ArgMinMaxDescriptor *descriptor() const {
2545  return GetPointer<const armnnSerializer::ArgMinMaxDescriptor *>(VT_DESCRIPTOR);
2546  }
2547  bool Verify(flatbuffers::Verifier &verifier) const {
2548  return VerifyTableStart(verifier) &&
2549  VerifyOffset(verifier, VT_BASE) &&
2550  verifier.VerifyTable(base()) &&
2551  VerifyOffset(verifier, VT_DESCRIPTOR) &&
2552  verifier.VerifyTable(descriptor()) &&
2553  verifier.EndTable();
2554  }
2555 };
2556 
2558  typedef ArgMinMaxLayer Table;
2559  flatbuffers::FlatBufferBuilder &fbb_;
2560  flatbuffers::uoffset_t start_;
2561  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2562  fbb_.AddOffset(ArgMinMaxLayer::VT_BASE, base);
2563  }
2564  void add_descriptor(flatbuffers::Offset<armnnSerializer::ArgMinMaxDescriptor> descriptor) {
2565  fbb_.AddOffset(ArgMinMaxLayer::VT_DESCRIPTOR, descriptor);
2566  }
2567  explicit ArgMinMaxLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2568  : fbb_(_fbb) {
2569  start_ = fbb_.StartTable();
2570  }
2571  ArgMinMaxLayerBuilder &operator=(const ArgMinMaxLayerBuilder &);
2572  flatbuffers::Offset<ArgMinMaxLayer> Finish() {
2573  const auto end = fbb_.EndTable(start_);
2574  auto o = flatbuffers::Offset<ArgMinMaxLayer>(end);
2575  return o;
2576  }
2577 };
2578 
2579 inline flatbuffers::Offset<ArgMinMaxLayer> CreateArgMinMaxLayer(
2580  flatbuffers::FlatBufferBuilder &_fbb,
2581  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
2582  flatbuffers::Offset<armnnSerializer::ArgMinMaxDescriptor> descriptor = 0) {
2583  ArgMinMaxLayerBuilder builder_(_fbb);
2584  builder_.add_descriptor(descriptor);
2585  builder_.add_base(base);
2586  return builder_.Finish();
2587 }
2588 
2589 struct ArgMinMaxDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2591  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2593  VT_AXIS = 6
2594  };
2596  return static_cast<armnnSerializer::ArgMinMaxFunction>(GetField<int8_t>(VT_ARGMINMAXFUNCTION, 0));
2597  }
2598  int32_t axis() const {
2599  return GetField<int32_t>(VT_AXIS, 0);
2600  }
2601  bool Verify(flatbuffers::Verifier &verifier) const {
2602  return VerifyTableStart(verifier) &&
2603  VerifyField<int8_t>(verifier, VT_ARGMINMAXFUNCTION) &&
2604  VerifyField<int32_t>(verifier, VT_AXIS) &&
2605  verifier.EndTable();
2606  }
2607 };
2608 
2610  typedef ArgMinMaxDescriptor Table;
2611  flatbuffers::FlatBufferBuilder &fbb_;
2612  flatbuffers::uoffset_t start_;
2614  fbb_.AddElement<int8_t>(ArgMinMaxDescriptor::VT_ARGMINMAXFUNCTION, static_cast<int8_t>(argMinMaxFunction), 0);
2615  }
2616  void add_axis(int32_t axis) {
2617  fbb_.AddElement<int32_t>(ArgMinMaxDescriptor::VT_AXIS, axis, 0);
2618  }
2619  explicit ArgMinMaxDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2620  : fbb_(_fbb) {
2621  start_ = fbb_.StartTable();
2622  }
2624  flatbuffers::Offset<ArgMinMaxDescriptor> Finish() {
2625  const auto end = fbb_.EndTable(start_);
2626  auto o = flatbuffers::Offset<ArgMinMaxDescriptor>(end);
2627  return o;
2628  }
2629 };
2630 
2631 inline flatbuffers::Offset<ArgMinMaxDescriptor> CreateArgMinMaxDescriptor(
2632  flatbuffers::FlatBufferBuilder &_fbb,
2634  int32_t axis = 0) {
2635  ArgMinMaxDescriptorBuilder builder_(_fbb);
2636  builder_.add_axis(axis);
2637  builder_.add_argMinMaxFunction(argMinMaxFunction);
2638  return builder_.Finish();
2639 }
2640 
2641 struct ComparisonDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2643  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2644  VT_OPERATION = 4
2645  };
2647  return static_cast<armnnSerializer::ComparisonOperation>(GetField<int8_t>(VT_OPERATION, 0));
2648  }
2649  bool Verify(flatbuffers::Verifier &verifier) const {
2650  return VerifyTableStart(verifier) &&
2651  VerifyField<int8_t>(verifier, VT_OPERATION) &&
2652  verifier.EndTable();
2653  }
2654 };
2655 
2657  typedef ComparisonDescriptor Table;
2658  flatbuffers::FlatBufferBuilder &fbb_;
2659  flatbuffers::uoffset_t start_;
2661  fbb_.AddElement<int8_t>(ComparisonDescriptor::VT_OPERATION, static_cast<int8_t>(operation), 0);
2662  }
2663  explicit ComparisonDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2664  : fbb_(_fbb) {
2665  start_ = fbb_.StartTable();
2666  }
2668  flatbuffers::Offset<ComparisonDescriptor> Finish() {
2669  const auto end = fbb_.EndTable(start_);
2670  auto o = flatbuffers::Offset<ComparisonDescriptor>(end);
2671  return o;
2672  }
2673 };
2674 
2675 inline flatbuffers::Offset<ComparisonDescriptor> CreateComparisonDescriptor(
2676  flatbuffers::FlatBufferBuilder &_fbb,
2678  ComparisonDescriptorBuilder builder_(_fbb);
2679  builder_.add_operation(operation);
2680  return builder_.Finish();
2681 }
2682 
2683 struct ComparisonLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2685  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2686  VT_BASE = 4,
2687  VT_DESCRIPTOR = 6
2688  };
2689  const armnnSerializer::LayerBase *base() const {
2690  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2691  }
2692  const armnnSerializer::ComparisonDescriptor *descriptor() const {
2693  return GetPointer<const armnnSerializer::ComparisonDescriptor *>(VT_DESCRIPTOR);
2694  }
2695  bool Verify(flatbuffers::Verifier &verifier) const {
2696  return VerifyTableStart(verifier) &&
2697  VerifyOffset(verifier, VT_BASE) &&
2698  verifier.VerifyTable(base()) &&
2699  VerifyOffset(verifier, VT_DESCRIPTOR) &&
2700  verifier.VerifyTable(descriptor()) &&
2701  verifier.EndTable();
2702  }
2703 };
2704 
2706  typedef ComparisonLayer Table;
2707  flatbuffers::FlatBufferBuilder &fbb_;
2708  flatbuffers::uoffset_t start_;
2709  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2710  fbb_.AddOffset(ComparisonLayer::VT_BASE, base);
2711  }
2712  void add_descriptor(flatbuffers::Offset<armnnSerializer::ComparisonDescriptor> descriptor) {
2713  fbb_.AddOffset(ComparisonLayer::VT_DESCRIPTOR, descriptor);
2714  }
2715  explicit ComparisonLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2716  : fbb_(_fbb) {
2717  start_ = fbb_.StartTable();
2718  }
2719  ComparisonLayerBuilder &operator=(const ComparisonLayerBuilder &);
2720  flatbuffers::Offset<ComparisonLayer> Finish() {
2721  const auto end = fbb_.EndTable(start_);
2722  auto o = flatbuffers::Offset<ComparisonLayer>(end);
2723  return o;
2724  }
2725 };
2726 
2727 inline flatbuffers::Offset<ComparisonLayer> CreateComparisonLayer(
2728  flatbuffers::FlatBufferBuilder &_fbb,
2729  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
2730  flatbuffers::Offset<armnnSerializer::ComparisonDescriptor> descriptor = 0) {
2731  ComparisonLayerBuilder builder_(_fbb);
2732  builder_.add_descriptor(descriptor);
2733  builder_.add_base(base);
2734  return builder_.Finish();
2735 }
2736 
2737 struct ConstantLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2739  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2740  VT_BASE = 4,
2741  VT_INPUT = 6
2742  };
2743  const armnnSerializer::LayerBase *base() const {
2744  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2745  }
2746  const armnnSerializer::ConstTensor *input() const {
2747  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUT);
2748  }
2749  bool Verify(flatbuffers::Verifier &verifier) const {
2750  return VerifyTableStart(verifier) &&
2751  VerifyOffset(verifier, VT_BASE) &&
2752  verifier.VerifyTable(base()) &&
2753  VerifyOffset(verifier, VT_INPUT) &&
2754  verifier.VerifyTable(input()) &&
2755  verifier.EndTable();
2756  }
2757 };
2758 
2760  typedef ConstantLayer Table;
2761  flatbuffers::FlatBufferBuilder &fbb_;
2762  flatbuffers::uoffset_t start_;
2763  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2764  fbb_.AddOffset(ConstantLayer::VT_BASE, base);
2765  }
2766  void add_input(flatbuffers::Offset<armnnSerializer::ConstTensor> input) {
2767  fbb_.AddOffset(ConstantLayer::VT_INPUT, input);
2768  }
2769  explicit ConstantLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2770  : fbb_(_fbb) {
2771  start_ = fbb_.StartTable();
2772  }
2773  ConstantLayerBuilder &operator=(const ConstantLayerBuilder &);
2774  flatbuffers::Offset<ConstantLayer> Finish() {
2775  const auto end = fbb_.EndTable(start_);
2776  auto o = flatbuffers::Offset<ConstantLayer>(end);
2777  return o;
2778  }
2779 };
2780 
2781 inline flatbuffers::Offset<ConstantLayer> CreateConstantLayer(
2782  flatbuffers::FlatBufferBuilder &_fbb,
2783  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
2784  flatbuffers::Offset<armnnSerializer::ConstTensor> input = 0) {
2785  ConstantLayerBuilder builder_(_fbb);
2786  builder_.add_input(input);
2787  builder_.add_base(base);
2788  return builder_.Finish();
2789 }
2790 
2791 struct Convolution2dLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2793  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2794  VT_BASE = 4,
2797  VT_BIASES = 10
2798  };
2799  const armnnSerializer::LayerBase *base() const {
2800  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2801  }
2802  const armnnSerializer::Convolution2dDescriptor *descriptor() const {
2803  return GetPointer<const armnnSerializer::Convolution2dDescriptor *>(VT_DESCRIPTOR);
2804  }
2805  const armnnSerializer::ConstTensor *weights() const {
2806  return GetPointer<const armnnSerializer::ConstTensor *>(VT_WEIGHTS);
2807  }
2808  const armnnSerializer::ConstTensor *biases() const {
2809  return GetPointer<const armnnSerializer::ConstTensor *>(VT_BIASES);
2810  }
2811  bool Verify(flatbuffers::Verifier &verifier) const {
2812  return VerifyTableStart(verifier) &&
2813  VerifyOffset(verifier, VT_BASE) &&
2814  verifier.VerifyTable(base()) &&
2815  VerifyOffset(verifier, VT_DESCRIPTOR) &&
2816  verifier.VerifyTable(descriptor()) &&
2817  VerifyOffset(verifier, VT_WEIGHTS) &&
2818  verifier.VerifyTable(weights()) &&
2819  VerifyOffset(verifier, VT_BIASES) &&
2820  verifier.VerifyTable(biases()) &&
2821  verifier.EndTable();
2822  }
2823 };
2824 
2826  typedef Convolution2dLayer Table;
2827  flatbuffers::FlatBufferBuilder &fbb_;
2828  flatbuffers::uoffset_t start_;
2829  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2830  fbb_.AddOffset(Convolution2dLayer::VT_BASE, base);
2831  }
2832  void add_descriptor(flatbuffers::Offset<armnnSerializer::Convolution2dDescriptor> descriptor) {
2833  fbb_.AddOffset(Convolution2dLayer::VT_DESCRIPTOR, descriptor);
2834  }
2835  void add_weights(flatbuffers::Offset<armnnSerializer::ConstTensor> weights) {
2836  fbb_.AddOffset(Convolution2dLayer::VT_WEIGHTS, weights);
2837  }
2838  void add_biases(flatbuffers::Offset<armnnSerializer::ConstTensor> biases) {
2839  fbb_.AddOffset(Convolution2dLayer::VT_BIASES, biases);
2840  }
2841  explicit Convolution2dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2842  : fbb_(_fbb) {
2843  start_ = fbb_.StartTable();
2844  }
2846  flatbuffers::Offset<Convolution2dLayer> Finish() {
2847  const auto end = fbb_.EndTable(start_);
2848  auto o = flatbuffers::Offset<Convolution2dLayer>(end);
2849  return o;
2850  }
2851 };
2852 
2853 inline flatbuffers::Offset<Convolution2dLayer> CreateConvolution2dLayer(
2854  flatbuffers::FlatBufferBuilder &_fbb,
2855  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
2856  flatbuffers::Offset<armnnSerializer::Convolution2dDescriptor> descriptor = 0,
2857  flatbuffers::Offset<armnnSerializer::ConstTensor> weights = 0,
2858  flatbuffers::Offset<armnnSerializer::ConstTensor> biases = 0) {
2859  Convolution2dLayerBuilder builder_(_fbb);
2860  builder_.add_biases(biases);
2861  builder_.add_weights(weights);
2862  builder_.add_descriptor(descriptor);
2863  builder_.add_base(base);
2864  return builder_.Finish();
2865 }
2866 
2867 struct Convolution2dDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2869  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2879  VT_DATALAYOUT = 22
2880  };
2881  uint32_t padLeft() const {
2882  return GetField<uint32_t>(VT_PADLEFT, 0);
2883  }
2884  uint32_t padRight() const {
2885  return GetField<uint32_t>(VT_PADRIGHT, 0);
2886  }
2887  uint32_t padTop() const {
2888  return GetField<uint32_t>(VT_PADTOP, 0);
2889  }
2890  uint32_t padBottom() const {
2891  return GetField<uint32_t>(VT_PADBOTTOM, 0);
2892  }
2893  uint32_t strideX() const {
2894  return GetField<uint32_t>(VT_STRIDEX, 0);
2895  }
2896  uint32_t strideY() const {
2897  return GetField<uint32_t>(VT_STRIDEY, 0);
2898  }
2899  uint32_t dilationX() const {
2900  return GetField<uint32_t>(VT_DILATIONX, 1);
2901  }
2902  uint32_t dilationY() const {
2903  return GetField<uint32_t>(VT_DILATIONY, 1);
2904  }
2905  bool biasEnabled() const {
2906  return GetField<uint8_t>(VT_BIASENABLED, 0) != 0;
2907  }
2909  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 1));
2910  }
2911  bool Verify(flatbuffers::Verifier &verifier) const {
2912  return VerifyTableStart(verifier) &&
2913  VerifyField<uint32_t>(verifier, VT_PADLEFT) &&
2914  VerifyField<uint32_t>(verifier, VT_PADRIGHT) &&
2915  VerifyField<uint32_t>(verifier, VT_PADTOP) &&
2916  VerifyField<uint32_t>(verifier, VT_PADBOTTOM) &&
2917  VerifyField<uint32_t>(verifier, VT_STRIDEX) &&
2918  VerifyField<uint32_t>(verifier, VT_STRIDEY) &&
2919  VerifyField<uint32_t>(verifier, VT_DILATIONX) &&
2920  VerifyField<uint32_t>(verifier, VT_DILATIONY) &&
2921  VerifyField<uint8_t>(verifier, VT_BIASENABLED) &&
2922  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
2923  verifier.EndTable();
2924  }
2925 };
2926 
2928  typedef Convolution2dDescriptor Table;
2929  flatbuffers::FlatBufferBuilder &fbb_;
2930  flatbuffers::uoffset_t start_;
2931  void add_padLeft(uint32_t padLeft) {
2932  fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_PADLEFT, padLeft, 0);
2933  }
2934  void add_padRight(uint32_t padRight) {
2935  fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_PADRIGHT, padRight, 0);
2936  }
2937  void add_padTop(uint32_t padTop) {
2938  fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_PADTOP, padTop, 0);
2939  }
2940  void add_padBottom(uint32_t padBottom) {
2941  fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_PADBOTTOM, padBottom, 0);
2942  }
2943  void add_strideX(uint32_t strideX) {
2944  fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_STRIDEX, strideX, 0);
2945  }
2946  void add_strideY(uint32_t strideY) {
2947  fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_STRIDEY, strideY, 0);
2948  }
2949  void add_dilationX(uint32_t dilationX) {
2950  fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_DILATIONX, dilationX, 1);
2951  }
2952  void add_dilationY(uint32_t dilationY) {
2953  fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_DILATIONY, dilationY, 1);
2954  }
2955  void add_biasEnabled(bool biasEnabled) {
2956  fbb_.AddElement<uint8_t>(Convolution2dDescriptor::VT_BIASENABLED, static_cast<uint8_t>(biasEnabled), 0);
2957  }
2959  fbb_.AddElement<int8_t>(Convolution2dDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 1);
2960  }
2961  explicit Convolution2dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2962  : fbb_(_fbb) {
2963  start_ = fbb_.StartTable();
2964  }
2966  flatbuffers::Offset<Convolution2dDescriptor> Finish() {
2967  const auto end = fbb_.EndTable(start_);
2968  auto o = flatbuffers::Offset<Convolution2dDescriptor>(end);
2969  return o;
2970  }
2971 };
2972 
2973 inline flatbuffers::Offset<Convolution2dDescriptor> CreateConvolution2dDescriptor(
2974  flatbuffers::FlatBufferBuilder &_fbb,
2975  uint32_t padLeft = 0,
2976  uint32_t padRight = 0,
2977  uint32_t padTop = 0,
2978  uint32_t padBottom = 0,
2979  uint32_t strideX = 0,
2980  uint32_t strideY = 0,
2981  uint32_t dilationX = 1,
2982  uint32_t dilationY = 1,
2983  bool biasEnabled = false,
2985  Convolution2dDescriptorBuilder builder_(_fbb);
2986  builder_.add_dilationY(dilationY);
2987  builder_.add_dilationX(dilationX);
2988  builder_.add_strideY(strideY);
2989  builder_.add_strideX(strideX);
2990  builder_.add_padBottom(padBottom);
2991  builder_.add_padTop(padTop);
2992  builder_.add_padRight(padRight);
2993  builder_.add_padLeft(padLeft);
2994  builder_.add_dataLayout(dataLayout);
2995  builder_.add_biasEnabled(biasEnabled);
2996  return builder_.Finish();
2997 }
2998 
2999 struct DepthToSpaceLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3001  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3002  VT_BASE = 4,
3003  VT_DESCRIPTOR = 6
3004  };
3005  const armnnSerializer::LayerBase *base() const {
3006  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3007  }
3009  return GetPointer<const armnnSerializer::DepthToSpaceDescriptor *>(VT_DESCRIPTOR);
3010  }
3011  bool Verify(flatbuffers::Verifier &verifier) const {
3012  return VerifyTableStart(verifier) &&
3013  VerifyOffset(verifier, VT_BASE) &&
3014  verifier.VerifyTable(base()) &&
3015  VerifyOffset(verifier, VT_DESCRIPTOR) &&
3016  verifier.VerifyTable(descriptor()) &&
3017  verifier.EndTable();
3018  }
3019 };
3020 
3022  typedef DepthToSpaceLayer Table;
3023  flatbuffers::FlatBufferBuilder &fbb_;
3024  flatbuffers::uoffset_t start_;
3025  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3026  fbb_.AddOffset(DepthToSpaceLayer::VT_BASE, base);
3027  }
3028  void add_descriptor(flatbuffers::Offset<armnnSerializer::DepthToSpaceDescriptor> descriptor) {
3029  fbb_.AddOffset(DepthToSpaceLayer::VT_DESCRIPTOR, descriptor);
3030  }
3031  explicit DepthToSpaceLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3032  : fbb_(_fbb) {
3033  start_ = fbb_.StartTable();
3034  }
3036  flatbuffers::Offset<DepthToSpaceLayer> Finish() {
3037  const auto end = fbb_.EndTable(start_);
3038  auto o = flatbuffers::Offset<DepthToSpaceLayer>(end);
3039  return o;
3040  }
3041 };
3042 
3043 inline flatbuffers::Offset<DepthToSpaceLayer> CreateDepthToSpaceLayer(
3044  flatbuffers::FlatBufferBuilder &_fbb,
3045  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3046  flatbuffers::Offset<armnnSerializer::DepthToSpaceDescriptor> descriptor = 0) {
3047  DepthToSpaceLayerBuilder builder_(_fbb);
3048  builder_.add_descriptor(descriptor);
3049  builder_.add_base(base);
3050  return builder_.Finish();
3051 }
3052 
3053 struct DepthToSpaceDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3055  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3057  VT_DATALAYOUT = 6
3058  };
3059  uint32_t blockSize() const {
3060  return GetField<uint32_t>(VT_BLOCKSIZE, 0);
3061  }
3063  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
3064  }
3065  bool Verify(flatbuffers::Verifier &verifier) const {
3066  return VerifyTableStart(verifier) &&
3067  VerifyField<uint32_t>(verifier, VT_BLOCKSIZE) &&
3068  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
3069  verifier.EndTable();
3070  }
3071 };
3072 
3075  flatbuffers::FlatBufferBuilder &fbb_;
3076  flatbuffers::uoffset_t start_;
3077  void add_blockSize(uint32_t blockSize) {
3078  fbb_.AddElement<uint32_t>(DepthToSpaceDescriptor::VT_BLOCKSIZE, blockSize, 0);
3079  }
3081  fbb_.AddElement<int8_t>(DepthToSpaceDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
3082  }
3083  explicit DepthToSpaceDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3084  : fbb_(_fbb) {
3085  start_ = fbb_.StartTable();
3086  }
3088  flatbuffers::Offset<DepthToSpaceDescriptor> Finish() {
3089  const auto end = fbb_.EndTable(start_);
3090  auto o = flatbuffers::Offset<DepthToSpaceDescriptor>(end);
3091  return o;
3092  }
3093 };
3094 
3095 inline flatbuffers::Offset<DepthToSpaceDescriptor> CreateDepthToSpaceDescriptor(
3096  flatbuffers::FlatBufferBuilder &_fbb,
3097  uint32_t blockSize = 0,
3099  DepthToSpaceDescriptorBuilder builder_(_fbb);
3100  builder_.add_blockSize(blockSize);
3101  builder_.add_dataLayout(dataLayout);
3102  return builder_.Finish();
3103 }
3104 
3105 struct DivisionLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3107  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3108  VT_BASE = 4
3109  };
3110  const armnnSerializer::LayerBase *base() const {
3111  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3112  }
3113  bool Verify(flatbuffers::Verifier &verifier) const {
3114  return VerifyTableStart(verifier) &&
3115  VerifyOffset(verifier, VT_BASE) &&
3116  verifier.VerifyTable(base()) &&
3117  verifier.EndTable();
3118  }
3119 };
3120 
3122  typedef DivisionLayer Table;
3123  flatbuffers::FlatBufferBuilder &fbb_;
3124  flatbuffers::uoffset_t start_;
3125  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3126  fbb_.AddOffset(DivisionLayer::VT_BASE, base);
3127  }
3128  explicit DivisionLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3129  : fbb_(_fbb) {
3130  start_ = fbb_.StartTable();
3131  }
3132  DivisionLayerBuilder &operator=(const DivisionLayerBuilder &);
3133  flatbuffers::Offset<DivisionLayer> Finish() {
3134  const auto end = fbb_.EndTable(start_);
3135  auto o = flatbuffers::Offset<DivisionLayer>(end);
3136  return o;
3137  }
3138 };
3139 
3140 inline flatbuffers::Offset<DivisionLayer> CreateDivisionLayer(
3141  flatbuffers::FlatBufferBuilder &_fbb,
3142  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
3143  DivisionLayerBuilder builder_(_fbb);
3144  builder_.add_base(base);
3145  return builder_.Finish();
3146 }
3147 
3148 struct ElementwiseUnaryDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3150  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3151  VT_OPERATION = 4
3152  };
3154  return static_cast<armnnSerializer::UnaryOperation>(GetField<int8_t>(VT_OPERATION, 0));
3155  }
3156  bool Verify(flatbuffers::Verifier &verifier) const {
3157  return VerifyTableStart(verifier) &&
3158  VerifyField<int8_t>(verifier, VT_OPERATION) &&
3159  verifier.EndTable();
3160  }
3161 };
3162 
3164  typedef ElementwiseUnaryDescriptor Table;
3165  flatbuffers::FlatBufferBuilder &fbb_;
3166  flatbuffers::uoffset_t start_;
3168  fbb_.AddElement<int8_t>(ElementwiseUnaryDescriptor::VT_OPERATION, static_cast<int8_t>(operation), 0);
3169  }
3170  explicit ElementwiseUnaryDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3171  : fbb_(_fbb) {
3172  start_ = fbb_.StartTable();
3173  }
3175  flatbuffers::Offset<ElementwiseUnaryDescriptor> Finish() {
3176  const auto end = fbb_.EndTable(start_);
3177  auto o = flatbuffers::Offset<ElementwiseUnaryDescriptor>(end);
3178  return o;
3179  }
3180 };
3181 
3182 inline flatbuffers::Offset<ElementwiseUnaryDescriptor> CreateElementwiseUnaryDescriptor(
3183  flatbuffers::FlatBufferBuilder &_fbb,
3185  ElementwiseUnaryDescriptorBuilder builder_(_fbb);
3186  builder_.add_operation(operation);
3187  return builder_.Finish();
3188 }
3189 
3190 struct ElementwiseUnaryLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3192  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3193  VT_BASE = 4,
3194  VT_DESCRIPTOR = 6
3195  };
3196  const armnnSerializer::LayerBase *base() const {
3197  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3198  }
3199  const armnnSerializer::ElementwiseUnaryDescriptor *descriptor() const {
3200  return GetPointer<const armnnSerializer::ElementwiseUnaryDescriptor *>(VT_DESCRIPTOR);
3201  }
3202  bool Verify(flatbuffers::Verifier &verifier) const {
3203  return VerifyTableStart(verifier) &&
3204  VerifyOffset(verifier, VT_BASE) &&
3205  verifier.VerifyTable(base()) &&
3206  VerifyOffset(verifier, VT_DESCRIPTOR) &&
3207  verifier.VerifyTable(descriptor()) &&
3208  verifier.EndTable();
3209  }
3210 };
3211 
3213  typedef ElementwiseUnaryLayer Table;
3214  flatbuffers::FlatBufferBuilder &fbb_;
3215  flatbuffers::uoffset_t start_;
3216  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3217  fbb_.AddOffset(ElementwiseUnaryLayer::VT_BASE, base);
3218  }
3219  void add_descriptor(flatbuffers::Offset<armnnSerializer::ElementwiseUnaryDescriptor> descriptor) {
3220  fbb_.AddOffset(ElementwiseUnaryLayer::VT_DESCRIPTOR, descriptor);
3221  }
3222  explicit ElementwiseUnaryLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3223  : fbb_(_fbb) {
3224  start_ = fbb_.StartTable();
3225  }
3227  flatbuffers::Offset<ElementwiseUnaryLayer> Finish() {
3228  const auto end = fbb_.EndTable(start_);
3229  auto o = flatbuffers::Offset<ElementwiseUnaryLayer>(end);
3230  return o;
3231  }
3232 };
3233 
3234 inline flatbuffers::Offset<ElementwiseUnaryLayer> CreateElementwiseUnaryLayer(
3235  flatbuffers::FlatBufferBuilder &_fbb,
3236  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3237  flatbuffers::Offset<armnnSerializer::ElementwiseUnaryDescriptor> descriptor = 0) {
3238  ElementwiseUnaryLayerBuilder builder_(_fbb);
3239  builder_.add_descriptor(descriptor);
3240  builder_.add_base(base);
3241  return builder_.Finish();
3242 }
3243 
3244 /// @deprecated Use ComparisonLayer instead
3245 struct EqualLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3247  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3248  VT_BASE = 4
3249  };
3250  const armnnSerializer::LayerBase *base() const {
3251  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3252  }
3253  bool Verify(flatbuffers::Verifier &verifier) const {
3254  return VerifyTableStart(verifier) &&
3255  VerifyOffset(verifier, VT_BASE) &&
3256  verifier.VerifyTable(base()) &&
3257  verifier.EndTable();
3258  }
3259 };
3260 
3262  typedef EqualLayer Table;
3263  flatbuffers::FlatBufferBuilder &fbb_;
3264  flatbuffers::uoffset_t start_;
3265  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3266  fbb_.AddOffset(EqualLayer::VT_BASE, base);
3267  }
3268  explicit EqualLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3269  : fbb_(_fbb) {
3270  start_ = fbb_.StartTable();
3271  }
3272  EqualLayerBuilder &operator=(const EqualLayerBuilder &);
3273  flatbuffers::Offset<EqualLayer> Finish() {
3274  const auto end = fbb_.EndTable(start_);
3275  auto o = flatbuffers::Offset<EqualLayer>(end);
3276  return o;
3277  }
3278 };
3279 
3280 inline flatbuffers::Offset<EqualLayer> CreateEqualLayer(
3281  flatbuffers::FlatBufferBuilder &_fbb,
3282  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
3283  EqualLayerBuilder builder_(_fbb);
3284  builder_.add_base(base);
3285  return builder_.Finish();
3286 }
3287 
3288 struct FillLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3290  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3291  VT_BASE = 4,
3292  VT_DESCRIPTOR = 6
3293  };
3294  const armnnSerializer::LayerBase *base() const {
3295  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3296  }
3297  const armnnSerializer::FillDescriptor *descriptor() const {
3298  return GetPointer<const armnnSerializer::FillDescriptor *>(VT_DESCRIPTOR);
3299  }
3300  bool Verify(flatbuffers::Verifier &verifier) const {
3301  return VerifyTableStart(verifier) &&
3302  VerifyOffset(verifier, VT_BASE) &&
3303  verifier.VerifyTable(base()) &&
3304  VerifyOffset(verifier, VT_DESCRIPTOR) &&
3305  verifier.VerifyTable(descriptor()) &&
3306  verifier.EndTable();
3307  }
3308 };
3309 
3311  typedef FillLayer Table;
3312  flatbuffers::FlatBufferBuilder &fbb_;
3313  flatbuffers::uoffset_t start_;
3314  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3315  fbb_.AddOffset(FillLayer::VT_BASE, base);
3316  }
3317  void add_descriptor(flatbuffers::Offset<armnnSerializer::FillDescriptor> descriptor) {
3318  fbb_.AddOffset(FillLayer::VT_DESCRIPTOR, descriptor);
3319  }
3320  explicit FillLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3321  : fbb_(_fbb) {
3322  start_ = fbb_.StartTable();
3323  }
3324  FillLayerBuilder &operator=(const FillLayerBuilder &);
3325  flatbuffers::Offset<FillLayer> Finish() {
3326  const auto end = fbb_.EndTable(start_);
3327  auto o = flatbuffers::Offset<FillLayer>(end);
3328  return o;
3329  }
3330 };
3331 
3332 inline flatbuffers::Offset<FillLayer> CreateFillLayer(
3333  flatbuffers::FlatBufferBuilder &_fbb,
3334  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3335  flatbuffers::Offset<armnnSerializer::FillDescriptor> descriptor = 0) {
3336  FillLayerBuilder builder_(_fbb);
3337  builder_.add_descriptor(descriptor);
3338  builder_.add_base(base);
3339  return builder_.Finish();
3340 }
3341 
3342 struct FillDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3344  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3345  VT_VALUE = 4
3346  };
3347  float value() const {
3348  return GetField<float>(VT_VALUE, 0.0f);
3349  }
3350  bool Verify(flatbuffers::Verifier &verifier) const {
3351  return VerifyTableStart(verifier) &&
3352  VerifyField<float>(verifier, VT_VALUE) &&
3353  verifier.EndTable();
3354  }
3355 };
3356 
3358  typedef FillDescriptor Table;
3359  flatbuffers::FlatBufferBuilder &fbb_;
3360  flatbuffers::uoffset_t start_;
3361  void add_value(float value) {
3362  fbb_.AddElement<float>(FillDescriptor::VT_VALUE, value, 0.0f);
3363  }
3364  explicit FillDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3365  : fbb_(_fbb) {
3366  start_ = fbb_.StartTable();
3367  }
3368  FillDescriptorBuilder &operator=(const FillDescriptorBuilder &);
3369  flatbuffers::Offset<FillDescriptor> Finish() {
3370  const auto end = fbb_.EndTable(start_);
3371  auto o = flatbuffers::Offset<FillDescriptor>(end);
3372  return o;
3373  }
3374 };
3375 
3376 inline flatbuffers::Offset<FillDescriptor> CreateFillDescriptor(
3377  flatbuffers::FlatBufferBuilder &_fbb,
3378  float value = 0.0f) {
3379  FillDescriptorBuilder builder_(_fbb);
3380  builder_.add_value(value);
3381  return builder_.Finish();
3382 }
3383 
3384 struct FloorLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3386  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3387  VT_BASE = 4
3388  };
3389  const armnnSerializer::LayerBase *base() const {
3390  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3391  }
3392  bool Verify(flatbuffers::Verifier &verifier) const {
3393  return VerifyTableStart(verifier) &&
3394  VerifyOffset(verifier, VT_BASE) &&
3395  verifier.VerifyTable(base()) &&
3396  verifier.EndTable();
3397  }
3398 };
3399 
3401  typedef FloorLayer Table;
3402  flatbuffers::FlatBufferBuilder &fbb_;
3403  flatbuffers::uoffset_t start_;
3404  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3405  fbb_.AddOffset(FloorLayer::VT_BASE, base);
3406  }
3407  explicit FloorLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3408  : fbb_(_fbb) {
3409  start_ = fbb_.StartTable();
3410  }
3411  FloorLayerBuilder &operator=(const FloorLayerBuilder &);
3412  flatbuffers::Offset<FloorLayer> Finish() {
3413  const auto end = fbb_.EndTable(start_);
3414  auto o = flatbuffers::Offset<FloorLayer>(end);
3415  return o;
3416  }
3417 };
3418 
3419 inline flatbuffers::Offset<FloorLayer> CreateFloorLayer(
3420  flatbuffers::FlatBufferBuilder &_fbb,
3421  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
3422  FloorLayerBuilder builder_(_fbb);
3423  builder_.add_base(base);
3424  return builder_.Finish();
3425 }
3426 
3427 struct FullyConnectedLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3429  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3430  VT_BASE = 4,
3431  VT_DESCRIPTOR = 6,
3432  VT_WEIGHTS = 8,
3433  VT_BIASES = 10
3434  };
3435  const armnnSerializer::LayerBase *base() const {
3436  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3437  }
3438  const armnnSerializer::FullyConnectedDescriptor *descriptor() const {
3439  return GetPointer<const armnnSerializer::FullyConnectedDescriptor *>(VT_DESCRIPTOR);
3440  }
3441  const armnnSerializer::ConstTensor *weights() const {
3442  return GetPointer<const armnnSerializer::ConstTensor *>(VT_WEIGHTS);
3443  }
3444  const armnnSerializer::ConstTensor *biases() const {
3445  return GetPointer<const armnnSerializer::ConstTensor *>(VT_BIASES);
3446  }
3447  bool Verify(flatbuffers::Verifier &verifier) const {
3448  return VerifyTableStart(verifier) &&
3449  VerifyOffset(verifier, VT_BASE) &&
3450  verifier.VerifyTable(base()) &&
3451  VerifyOffset(verifier, VT_DESCRIPTOR) &&
3452  verifier.VerifyTable(descriptor()) &&
3453  VerifyOffset(verifier, VT_WEIGHTS) &&
3454  verifier.VerifyTable(weights()) &&
3455  VerifyOffset(verifier, VT_BIASES) &&
3456  verifier.VerifyTable(biases()) &&
3457  verifier.EndTable();
3458  }
3459 };
3460 
3462  typedef FullyConnectedLayer Table;
3463  flatbuffers::FlatBufferBuilder &fbb_;
3464  flatbuffers::uoffset_t start_;
3465  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3466  fbb_.AddOffset(FullyConnectedLayer::VT_BASE, base);
3467  }
3468  void add_descriptor(flatbuffers::Offset<armnnSerializer::FullyConnectedDescriptor> descriptor) {
3469  fbb_.AddOffset(FullyConnectedLayer::VT_DESCRIPTOR, descriptor);
3470  }
3471  void add_weights(flatbuffers::Offset<armnnSerializer::ConstTensor> weights) {
3472  fbb_.AddOffset(FullyConnectedLayer::VT_WEIGHTS, weights);
3473  }
3474  void add_biases(flatbuffers::Offset<armnnSerializer::ConstTensor> biases) {
3475  fbb_.AddOffset(FullyConnectedLayer::VT_BIASES, biases);
3476  }
3477  explicit FullyConnectedLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3478  : fbb_(_fbb) {
3479  start_ = fbb_.StartTable();
3480  }
3482  flatbuffers::Offset<FullyConnectedLayer> Finish() {
3483  const auto end = fbb_.EndTable(start_);
3484  auto o = flatbuffers::Offset<FullyConnectedLayer>(end);
3485  return o;
3486  }
3487 };
3488 
3489 inline flatbuffers::Offset<FullyConnectedLayer> CreateFullyConnectedLayer(
3490  flatbuffers::FlatBufferBuilder &_fbb,
3491  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3492  flatbuffers::Offset<armnnSerializer::FullyConnectedDescriptor> descriptor = 0,
3493  flatbuffers::Offset<armnnSerializer::ConstTensor> weights = 0,
3494  flatbuffers::Offset<armnnSerializer::ConstTensor> biases = 0) {
3495  FullyConnectedLayerBuilder builder_(_fbb);
3496  builder_.add_biases(biases);
3497  builder_.add_weights(weights);
3498  builder_.add_descriptor(descriptor);
3499  builder_.add_base(base);
3500  return builder_.Finish();
3501 }
3502 
3503 struct FullyConnectedDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3505  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3506  VT_BIASENABLED = 4,
3507  VT_TRANSPOSEWEIGHTSMATRIX = 6
3508  };
3509  bool biasEnabled() const {
3510  return GetField<uint8_t>(VT_BIASENABLED, 0) != 0;
3511  }
3512  bool transposeWeightsMatrix() const {
3513  return GetField<uint8_t>(VT_TRANSPOSEWEIGHTSMATRIX, 0) != 0;
3514  }
3515  bool Verify(flatbuffers::Verifier &verifier) const {
3516  return VerifyTableStart(verifier) &&
3517  VerifyField<uint8_t>(verifier, VT_BIASENABLED) &&
3518  VerifyField<uint8_t>(verifier, VT_TRANSPOSEWEIGHTSMATRIX) &&
3519  verifier.EndTable();
3520  }
3521 };
3522 
3524  typedef FullyConnectedDescriptor Table;
3525  flatbuffers::FlatBufferBuilder &fbb_;
3526  flatbuffers::uoffset_t start_;
3527  void add_biasEnabled(bool biasEnabled) {
3528  fbb_.AddElement<uint8_t>(FullyConnectedDescriptor::VT_BIASENABLED, static_cast<uint8_t>(biasEnabled), 0);
3529  }
3530  void add_transposeWeightsMatrix(bool transposeWeightsMatrix) {
3531  fbb_.AddElement<uint8_t>(FullyConnectedDescriptor::VT_TRANSPOSEWEIGHTSMATRIX, static_cast<uint8_t>(transposeWeightsMatrix), 0);
3532  }
3533  explicit FullyConnectedDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3534  : fbb_(_fbb) {
3535  start_ = fbb_.StartTable();
3536  }
3538  flatbuffers::Offset<FullyConnectedDescriptor> Finish() {
3539  const auto end = fbb_.EndTable(start_);
3540  auto o = flatbuffers::Offset<FullyConnectedDescriptor>(end);
3541  return o;
3542  }
3543 };
3544 
3545 inline flatbuffers::Offset<FullyConnectedDescriptor> CreateFullyConnectedDescriptor(
3546  flatbuffers::FlatBufferBuilder &_fbb,
3547  bool biasEnabled = false,
3548  bool transposeWeightsMatrix = false) {
3549  FullyConnectedDescriptorBuilder builder_(_fbb);
3550  builder_.add_transposeWeightsMatrix(transposeWeightsMatrix);
3551  builder_.add_biasEnabled(biasEnabled);
3552  return builder_.Finish();
3553 }
3554 
3555 struct GatherLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3557  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3558  VT_BASE = 4,
3559  VT_DESCRIPTOR = 6
3560  };
3561  const armnnSerializer::LayerBase *base() const {
3562  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3563  }
3564  const armnnSerializer::GatherDescriptor *descriptor() const {
3565  return GetPointer<const armnnSerializer::GatherDescriptor *>(VT_DESCRIPTOR);
3566  }
3567  bool Verify(flatbuffers::Verifier &verifier) const {
3568  return VerifyTableStart(verifier) &&
3569  VerifyOffset(verifier, VT_BASE) &&
3570  verifier.VerifyTable(base()) &&
3571  VerifyOffset(verifier, VT_DESCRIPTOR) &&
3572  verifier.VerifyTable(descriptor()) &&
3573  verifier.EndTable();
3574  }
3575 };
3576 
3578  typedef GatherLayer Table;
3579  flatbuffers::FlatBufferBuilder &fbb_;
3580  flatbuffers::uoffset_t start_;
3581  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3582  fbb_.AddOffset(GatherLayer::VT_BASE, base);
3583  }
3584  void add_descriptor(flatbuffers::Offset<armnnSerializer::GatherDescriptor> descriptor) {
3585  fbb_.AddOffset(GatherLayer::VT_DESCRIPTOR, descriptor);
3586  }
3587  explicit GatherLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3588  : fbb_(_fbb) {
3589  start_ = fbb_.StartTable();
3590  }
3591  GatherLayerBuilder &operator=(const GatherLayerBuilder &);
3592  flatbuffers::Offset<GatherLayer> Finish() {
3593  const auto end = fbb_.EndTable(start_);
3594  auto o = flatbuffers::Offset<GatherLayer>(end);
3595  return o;
3596  }
3597 };
3598 
3599 inline flatbuffers::Offset<GatherLayer> CreateGatherLayer(
3600  flatbuffers::FlatBufferBuilder &_fbb,
3601  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3602  flatbuffers::Offset<armnnSerializer::GatherDescriptor> descriptor = 0) {
3603  GatherLayerBuilder builder_(_fbb);
3604  builder_.add_descriptor(descriptor);
3605  builder_.add_base(base);
3606  return builder_.Finish();
3607 }
3608 
3609 struct GatherDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3611  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3612  VT_AXIS = 4
3613  };
3614  int32_t axis() const {
3615  return GetField<int32_t>(VT_AXIS, 0);
3616  }
3617  bool Verify(flatbuffers::Verifier &verifier) const {
3618  return VerifyTableStart(verifier) &&
3619  VerifyField<int32_t>(verifier, VT_AXIS) &&
3620  verifier.EndTable();
3621  }
3622 };
3623 
3625  typedef GatherDescriptor Table;
3626  flatbuffers::FlatBufferBuilder &fbb_;
3627  flatbuffers::uoffset_t start_;
3628  void add_axis(int32_t axis) {
3629  fbb_.AddElement<int32_t>(GatherDescriptor::VT_AXIS, axis, 0);
3630  }
3631  explicit GatherDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3632  : fbb_(_fbb) {
3633  start_ = fbb_.StartTable();
3634  }
3636  flatbuffers::Offset<GatherDescriptor> Finish() {
3637  const auto end = fbb_.EndTable(start_);
3638  auto o = flatbuffers::Offset<GatherDescriptor>(end);
3639  return o;
3640  }
3641 };
3642 
3643 inline flatbuffers::Offset<GatherDescriptor> CreateGatherDescriptor(
3644  flatbuffers::FlatBufferBuilder &_fbb,
3645  int32_t axis = 0) {
3646  GatherDescriptorBuilder builder_(_fbb);
3647  builder_.add_axis(axis);
3648  return builder_.Finish();
3649 }
3650 
3651 /// @deprecated Use ComparisonLayer instead
3652 struct GreaterLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3654  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3655  VT_BASE = 4
3656  };
3657  const armnnSerializer::LayerBase *base() const {
3658  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3659  }
3660  bool Verify(flatbuffers::Verifier &verifier) const {
3661  return VerifyTableStart(verifier) &&
3662  VerifyOffset(verifier, VT_BASE) &&
3663  verifier.VerifyTable(base()) &&
3664  verifier.EndTable();
3665  }
3666 };
3667 
3669  typedef GreaterLayer Table;
3670  flatbuffers::FlatBufferBuilder &fbb_;
3671  flatbuffers::uoffset_t start_;
3672  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3673  fbb_.AddOffset(GreaterLayer::VT_BASE, base);
3674  }
3675  explicit GreaterLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3676  : fbb_(_fbb) {
3677  start_ = fbb_.StartTable();
3678  }
3679  GreaterLayerBuilder &operator=(const GreaterLayerBuilder &);
3680  flatbuffers::Offset<GreaterLayer> Finish() {
3681  const auto end = fbb_.EndTable(start_);
3682  auto o = flatbuffers::Offset<GreaterLayer>(end);
3683  return o;
3684  }
3685 };
3686 
3687 inline flatbuffers::Offset<GreaterLayer> CreateGreaterLayer(
3688  flatbuffers::FlatBufferBuilder &_fbb,
3689  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
3690  GreaterLayerBuilder builder_(_fbb);
3691  builder_.add_base(base);
3692  return builder_.Finish();
3693 }
3694 
3695 struct InputLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3697  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3698  VT_BASE = 4
3699  };
3700  const armnnSerializer::BindableLayerBase *base() const {
3701  return GetPointer<const armnnSerializer::BindableLayerBase *>(VT_BASE);
3702  }
3703  bool Verify(flatbuffers::Verifier &verifier) const {
3704  return VerifyTableStart(verifier) &&
3705  VerifyOffset(verifier, VT_BASE) &&
3706  verifier.VerifyTable(base()) &&
3707  verifier.EndTable();
3708  }
3709 };
3710 
3712  typedef InputLayer Table;
3713  flatbuffers::FlatBufferBuilder &fbb_;
3714  flatbuffers::uoffset_t start_;
3715  void add_base(flatbuffers::Offset<armnnSerializer::BindableLayerBase> base) {
3716  fbb_.AddOffset(InputLayer::VT_BASE, base);
3717  }
3718  explicit InputLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3719  : fbb_(_fbb) {
3720  start_ = fbb_.StartTable();
3721  }
3722  InputLayerBuilder &operator=(const InputLayerBuilder &);
3723  flatbuffers::Offset<InputLayer> Finish() {
3724  const auto end = fbb_.EndTable(start_);
3725  auto o = flatbuffers::Offset<InputLayer>(end);
3726  return o;
3727  }
3728 };
3729 
3730 inline flatbuffers::Offset<InputLayer> CreateInputLayer(
3731  flatbuffers::FlatBufferBuilder &_fbb,
3732  flatbuffers::Offset<armnnSerializer::BindableLayerBase> base = 0) {
3733  InputLayerBuilder builder_(_fbb);
3734  builder_.add_base(base);
3735  return builder_.Finish();
3736 }
3737 
3738 struct InstanceNormalizationLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3740  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3741  VT_BASE = 4,
3742  VT_DESCRIPTOR = 6
3743  };
3744  const armnnSerializer::LayerBase *base() const {
3745  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3746  }
3747  const armnnSerializer::InstanceNormalizationDescriptor *descriptor() const {
3748  return GetPointer<const armnnSerializer::InstanceNormalizationDescriptor *>(VT_DESCRIPTOR);
3749  }
3750  bool Verify(flatbuffers::Verifier &verifier) const {
3751  return VerifyTableStart(verifier) &&
3752  VerifyOffset(verifier, VT_BASE) &&
3753  verifier.VerifyTable(base()) &&
3754  VerifyOffset(verifier, VT_DESCRIPTOR) &&
3755  verifier.VerifyTable(descriptor()) &&
3756  verifier.EndTable();
3757  }
3758 };
3759 
3761  typedef InstanceNormalizationLayer Table;
3762  flatbuffers::FlatBufferBuilder &fbb_;
3763  flatbuffers::uoffset_t start_;
3764  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3765  fbb_.AddOffset(InstanceNormalizationLayer::VT_BASE, base);
3766  }
3767  void add_descriptor(flatbuffers::Offset<armnnSerializer::InstanceNormalizationDescriptor> descriptor) {
3768  fbb_.AddOffset(InstanceNormalizationLayer::VT_DESCRIPTOR, descriptor);
3769  }
3770  explicit InstanceNormalizationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3771  : fbb_(_fbb) {
3772  start_ = fbb_.StartTable();
3773  }
3775  flatbuffers::Offset<InstanceNormalizationLayer> Finish() {
3776  const auto end = fbb_.EndTable(start_);
3777  auto o = flatbuffers::Offset<InstanceNormalizationLayer>(end);
3778  return o;
3779  }
3780 };
3781 
3782 inline flatbuffers::Offset<InstanceNormalizationLayer> CreateInstanceNormalizationLayer(
3783  flatbuffers::FlatBufferBuilder &_fbb,
3784  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3785  flatbuffers::Offset<armnnSerializer::InstanceNormalizationDescriptor> descriptor = 0) {
3786  InstanceNormalizationLayerBuilder builder_(_fbb);
3787  builder_.add_descriptor(descriptor);
3788  builder_.add_base(base);
3789  return builder_.Finish();
3790 }
3791 
3792 struct InstanceNormalizationDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3794  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3796  VT_BETA = 6,
3797  VT_EPS = 8,
3798  VT_DATALAYOUT = 10
3799  };
3800  float gamma() const {
3801  return GetField<float>(VT_GAMMA, 0.0f);
3802  }
3803  float beta() const {
3804  return GetField<float>(VT_BETA, 0.0f);
3805  }
3806  float eps() const {
3807  return GetField<float>(VT_EPS, 0.0f);
3808  }
3810  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
3811  }
3812  bool Verify(flatbuffers::Verifier &verifier) const {
3813  return VerifyTableStart(verifier) &&
3814  VerifyField<float>(verifier, VT_GAMMA) &&
3815  VerifyField<float>(verifier, VT_BETA) &&
3816  VerifyField<float>(verifier, VT_EPS) &&
3817  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
3818  verifier.EndTable();
3819  }
3820 };
3821 
3823  typedef InstanceNormalizationDescriptor Table;
3824  flatbuffers::FlatBufferBuilder &fbb_;
3825  flatbuffers::uoffset_t start_;
3826  void add_gamma(float gamma) {
3827  fbb_.AddElement<float>(InstanceNormalizationDescriptor::VT_GAMMA, gamma, 0.0f);
3828  }
3829  void add_beta(float beta) {
3830  fbb_.AddElement<float>(InstanceNormalizationDescriptor::VT_BETA, beta, 0.0f);
3831  }
3832  void add_eps(float eps) {
3833  fbb_.AddElement<float>(InstanceNormalizationDescriptor::VT_EPS, eps, 0.0f);
3834  }
3836  fbb_.AddElement<int8_t>(InstanceNormalizationDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
3837  }
3838  explicit InstanceNormalizationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3839  : fbb_(_fbb) {
3840  start_ = fbb_.StartTable();
3841  }
3843  flatbuffers::Offset<InstanceNormalizationDescriptor> Finish() {
3844  const auto end = fbb_.EndTable(start_);
3845  auto o = flatbuffers::Offset<InstanceNormalizationDescriptor>(end);
3846  return o;
3847  }
3848 };
3849 
3850 inline flatbuffers::Offset<InstanceNormalizationDescriptor> CreateInstanceNormalizationDescriptor(
3851  flatbuffers::FlatBufferBuilder &_fbb,
3852  float gamma = 0.0f,
3853  float beta = 0.0f,
3854  float eps = 0.0f,
3857  builder_.add_eps(eps);
3858  builder_.add_beta(beta);
3859  builder_.add_gamma(gamma);
3860  builder_.add_dataLayout(dataLayout);
3861  return builder_.Finish();
3862 }
3863 
3864 struct LogSoftmaxLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3866  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3867  VT_BASE = 4,
3868  VT_DESCRIPTOR = 6
3869  };
3870  const armnnSerializer::LayerBase *base() const {
3871  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3872  }
3874  return GetPointer<const armnnSerializer::LogSoftmaxDescriptor *>(VT_DESCRIPTOR);
3875  }
3876  bool Verify(flatbuffers::Verifier &verifier) const {
3877  return VerifyTableStart(verifier) &&
3878  VerifyOffset(verifier, VT_BASE) &&
3879  verifier.VerifyTable(base()) &&
3880  VerifyOffset(verifier, VT_DESCRIPTOR) &&
3881  verifier.VerifyTable(descriptor()) &&
3882  verifier.EndTable();
3883  }
3884 };
3885 
3887  typedef LogSoftmaxLayer Table;
3888  flatbuffers::FlatBufferBuilder &fbb_;
3889  flatbuffers::uoffset_t start_;
3890  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3891  fbb_.AddOffset(LogSoftmaxLayer::VT_BASE, base);
3892  }
3893  void add_descriptor(flatbuffers::Offset<armnnSerializer::LogSoftmaxDescriptor> descriptor) {
3894  fbb_.AddOffset(LogSoftmaxLayer::VT_DESCRIPTOR, descriptor);
3895  }
3896  explicit LogSoftmaxLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3897  : fbb_(_fbb) {
3898  start_ = fbb_.StartTable();
3899  }
3900  LogSoftmaxLayerBuilder &operator=(const LogSoftmaxLayerBuilder &);
3901  flatbuffers::Offset<LogSoftmaxLayer> Finish() {
3902  const auto end = fbb_.EndTable(start_);
3903  auto o = flatbuffers::Offset<LogSoftmaxLayer>(end);
3904  return o;
3905  }
3906 };
3907 
3908 inline flatbuffers::Offset<LogSoftmaxLayer> CreateLogSoftmaxLayer(
3909  flatbuffers::FlatBufferBuilder &_fbb,
3910  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3911  flatbuffers::Offset<armnnSerializer::LogSoftmaxDescriptor> descriptor = 0) {
3912  LogSoftmaxLayerBuilder builder_(_fbb);
3913  builder_.add_descriptor(descriptor);
3914  builder_.add_base(base);
3915  return builder_.Finish();
3916 }
3917 
3918 struct LogSoftmaxDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3920  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3921  VT_BETA = 4,
3922  VT_AXIS = 6
3923  };
3924  float beta() const {
3925  return GetField<float>(VT_BETA, 1.0f);
3926  }
3927  int32_t axis() const {
3928  return GetField<int32_t>(VT_AXIS, -1);
3929  }
3930  bool Verify(flatbuffers::Verifier &verifier) const {
3931  return VerifyTableStart(verifier) &&
3932  VerifyField<float>(verifier, VT_BETA) &&
3933  VerifyField<int32_t>(verifier, VT_AXIS) &&
3934  verifier.EndTable();
3935  }
3936 };
3937 
3940  flatbuffers::FlatBufferBuilder &fbb_;
3941  flatbuffers::uoffset_t start_;
3942  void add_beta(float beta) {
3943  fbb_.AddElement<float>(LogSoftmaxDescriptor::VT_BETA, beta, 1.0f);
3944  }
3945  void add_axis(int32_t axis) {
3946  fbb_.AddElement<int32_t>(LogSoftmaxDescriptor::VT_AXIS, axis, -1);
3947  }
3948  explicit LogSoftmaxDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3949  : fbb_(_fbb) {
3950  start_ = fbb_.StartTable();
3951  }
3953  flatbuffers::Offset<LogSoftmaxDescriptor> Finish() {
3954  const auto end = fbb_.EndTable(start_);
3955  auto o = flatbuffers::Offset<LogSoftmaxDescriptor>(end);
3956  return o;
3957  }
3958 };
3959 
3960 inline flatbuffers::Offset<LogSoftmaxDescriptor> CreateLogSoftmaxDescriptor(
3961  flatbuffers::FlatBufferBuilder &_fbb,
3962  float beta = 1.0f,
3963  int32_t axis = -1) {
3964  LogSoftmaxDescriptorBuilder builder_(_fbb);
3965  builder_.add_axis(axis);
3966  builder_.add_beta(beta);
3967  return builder_.Finish();
3968 }
3969 
3970 struct L2NormalizationLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3972  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3973  VT_BASE = 4,
3974  VT_DESCRIPTOR = 6
3975  };
3976  const armnnSerializer::LayerBase *base() const {
3977  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3978  }
3979  const armnnSerializer::L2NormalizationDescriptor *descriptor() const {
3980  return GetPointer<const armnnSerializer::L2NormalizationDescriptor *>(VT_DESCRIPTOR);
3981  }
3982  bool Verify(flatbuffers::Verifier &verifier) const {
3983  return VerifyTableStart(verifier) &&
3984  VerifyOffset(verifier, VT_BASE) &&
3985  verifier.VerifyTable(base()) &&
3986  VerifyOffset(verifier, VT_DESCRIPTOR) &&
3987  verifier.VerifyTable(descriptor()) &&
3988  verifier.EndTable();
3989  }
3990 };
3991 
3993  typedef L2NormalizationLayer Table;
3994  flatbuffers::FlatBufferBuilder &fbb_;
3995  flatbuffers::uoffset_t start_;
3996  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3997  fbb_.AddOffset(L2NormalizationLayer::VT_BASE, base);
3998  }
3999  void add_descriptor(flatbuffers::Offset<armnnSerializer::L2NormalizationDescriptor> descriptor) {
4000  fbb_.AddOffset(L2NormalizationLayer::VT_DESCRIPTOR, descriptor);
4001  }
4002  explicit L2NormalizationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4003  : fbb_(_fbb) {
4004  start_ = fbb_.StartTable();
4005  }
4007  flatbuffers::Offset<L2NormalizationLayer> Finish() {
4008  const auto end = fbb_.EndTable(start_);
4009  auto o = flatbuffers::Offset<L2NormalizationLayer>(end);
4010  return o;
4011  }
4012 };
4013 
4014 inline flatbuffers::Offset<L2NormalizationLayer> CreateL2NormalizationLayer(
4015  flatbuffers::FlatBufferBuilder &_fbb,
4016  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4017  flatbuffers::Offset<armnnSerializer::L2NormalizationDescriptor> descriptor = 0) {
4018  L2NormalizationLayerBuilder builder_(_fbb);
4019  builder_.add_descriptor(descriptor);
4020  builder_.add_base(base);
4021  return builder_.Finish();
4022 }
4023 
4024 struct L2NormalizationDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4026  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4028  VT_EPS = 6
4029  };
4031  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 1));
4032  }
4033  float eps() const {
4034  return GetField<float>(VT_EPS, 1e-12f);
4035  }
4036  bool Verify(flatbuffers::Verifier &verifier) const {
4037  return VerifyTableStart(verifier) &&
4038  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
4039  VerifyField<float>(verifier, VT_EPS) &&
4040  verifier.EndTable();
4041  }
4042 };
4043 
4045  typedef L2NormalizationDescriptor Table;
4046  flatbuffers::FlatBufferBuilder &fbb_;
4047  flatbuffers::uoffset_t start_;
4049  fbb_.AddElement<int8_t>(L2NormalizationDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 1);
4050  }
4051  void add_eps(float eps) {
4052  fbb_.AddElement<float>(L2NormalizationDescriptor::VT_EPS, eps, 1e-12f);
4053  }
4054  explicit L2NormalizationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4055  : fbb_(_fbb) {
4056  start_ = fbb_.StartTable();
4057  }
4059  flatbuffers::Offset<L2NormalizationDescriptor> Finish() {
4060  const auto end = fbb_.EndTable(start_);
4061  auto o = flatbuffers::Offset<L2NormalizationDescriptor>(end);
4062  return o;
4063  }
4064 };
4065 
4066 inline flatbuffers::Offset<L2NormalizationDescriptor> CreateL2NormalizationDescriptor(
4067  flatbuffers::FlatBufferBuilder &_fbb,
4069  float eps = 1e-12f) {
4070  L2NormalizationDescriptorBuilder builder_(_fbb);
4071  builder_.add_eps(eps);
4072  builder_.add_dataLayout(dataLayout);
4073  return builder_.Finish();
4074 }
4075 
4076 struct LogicalBinaryDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4078  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4079  VT_OPERATION = 4
4080  };
4082  return static_cast<armnnSerializer::LogicalBinaryOperation>(GetField<int8_t>(VT_OPERATION, 0));
4083  }
4084  bool Verify(flatbuffers::Verifier &verifier) const {
4085  return VerifyTableStart(verifier) &&
4086  VerifyField<int8_t>(verifier, VT_OPERATION) &&
4087  verifier.EndTable();
4088  }
4089 };
4090 
4092  typedef LogicalBinaryDescriptor Table;
4093  flatbuffers::FlatBufferBuilder &fbb_;
4094  flatbuffers::uoffset_t start_;
4096  fbb_.AddElement<int8_t>(LogicalBinaryDescriptor::VT_OPERATION, static_cast<int8_t>(operation), 0);
4097  }
4098  explicit LogicalBinaryDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4099  : fbb_(_fbb) {
4100  start_ = fbb_.StartTable();
4101  }
4103  flatbuffers::Offset<LogicalBinaryDescriptor> Finish() {
4104  const auto end = fbb_.EndTable(start_);
4105  auto o = flatbuffers::Offset<LogicalBinaryDescriptor>(end);
4106  return o;
4107  }
4108 };
4109 
4110 inline flatbuffers::Offset<LogicalBinaryDescriptor> CreateLogicalBinaryDescriptor(
4111  flatbuffers::FlatBufferBuilder &_fbb,
4113  LogicalBinaryDescriptorBuilder builder_(_fbb);
4114  builder_.add_operation(operation);
4115  return builder_.Finish();
4116 }
4117 
4118 struct LogicalBinaryLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4120  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4121  VT_BASE = 4,
4122  VT_DESCRIPTOR = 6
4123  };
4124  const armnnSerializer::LayerBase *base() const {
4125  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4126  }
4127  const armnnSerializer::LogicalBinaryDescriptor *descriptor() const {
4128  return GetPointer<const armnnSerializer::LogicalBinaryDescriptor *>(VT_DESCRIPTOR);
4129  }
4130  bool Verify(flatbuffers::Verifier &verifier) const {
4131  return VerifyTableStart(verifier) &&
4132  VerifyOffset(verifier, VT_BASE) &&
4133  verifier.VerifyTable(base()) &&
4134  VerifyOffset(verifier, VT_DESCRIPTOR) &&
4135  verifier.VerifyTable(descriptor()) &&
4136  verifier.EndTable();
4137  }
4138 };
4139 
4141  typedef LogicalBinaryLayer Table;
4142  flatbuffers::FlatBufferBuilder &fbb_;
4143  flatbuffers::uoffset_t start_;
4144  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4145  fbb_.AddOffset(LogicalBinaryLayer::VT_BASE, base);
4146  }
4147  void add_descriptor(flatbuffers::Offset<armnnSerializer::LogicalBinaryDescriptor> descriptor) {
4148  fbb_.AddOffset(LogicalBinaryLayer::VT_DESCRIPTOR, descriptor);
4149  }
4150  explicit LogicalBinaryLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4151  : fbb_(_fbb) {
4152  start_ = fbb_.StartTable();
4153  }
4155  flatbuffers::Offset<LogicalBinaryLayer> Finish() {
4156  const auto end = fbb_.EndTable(start_);
4157  auto o = flatbuffers::Offset<LogicalBinaryLayer>(end);
4158  return o;
4159  }
4160 };
4161 
4162 inline flatbuffers::Offset<LogicalBinaryLayer> CreateLogicalBinaryLayer(
4163  flatbuffers::FlatBufferBuilder &_fbb,
4164  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4165  flatbuffers::Offset<armnnSerializer::LogicalBinaryDescriptor> descriptor = 0) {
4166  LogicalBinaryLayerBuilder builder_(_fbb);
4167  builder_.add_descriptor(descriptor);
4168  builder_.add_base(base);
4169  return builder_.Finish();
4170 }
4171 
4172 struct MinimumLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4174  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4175  VT_BASE = 4
4176  };
4177  const armnnSerializer::LayerBase *base() const {
4178  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4179  }
4180  bool Verify(flatbuffers::Verifier &verifier) const {
4181  return VerifyTableStart(verifier) &&
4182  VerifyOffset(verifier, VT_BASE) &&
4183  verifier.VerifyTable(base()) &&
4184  verifier.EndTable();
4185  }
4186 };
4187 
4189  typedef MinimumLayer Table;
4190  flatbuffers::FlatBufferBuilder &fbb_;
4191  flatbuffers::uoffset_t start_;
4192  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4193  fbb_.AddOffset(MinimumLayer::VT_BASE, base);
4194  }
4195  explicit MinimumLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4196  : fbb_(_fbb) {
4197  start_ = fbb_.StartTable();
4198  }
4199  MinimumLayerBuilder &operator=(const MinimumLayerBuilder &);
4200  flatbuffers::Offset<MinimumLayer> Finish() {
4201  const auto end = fbb_.EndTable(start_);
4202  auto o = flatbuffers::Offset<MinimumLayer>(end);
4203  return o;
4204  }
4205 };
4206 
4207 inline flatbuffers::Offset<MinimumLayer> CreateMinimumLayer(
4208  flatbuffers::FlatBufferBuilder &_fbb,
4209  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
4210  MinimumLayerBuilder builder_(_fbb);
4211  builder_.add_base(base);
4212  return builder_.Finish();
4213 }
4214 
4215 struct MaximumLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4217  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4218  VT_BASE = 4
4219  };
4220  const armnnSerializer::LayerBase *base() const {
4221  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4222  }
4223  bool Verify(flatbuffers::Verifier &verifier) const {
4224  return VerifyTableStart(verifier) &&
4225  VerifyOffset(verifier, VT_BASE) &&
4226  verifier.VerifyTable(base()) &&
4227  verifier.EndTable();
4228  }
4229 };
4230 
4232  typedef MaximumLayer Table;
4233  flatbuffers::FlatBufferBuilder &fbb_;
4234  flatbuffers::uoffset_t start_;
4235  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4236  fbb_.AddOffset(MaximumLayer::VT_BASE, base);
4237  }
4238  explicit MaximumLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4239  : fbb_(_fbb) {
4240  start_ = fbb_.StartTable();
4241  }
4242  MaximumLayerBuilder &operator=(const MaximumLayerBuilder &);
4243  flatbuffers::Offset<MaximumLayer> Finish() {
4244  const auto end = fbb_.EndTable(start_);
4245  auto o = flatbuffers::Offset<MaximumLayer>(end);
4246  return o;
4247  }
4248 };
4249 
4250 inline flatbuffers::Offset<MaximumLayer> CreateMaximumLayer(
4251  flatbuffers::FlatBufferBuilder &_fbb,
4252  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
4253  MaximumLayerBuilder builder_(_fbb);
4254  builder_.add_base(base);
4255  return builder_.Finish();
4256 }
4257 
4258 struct MultiplicationLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4260  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4261  VT_BASE = 4
4262  };
4263  const armnnSerializer::LayerBase *base() const {
4264  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4265  }
4266  bool Verify(flatbuffers::Verifier &verifier) const {
4267  return VerifyTableStart(verifier) &&
4268  VerifyOffset(verifier, VT_BASE) &&
4269  verifier.VerifyTable(base()) &&
4270  verifier.EndTable();
4271  }
4272 };
4273 
4275  typedef MultiplicationLayer Table;
4276  flatbuffers::FlatBufferBuilder &fbb_;
4277  flatbuffers::uoffset_t start_;
4278  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4279  fbb_.AddOffset(MultiplicationLayer::VT_BASE, base);
4280  }
4281  explicit MultiplicationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4282  : fbb_(_fbb) {
4283  start_ = fbb_.StartTable();
4284  }
4286  flatbuffers::Offset<MultiplicationLayer> Finish() {
4287  const auto end = fbb_.EndTable(start_);
4288  auto o = flatbuffers::Offset<MultiplicationLayer>(end);
4289  return o;
4290  }
4291 };
4292 
4293 inline flatbuffers::Offset<MultiplicationLayer> CreateMultiplicationLayer(
4294  flatbuffers::FlatBufferBuilder &_fbb,
4295  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
4296  MultiplicationLayerBuilder builder_(_fbb);
4297  builder_.add_base(base);
4298  return builder_.Finish();
4299 }
4300 
4301 struct Pooling2dLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4303  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4304  VT_BASE = 4,
4305  VT_DESCRIPTOR = 6
4306  };
4307  const armnnSerializer::LayerBase *base() const {
4308  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4309  }
4310  const armnnSerializer::Pooling2dDescriptor *descriptor() const {
4311  return GetPointer<const armnnSerializer::Pooling2dDescriptor *>(VT_DESCRIPTOR);
4312  }
4313  bool Verify(flatbuffers::Verifier &verifier) const {
4314  return VerifyTableStart(verifier) &&
4315  VerifyOffset(verifier, VT_BASE) &&
4316  verifier.VerifyTable(base()) &&
4317  VerifyOffset(verifier, VT_DESCRIPTOR) &&
4318  verifier.VerifyTable(descriptor()) &&
4319  verifier.EndTable();
4320  }
4321 };
4322 
4324  typedef Pooling2dLayer Table;
4325  flatbuffers::FlatBufferBuilder &fbb_;
4326  flatbuffers::uoffset_t start_;
4327  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4328  fbb_.AddOffset(Pooling2dLayer::VT_BASE, base);
4329  }
4330  void add_descriptor(flatbuffers::Offset<armnnSerializer::Pooling2dDescriptor> descriptor) {
4331  fbb_.AddOffset(Pooling2dLayer::VT_DESCRIPTOR, descriptor);
4332  }
4333  explicit Pooling2dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4334  : fbb_(_fbb) {
4335  start_ = fbb_.StartTable();
4336  }
4337  Pooling2dLayerBuilder &operator=(const Pooling2dLayerBuilder &);
4338  flatbuffers::Offset<Pooling2dLayer> Finish() {
4339  const auto end = fbb_.EndTable(start_);
4340  auto o = flatbuffers::Offset<Pooling2dLayer>(end);
4341  return o;
4342  }
4343 };
4344 
4345 inline flatbuffers::Offset<Pooling2dLayer> CreatePooling2dLayer(
4346  flatbuffers::FlatBufferBuilder &_fbb,
4347  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4348  flatbuffers::Offset<armnnSerializer::Pooling2dDescriptor> descriptor = 0) {
4349  Pooling2dLayerBuilder builder_(_fbb);
4350  builder_.add_descriptor(descriptor);
4351  builder_.add_base(base);
4352  return builder_.Finish();
4353 }
4354 
4355 struct Pooling2dDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4357  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4359  VT_PADLEFT = 6,
4360  VT_PADRIGHT = 8,
4361  VT_PADTOP = 10,
4362  VT_PADBOTTOM = 12,
4365  VT_STRIDEX = 18,
4366  VT_STRIDEY = 20,
4369  VT_DATALAYOUT = 26
4370  };
4372  return static_cast<armnnSerializer::PoolingAlgorithm>(GetField<int8_t>(VT_POOLTYPE, 0));
4373  }
4374  uint32_t padLeft() const {
4375  return GetField<uint32_t>(VT_PADLEFT, 0);
4376  }
4377  uint32_t padRight() const {
4378  return GetField<uint32_t>(VT_PADRIGHT, 0);
4379  }
4380  uint32_t padTop() const {
4381  return GetField<uint32_t>(VT_PADTOP, 0);
4382  }
4383  uint32_t padBottom() const {
4384  return GetField<uint32_t>(VT_PADBOTTOM, 0);
4385  }
4386  uint32_t poolWidth() const {
4387  return GetField<uint32_t>(VT_POOLWIDTH, 0);
4388  }
4389  uint32_t poolHeight() const {
4390  return GetField<uint32_t>(VT_POOLHEIGHT, 0);
4391  }
4392  uint32_t strideX() const {
4393  return GetField<uint32_t>(VT_STRIDEX, 0);
4394  }
4395  uint32_t strideY() const {
4396  return GetField<uint32_t>(VT_STRIDEY, 0);
4397  }
4399  return static_cast<armnnSerializer::OutputShapeRounding>(GetField<int8_t>(VT_OUTPUTSHAPEROUNDING, 0));
4400  }
4402  return static_cast<armnnSerializer::PaddingMethod>(GetField<int8_t>(VT_PADDINGMETHOD, 0));
4403  }
4405  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
4406  }
4407  bool Verify(flatbuffers::Verifier &verifier) const {
4408  return VerifyTableStart(verifier) &&
4409  VerifyField<int8_t>(verifier, VT_POOLTYPE) &&
4410  VerifyField<uint32_t>(verifier, VT_PADLEFT) &&
4411  VerifyField<uint32_t>(verifier, VT_PADRIGHT) &&
4412  VerifyField<uint32_t>(verifier, VT_PADTOP) &&
4413  VerifyField<uint32_t>(verifier, VT_PADBOTTOM) &&
4414  VerifyField<uint32_t>(verifier, VT_POOLWIDTH) &&
4415  VerifyField<uint32_t>(verifier, VT_POOLHEIGHT) &&
4416  VerifyField<uint32_t>(verifier, VT_STRIDEX) &&
4417  VerifyField<uint32_t>(verifier, VT_STRIDEY) &&
4418  VerifyField<int8_t>(verifier, VT_OUTPUTSHAPEROUNDING) &&
4419  VerifyField<int8_t>(verifier, VT_PADDINGMETHOD) &&
4420  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
4421  verifier.EndTable();
4422  }
4423 };
4424 
4426  typedef Pooling2dDescriptor Table;
4427  flatbuffers::FlatBufferBuilder &fbb_;
4428  flatbuffers::uoffset_t start_;
4430  fbb_.AddElement<int8_t>(Pooling2dDescriptor::VT_POOLTYPE, static_cast<int8_t>(poolType), 0);
4431  }
4432  void add_padLeft(uint32_t padLeft) {
4433  fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_PADLEFT, padLeft, 0);
4434  }
4435  void add_padRight(uint32_t padRight) {
4436  fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_PADRIGHT, padRight, 0);
4437  }
4438  void add_padTop(uint32_t padTop) {
4439  fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_PADTOP, padTop, 0);
4440  }
4441  void add_padBottom(uint32_t padBottom) {
4442  fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_PADBOTTOM, padBottom, 0);
4443  }
4444  void add_poolWidth(uint32_t poolWidth) {
4445  fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_POOLWIDTH, poolWidth, 0);
4446  }
4447  void add_poolHeight(uint32_t poolHeight) {
4448  fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_POOLHEIGHT, poolHeight, 0);
4449  }
4450  void add_strideX(uint32_t strideX) {
4451  fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_STRIDEX, strideX, 0);
4452  }
4453  void add_strideY(uint32_t strideY) {
4454  fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_STRIDEY, strideY, 0);
4455  }
4457  fbb_.AddElement<int8_t>(Pooling2dDescriptor::VT_OUTPUTSHAPEROUNDING, static_cast<int8_t>(outputShapeRounding), 0);
4458  }
4460  fbb_.AddElement<int8_t>(Pooling2dDescriptor::VT_PADDINGMETHOD, static_cast<int8_t>(paddingMethod), 0);
4461  }
4463  fbb_.AddElement<int8_t>(Pooling2dDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
4464  }
4465  explicit Pooling2dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4466  : fbb_(_fbb) {
4467  start_ = fbb_.StartTable();
4468  }
4470  flatbuffers::Offset<Pooling2dDescriptor> Finish() {
4471  const auto end = fbb_.EndTable(start_);
4472  auto o = flatbuffers::Offset<Pooling2dDescriptor>(end);
4473  return o;
4474  }
4475 };
4476 
4477 inline flatbuffers::Offset<Pooling2dDescriptor> CreatePooling2dDescriptor(
4478  flatbuffers::FlatBufferBuilder &_fbb,
4480  uint32_t padLeft = 0,
4481  uint32_t padRight = 0,
4482  uint32_t padTop = 0,
4483  uint32_t padBottom = 0,
4484  uint32_t poolWidth = 0,
4485  uint32_t poolHeight = 0,
4486  uint32_t strideX = 0,
4487  uint32_t strideY = 0,
4491  Pooling2dDescriptorBuilder builder_(_fbb);
4492  builder_.add_strideY(strideY);
4493  builder_.add_strideX(strideX);
4494  builder_.add_poolHeight(poolHeight);
4495  builder_.add_poolWidth(poolWidth);
4496  builder_.add_padBottom(padBottom);
4497  builder_.add_padTop(padTop);
4498  builder_.add_padRight(padRight);
4499  builder_.add_padLeft(padLeft);
4500  builder_.add_dataLayout(dataLayout);
4501  builder_.add_paddingMethod(paddingMethod);
4502  builder_.add_outputShapeRounding(outputShapeRounding);
4503  builder_.add_poolType(poolType);
4504  return builder_.Finish();
4505 }
4506 
4507 struct QuantizeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4509  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4510  VT_BASE = 4
4511  };
4512  const armnnSerializer::LayerBase *base() const {
4513  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4514  }
4515  bool Verify(flatbuffers::Verifier &verifier) const {
4516  return VerifyTableStart(verifier) &&
4517  VerifyOffset(verifier, VT_BASE) &&
4518  verifier.VerifyTable(base()) &&
4519  verifier.EndTable();
4520  }
4521 };
4522 
4524  typedef QuantizeLayer Table;
4525  flatbuffers::FlatBufferBuilder &fbb_;
4526  flatbuffers::uoffset_t start_;
4527  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4528  fbb_.AddOffset(QuantizeLayer::VT_BASE, base);
4529  }
4530  explicit QuantizeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4531  : fbb_(_fbb) {
4532  start_ = fbb_.StartTable();
4533  }
4534  QuantizeLayerBuilder &operator=(const QuantizeLayerBuilder &);
4535  flatbuffers::Offset<QuantizeLayer> Finish() {
4536  const auto end = fbb_.EndTable(start_);
4537  auto o = flatbuffers::Offset<QuantizeLayer>(end);
4538  return o;
4539  }
4540 };
4541 
4542 inline flatbuffers::Offset<QuantizeLayer> CreateQuantizeLayer(
4543  flatbuffers::FlatBufferBuilder &_fbb,
4544  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
4545  QuantizeLayerBuilder builder_(_fbb);
4546  builder_.add_base(base);
4547  return builder_.Finish();
4548 }
4549 
4550 struct SoftmaxLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4552  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4553  VT_BASE = 4,
4554  VT_DESCRIPTOR = 6
4555  };
4556  const armnnSerializer::LayerBase *base() const {
4557  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4558  }
4559  const armnnSerializer::SoftmaxDescriptor *descriptor() const {
4560  return GetPointer<const armnnSerializer::SoftmaxDescriptor *>(VT_DESCRIPTOR);
4561  }
4562  bool Verify(flatbuffers::Verifier &verifier) const {
4563  return VerifyTableStart(verifier) &&
4564  VerifyOffset(verifier, VT_BASE) &&
4565  verifier.VerifyTable(base()) &&
4566  VerifyOffset(verifier, VT_DESCRIPTOR) &&
4567  verifier.VerifyTable(descriptor()) &&
4568  verifier.EndTable();
4569  }
4570 };
4571 
4573  typedef SoftmaxLayer Table;
4574  flatbuffers::FlatBufferBuilder &fbb_;
4575  flatbuffers::uoffset_t start_;
4576  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4577  fbb_.AddOffset(SoftmaxLayer::VT_BASE, base);
4578  }
4579  void add_descriptor(flatbuffers::Offset<armnnSerializer::SoftmaxDescriptor> descriptor) {
4580  fbb_.AddOffset(SoftmaxLayer::VT_DESCRIPTOR, descriptor);
4581  }
4582  explicit SoftmaxLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4583  : fbb_(_fbb) {
4584  start_ = fbb_.StartTable();
4585  }
4586  SoftmaxLayerBuilder &operator=(const SoftmaxLayerBuilder &);
4587  flatbuffers::Offset<SoftmaxLayer> Finish() {
4588  const auto end = fbb_.EndTable(start_);
4589  auto o = flatbuffers::Offset<SoftmaxLayer>(end);
4590  return o;
4591  }
4592 };
4593 
4594 inline flatbuffers::Offset<SoftmaxLayer> CreateSoftmaxLayer(
4595  flatbuffers::FlatBufferBuilder &_fbb,
4596  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4597  flatbuffers::Offset<armnnSerializer::SoftmaxDescriptor> descriptor = 0) {
4598  SoftmaxLayerBuilder builder_(_fbb);
4599  builder_.add_descriptor(descriptor);
4600  builder_.add_base(base);
4601  return builder_.Finish();
4602 }
4603 
4604 struct SoftmaxDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4606  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4607  VT_BETA = 4
4608  };
4609  float beta() const {
4610  return GetField<float>(VT_BETA, 0.0f);
4611  }
4612  bool Verify(flatbuffers::Verifier &verifier) const {
4613  return VerifyTableStart(verifier) &&
4614  VerifyField<float>(verifier, VT_BETA) &&
4615  verifier.EndTable();
4616  }
4617 };
4618 
4620  typedef SoftmaxDescriptor Table;
4621  flatbuffers::FlatBufferBuilder &fbb_;
4622  flatbuffers::uoffset_t start_;
4623  void add_beta(float beta) {
4624  fbb_.AddElement<float>(SoftmaxDescriptor::VT_BETA, beta, 0.0f);
4625  }
4626  explicit SoftmaxDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4627  : fbb_(_fbb) {
4628  start_ = fbb_.StartTable();
4629  }
4631  flatbuffers::Offset<SoftmaxDescriptor> Finish() {
4632  const auto end = fbb_.EndTable(start_);
4633  auto o = flatbuffers::Offset<SoftmaxDescriptor>(end);
4634  return o;
4635  }
4636 };
4637 
4638 inline flatbuffers::Offset<SoftmaxDescriptor> CreateSoftmaxDescriptor(
4639  flatbuffers::FlatBufferBuilder &_fbb,
4640  float beta = 0.0f) {
4641  SoftmaxDescriptorBuilder builder_(_fbb);
4642  builder_.add_beta(beta);
4643  return builder_.Finish();
4644 }
4645 
4646 struct DepthwiseConvolution2dLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4648  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4649  VT_BASE = 4,
4650  VT_DESCRIPTOR = 6,
4651  VT_WEIGHTS = 8,
4652  VT_BIASES = 10
4653  };
4654  const armnnSerializer::LayerBase *base() const {
4655  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4656  }
4657  const armnnSerializer::DepthwiseConvolution2dDescriptor *descriptor() const {
4658  return GetPointer<const armnnSerializer::DepthwiseConvolution2dDescriptor *>(VT_DESCRIPTOR);
4659  }
4660  const armnnSerializer::ConstTensor *weights() const {
4661  return GetPointer<const armnnSerializer::ConstTensor *>(VT_WEIGHTS);
4662  }
4663  const armnnSerializer::ConstTensor *biases() const {
4664  return GetPointer<const armnnSerializer::ConstTensor *>(VT_BIASES);
4665  }
4666  bool Verify(flatbuffers::Verifier &verifier) const {
4667  return VerifyTableStart(verifier) &&
4668  VerifyOffset(verifier, VT_BASE) &&
4669  verifier.VerifyTable(base()) &&
4670  VerifyOffset(verifier, VT_DESCRIPTOR) &&
4671  verifier.VerifyTable(descriptor()) &&
4672  VerifyOffset(verifier, VT_WEIGHTS) &&
4673  verifier.VerifyTable(weights()) &&
4674  VerifyOffset(verifier, VT_BIASES) &&
4675  verifier.VerifyTable(biases()) &&
4676  verifier.EndTable();
4677  }
4678 };
4679 
4681  typedef DepthwiseConvolution2dLayer Table;
4682  flatbuffers::FlatBufferBuilder &fbb_;
4683  flatbuffers::uoffset_t start_;
4684  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4685  fbb_.AddOffset(DepthwiseConvolution2dLayer::VT_BASE, base);
4686  }
4687  void add_descriptor(flatbuffers::Offset<armnnSerializer::DepthwiseConvolution2dDescriptor> descriptor) {
4688  fbb_.AddOffset(DepthwiseConvolution2dLayer::VT_DESCRIPTOR, descriptor);
4689  }
4690  void add_weights(flatbuffers::Offset<armnnSerializer::ConstTensor> weights) {
4691  fbb_.AddOffset(DepthwiseConvolution2dLayer::VT_WEIGHTS, weights);
4692  }
4693  void add_biases(flatbuffers::Offset<armnnSerializer::ConstTensor> biases) {
4694  fbb_.AddOffset(DepthwiseConvolution2dLayer::VT_BIASES, biases);
4695  }
4696  explicit DepthwiseConvolution2dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4697  : fbb_(_fbb) {
4698  start_ = fbb_.StartTable();
4699  }
4701  flatbuffers::Offset<DepthwiseConvolution2dLayer> Finish() {
4702  const auto end = fbb_.EndTable(start_);
4703  auto o = flatbuffers::Offset<DepthwiseConvolution2dLayer>(end);
4704  return o;
4705  }
4706 };
4707 
4708 inline flatbuffers::Offset<DepthwiseConvolution2dLayer> CreateDepthwiseConvolution2dLayer(
4709  flatbuffers::FlatBufferBuilder &_fbb,
4710  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4711  flatbuffers::Offset<armnnSerializer::DepthwiseConvolution2dDescriptor> descriptor = 0,
4712  flatbuffers::Offset<armnnSerializer::ConstTensor> weights = 0,
4713  flatbuffers::Offset<armnnSerializer::ConstTensor> biases = 0) {
4714  DepthwiseConvolution2dLayerBuilder builder_(_fbb);
4715  builder_.add_biases(biases);
4716  builder_.add_weights(weights);
4717  builder_.add_descriptor(descriptor);
4718  builder_.add_base(base);
4719  return builder_.Finish();
4720 }
4721 
4722 struct DepthwiseConvolution2dDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4724  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4725  VT_PADLEFT = 4,
4726  VT_PADRIGHT = 6,
4727  VT_PADTOP = 8,
4728  VT_PADBOTTOM = 10,
4729  VT_STRIDEX = 12,
4730  VT_STRIDEY = 14,
4731  VT_DILATIONX = 16,
4732  VT_DILATIONY = 18,
4733  VT_BIASENABLED = 20,
4734  VT_DATALAYOUT = 22
4735  };
4736  uint32_t padLeft() const {
4737  return GetField<uint32_t>(VT_PADLEFT, 0);
4738  }
4739  uint32_t padRight() const {
4740  return GetField<uint32_t>(VT_PADRIGHT, 0);
4741  }
4742  uint32_t padTop() const {
4743  return GetField<uint32_t>(VT_PADTOP, 0);
4744  }
4745  uint32_t padBottom() const {
4746  return GetField<uint32_t>(VT_PADBOTTOM, 0);
4747  }
4748  uint32_t strideX() const {
4749  return GetField<uint32_t>(VT_STRIDEX, 0);
4750  }
4751  uint32_t strideY() const {
4752  return GetField<uint32_t>(VT_STRIDEY, 0);
4753  }
4754  uint32_t dilationX() const {
4755  return GetField<uint32_t>(VT_DILATIONX, 1);
4756  }
4757  uint32_t dilationY() const {
4758  return GetField<uint32_t>(VT_DILATIONY, 1);
4759  }
4760  bool biasEnabled() const {
4761  return GetField<uint8_t>(VT_BIASENABLED, 0) != 0;
4762  }
4764  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 1));
4765  }
4766  bool Verify(flatbuffers::Verifier &verifier) const {
4767  return VerifyTableStart(verifier) &&
4768  VerifyField<uint32_t>(verifier, VT_PADLEFT) &&
4769  VerifyField<uint32_t>(verifier, VT_PADRIGHT) &&
4770  VerifyField<uint32_t>(verifier, VT_PADTOP) &&
4771  VerifyField<uint32_t>(verifier, VT_PADBOTTOM) &&
4772  VerifyField<uint32_t>(verifier, VT_STRIDEX) &&
4773  VerifyField<uint32_t>(verifier, VT_STRIDEY) &&
4774  VerifyField<uint32_t>(verifier, VT_DILATIONX) &&
4775  VerifyField<uint32_t>(verifier, VT_DILATIONY) &&
4776  VerifyField<uint8_t>(verifier, VT_BIASENABLED) &&
4777  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
4778  verifier.EndTable();
4779  }
4780 };
4781 
4783  typedef DepthwiseConvolution2dDescriptor Table;
4784  flatbuffers::FlatBufferBuilder &fbb_;
4785  flatbuffers::uoffset_t start_;
4786  void add_padLeft(uint32_t padLeft) {
4787  fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_PADLEFT, padLeft, 0);
4788  }
4789  void add_padRight(uint32_t padRight) {
4790  fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_PADRIGHT, padRight, 0);
4791  }
4792  void add_padTop(uint32_t padTop) {
4793  fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_PADTOP, padTop, 0);
4794  }
4795  void add_padBottom(uint32_t padBottom) {
4796  fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_PADBOTTOM, padBottom, 0);
4797  }
4798  void add_strideX(uint32_t strideX) {
4799  fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_STRIDEX, strideX, 0);
4800  }
4801  void add_strideY(uint32_t strideY) {
4802  fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_STRIDEY, strideY, 0);
4803  }
4804  void add_dilationX(uint32_t dilationX) {
4805  fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_DILATIONX, dilationX, 1);
4806  }
4807  void add_dilationY(uint32_t dilationY) {
4808  fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_DILATIONY, dilationY, 1);
4809  }
4810  void add_biasEnabled(bool biasEnabled) {
4811  fbb_.AddElement<uint8_t>(DepthwiseConvolution2dDescriptor::VT_BIASENABLED, static_cast<uint8_t>(biasEnabled), 0);
4812  }
4814  fbb_.AddElement<int8_t>(DepthwiseConvolution2dDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 1);
4815  }
4816  explicit DepthwiseConvolution2dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4817  : fbb_(_fbb) {
4818  start_ = fbb_.StartTable();
4819  }
4821  flatbuffers::Offset<DepthwiseConvolution2dDescriptor> Finish() {
4822  const auto end = fbb_.EndTable(start_);
4823  auto o = flatbuffers::Offset<DepthwiseConvolution2dDescriptor>(end);
4824  return o;
4825  }
4826 };
4827 
4828 inline flatbuffers::Offset<DepthwiseConvolution2dDescriptor> CreateDepthwiseConvolution2dDescriptor(
4829  flatbuffers::FlatBufferBuilder &_fbb,
4830  uint32_t padLeft = 0,
4831  uint32_t padRight = 0,
4832  uint32_t padTop = 0,
4833  uint32_t padBottom = 0,
4834  uint32_t strideX = 0,
4835  uint32_t strideY = 0,
4836  uint32_t dilationX = 1,
4837  uint32_t dilationY = 1,
4838  bool biasEnabled = false,
4841  builder_.add_dilationY(dilationY);
4842  builder_.add_dilationX(dilationX);
4843  builder_.add_strideY(strideY);
4844  builder_.add_strideX(strideX);
4845  builder_.add_padBottom(padBottom);
4846  builder_.add_padTop(padTop);
4847  builder_.add_padRight(padRight);
4848  builder_.add_padLeft(padLeft);
4849  builder_.add_dataLayout(dataLayout);
4850  builder_.add_biasEnabled(biasEnabled);
4851  return builder_.Finish();
4852 }
4853 
4854 struct OutputLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4856  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4857  VT_BASE = 4
4858  };
4859  const armnnSerializer::BindableLayerBase *base() const {
4860  return GetPointer<const armnnSerializer::BindableLayerBase *>(VT_BASE);
4861  }
4862  bool Verify(flatbuffers::Verifier &verifier) const {
4863  return VerifyTableStart(verifier) &&
4864  VerifyOffset(verifier, VT_BASE) &&
4865  verifier.VerifyTable(base()) &&
4866  verifier.EndTable();
4867  }
4868 };
4869 
4871  typedef OutputLayer Table;
4872  flatbuffers::FlatBufferBuilder &fbb_;
4873  flatbuffers::uoffset_t start_;
4874  void add_base(flatbuffers::Offset<armnnSerializer::BindableLayerBase> base) {
4875  fbb_.AddOffset(OutputLayer::VT_BASE, base);
4876  }
4877  explicit OutputLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4878  : fbb_(_fbb) {
4879  start_ = fbb_.StartTable();
4880  }
4881  OutputLayerBuilder &operator=(const OutputLayerBuilder &);
4882  flatbuffers::Offset<OutputLayer> Finish() {
4883  const auto end = fbb_.EndTable(start_);
4884  auto o = flatbuffers::Offset<OutputLayer>(end);
4885  return o;
4886  }
4887 };
4888 
4889 inline flatbuffers::Offset<OutputLayer> CreateOutputLayer(
4890  flatbuffers::FlatBufferBuilder &_fbb,
4891  flatbuffers::Offset<armnnSerializer::BindableLayerBase> base = 0) {
4892  OutputLayerBuilder builder_(_fbb);
4893  builder_.add_base(base);
4894  return builder_.Finish();
4895 }
4896 
4897 struct ReshapeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4899  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4900  VT_BASE = 4,
4901  VT_DESCRIPTOR = 6
4902  };
4903  const armnnSerializer::LayerBase *base() const {
4904  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4905  }
4906  const armnnSerializer::ReshapeDescriptor *descriptor() const {
4907  return GetPointer<const armnnSerializer::ReshapeDescriptor *>(VT_DESCRIPTOR);
4908  }
4909  bool Verify(flatbuffers::Verifier &verifier) const {
4910  return VerifyTableStart(verifier) &&
4911  VerifyOffset(verifier, VT_BASE) &&
4912  verifier.VerifyTable(base()) &&
4913  VerifyOffset(verifier, VT_DESCRIPTOR) &&
4914  verifier.VerifyTable(descriptor()) &&
4915  verifier.EndTable();
4916  }
4917 };
4918 
4920  typedef ReshapeLayer Table;
4921  flatbuffers::FlatBufferBuilder &fbb_;
4922  flatbuffers::uoffset_t start_;
4923  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4924  fbb_.AddOffset(ReshapeLayer::VT_BASE, base);
4925  }
4926  void add_descriptor(flatbuffers::Offset<armnnSerializer::ReshapeDescriptor> descriptor) {
4927  fbb_.AddOffset(ReshapeLayer::VT_DESCRIPTOR, descriptor);
4928  }
4929  explicit ReshapeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4930  : fbb_(_fbb) {
4931  start_ = fbb_.StartTable();
4932  }
4933  ReshapeLayerBuilder &operator=(const ReshapeLayerBuilder &);
4934  flatbuffers::Offset<ReshapeLayer> Finish() {
4935  const auto end = fbb_.EndTable(start_);
4936  auto o = flatbuffers::Offset<ReshapeLayer>(end);
4937  return o;
4938  }
4939 };
4940 
4941 inline flatbuffers::Offset<ReshapeLayer> CreateReshapeLayer(
4942  flatbuffers::FlatBufferBuilder &_fbb,
4943  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4944  flatbuffers::Offset<armnnSerializer::ReshapeDescriptor> descriptor = 0) {
4945  ReshapeLayerBuilder builder_(_fbb);
4946  builder_.add_descriptor(descriptor);
4947  builder_.add_base(base);
4948  return builder_.Finish();
4949 }
4950 
4951 struct ReshapeDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4953  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4954  VT_TARGETSHAPE = 4
4955  };
4956  const flatbuffers::Vector<uint32_t> *targetShape() const {
4957  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_TARGETSHAPE);
4958  }
4959  bool Verify(flatbuffers::Verifier &verifier) const {
4960  return VerifyTableStart(verifier) &&
4961  VerifyOffset(verifier, VT_TARGETSHAPE) &&
4962  verifier.VerifyVector(targetShape()) &&
4963  verifier.EndTable();
4964  }
4965 };
4966 
4968  typedef ReshapeDescriptor Table;
4969  flatbuffers::FlatBufferBuilder &fbb_;
4970  flatbuffers::uoffset_t start_;
4971  void add_targetShape(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> targetShape) {
4972  fbb_.AddOffset(ReshapeDescriptor::VT_TARGETSHAPE, targetShape);
4973  }
4974  explicit ReshapeDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4975  : fbb_(_fbb) {
4976  start_ = fbb_.StartTable();
4977  }
4979  flatbuffers::Offset<ReshapeDescriptor> Finish() {
4980  const auto end = fbb_.EndTable(start_);
4981  auto o = flatbuffers::Offset<ReshapeDescriptor>(end);
4982  return o;
4983  }
4984 };
4985 
4986 inline flatbuffers::Offset<ReshapeDescriptor> CreateReshapeDescriptor(
4987  flatbuffers::FlatBufferBuilder &_fbb,
4988  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> targetShape = 0) {
4989  ReshapeDescriptorBuilder builder_(_fbb);
4990  builder_.add_targetShape(targetShape);
4991  return builder_.Finish();
4992 }
4993 
4994 inline flatbuffers::Offset<ReshapeDescriptor> CreateReshapeDescriptorDirect(
4995  flatbuffers::FlatBufferBuilder &_fbb,
4996  const std::vector<uint32_t> *targetShape = nullptr) {
4997  auto targetShape__ = targetShape ? _fbb.CreateVector<uint32_t>(*targetShape) : 0;
4999  _fbb,
5000  targetShape__);
5001 }
5002 
5003 struct PermuteLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5005  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5006  VT_BASE = 4,
5007  VT_DESCRIPTOR = 6
5008  };
5009  const armnnSerializer::LayerBase *base() const {
5010  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5011  }
5012  const armnnSerializer::PermuteDescriptor *descriptor() const {
5013  return GetPointer<const armnnSerializer::PermuteDescriptor *>(VT_DESCRIPTOR);
5014  }
5015  bool Verify(flatbuffers::Verifier &verifier) const {
5016  return VerifyTableStart(verifier) &&
5017  VerifyOffset(verifier, VT_BASE) &&
5018  verifier.VerifyTable(base()) &&
5019  VerifyOffset(verifier, VT_DESCRIPTOR) &&
5020  verifier.VerifyTable(descriptor()) &&
5021  verifier.EndTable();
5022  }
5023 };
5024 
5026  typedef PermuteLayer Table;
5027  flatbuffers::FlatBufferBuilder &fbb_;
5028  flatbuffers::uoffset_t start_;
5029  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5030  fbb_.AddOffset(PermuteLayer::VT_BASE, base);
5031  }
5032  void add_descriptor(flatbuffers::Offset<armnnSerializer::PermuteDescriptor> descriptor) {
5033  fbb_.AddOffset(PermuteLayer::VT_DESCRIPTOR, descriptor);
5034  }
5035  explicit PermuteLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5036  : fbb_(_fbb) {
5037  start_ = fbb_.StartTable();
5038  }
5039  PermuteLayerBuilder &operator=(const PermuteLayerBuilder &);
5040  flatbuffers::Offset<PermuteLayer> Finish() {
5041  const auto end = fbb_.EndTable(start_);
5042  auto o = flatbuffers::Offset<PermuteLayer>(end);
5043  return o;
5044  }
5045 };
5046 
5047 inline flatbuffers::Offset<PermuteLayer> CreatePermuteLayer(
5048  flatbuffers::FlatBufferBuilder &_fbb,
5049  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
5050  flatbuffers::Offset<armnnSerializer::PermuteDescriptor> descriptor = 0) {
5051  PermuteLayerBuilder builder_(_fbb);
5052  builder_.add_descriptor(descriptor);
5053  builder_.add_base(base);
5054  return builder_.Finish();
5055 }
5056 
5057 struct PermuteDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5059  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5060  VT_DIMMAPPINGS = 4
5061  };
5062  const flatbuffers::Vector<uint32_t> *dimMappings() const {
5063  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_DIMMAPPINGS);
5064  }
5065  bool Verify(flatbuffers::Verifier &verifier) const {
5066  return VerifyTableStart(verifier) &&
5067  VerifyOffset(verifier, VT_DIMMAPPINGS) &&
5068  verifier.VerifyVector(dimMappings()) &&
5069  verifier.EndTable();
5070  }
5071 };
5072 
5074  typedef PermuteDescriptor Table;
5075  flatbuffers::FlatBufferBuilder &fbb_;
5076  flatbuffers::uoffset_t start_;
5077  void add_dimMappings(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> dimMappings) {
5078  fbb_.AddOffset(PermuteDescriptor::VT_DIMMAPPINGS, dimMappings);
5079  }
5080  explicit PermuteDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5081  : fbb_(_fbb) {
5082  start_ = fbb_.StartTable();
5083  }
5085  flatbuffers::Offset<PermuteDescriptor> Finish() {
5086  const auto end = fbb_.EndTable(start_);
5087  auto o = flatbuffers::Offset<PermuteDescriptor>(end);
5088  return o;
5089  }
5090 };
5091 
5092 inline flatbuffers::Offset<PermuteDescriptor> CreatePermuteDescriptor(
5093  flatbuffers::FlatBufferBuilder &_fbb,
5094  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> dimMappings = 0) {
5095  PermuteDescriptorBuilder builder_(_fbb);
5096  builder_.add_dimMappings(dimMappings);
5097  return builder_.Finish();
5098 }
5099 
5100 inline flatbuffers::Offset<PermuteDescriptor> CreatePermuteDescriptorDirect(
5101  flatbuffers::FlatBufferBuilder &_fbb,
5102  const std::vector<uint32_t> *dimMappings = nullptr) {
5103  auto dimMappings__ = dimMappings ? _fbb.CreateVector<uint32_t>(*dimMappings) : 0;
5105  _fbb,
5106  dimMappings__);
5107 }
5108 
5109 struct SpaceToBatchNdLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5111  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5112  VT_BASE = 4,
5113  VT_DESCRIPTOR = 6
5114  };
5115  const armnnSerializer::LayerBase *base() const {
5116  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5117  }
5118  const armnnSerializer::SpaceToBatchNdDescriptor *descriptor() const {
5119  return GetPointer<const armnnSerializer::SpaceToBatchNdDescriptor *>(VT_DESCRIPTOR);
5120  }
5121  bool Verify(flatbuffers::Verifier &verifier) const {
5122  return VerifyTableStart(verifier) &&
5123  VerifyOffset(verifier, VT_BASE) &&
5124  verifier.VerifyTable(base()) &&
5125  VerifyOffset(verifier, VT_DESCRIPTOR) &&
5126  verifier.VerifyTable(descriptor()) &&
5127  verifier.EndTable();
5128  }
5129 };
5130 
5132  typedef SpaceToBatchNdLayer Table;
5133  flatbuffers::FlatBufferBuilder &fbb_;
5134  flatbuffers::uoffset_t start_;
5135  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5136  fbb_.AddOffset(SpaceToBatchNdLayer::VT_BASE, base);
5137  }
5138  void add_descriptor(flatbuffers::Offset<armnnSerializer::SpaceToBatchNdDescriptor> descriptor) {
5139  fbb_.AddOffset(SpaceToBatchNdLayer::VT_DESCRIPTOR, descriptor);
5140  }
5141  explicit SpaceToBatchNdLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5142  : fbb_(_fbb) {
5143  start_ = fbb_.StartTable();
5144  }
5146  flatbuffers::Offset<SpaceToBatchNdLayer> Finish() {
5147  const auto end = fbb_.EndTable(start_);
5148  auto o = flatbuffers::Offset<SpaceToBatchNdLayer>(end);
5149  return o;
5150  }
5151 };
5152 
5153 inline flatbuffers::Offset<SpaceToBatchNdLayer> CreateSpaceToBatchNdLayer(
5154  flatbuffers::FlatBufferBuilder &_fbb,
5155  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
5156  flatbuffers::Offset<armnnSerializer::SpaceToBatchNdDescriptor> descriptor = 0) {
5157  SpaceToBatchNdLayerBuilder builder_(_fbb);
5158  builder_.add_descriptor(descriptor);
5159  builder_.add_base(base);
5160  return builder_.Finish();
5161 }
5162 
5163 struct SpaceToBatchNdDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5165  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5168  VT_DATALAYOUT = 8
5169  };
5170  const flatbuffers::Vector<uint32_t> *blockShape() const {
5171  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_BLOCKSHAPE);
5172  }
5173  const flatbuffers::Vector<uint32_t> *padList() const {
5174  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_PADLIST);
5175  }
5177  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
5178  }
5179  bool Verify(flatbuffers::Verifier &verifier) const {
5180  return VerifyTableStart(verifier) &&
5181  VerifyOffset(verifier, VT_BLOCKSHAPE) &&
5182  verifier.VerifyVector(blockShape()) &&
5183  VerifyOffset(verifier, VT_PADLIST) &&
5184  verifier.VerifyVector(padList()) &&
5185  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
5186  verifier.EndTable();
5187  }
5188 };
5189 
5191  typedef SpaceToBatchNdDescriptor Table;
5192  flatbuffers::FlatBufferBuilder &fbb_;
5193  flatbuffers::uoffset_t start_;
5194  void add_blockShape(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> blockShape) {
5195  fbb_.AddOffset(SpaceToBatchNdDescriptor::VT_BLOCKSHAPE, blockShape);
5196  }
5197  void add_padList(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> padList) {
5198  fbb_.AddOffset(SpaceToBatchNdDescriptor::VT_PADLIST, padList);
5199  }
5201  fbb_.AddElement<int8_t>(SpaceToBatchNdDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
5202  }
5203  explicit SpaceToBatchNdDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5204  : fbb_(_fbb) {
5205  start_ = fbb_.StartTable();
5206  }
5208  flatbuffers::Offset<SpaceToBatchNdDescriptor> Finish() {
5209  const auto end = fbb_.EndTable(start_);
5210  auto o = flatbuffers::Offset<SpaceToBatchNdDescriptor>(end);
5211  return o;
5212  }
5213 };
5214 
5215 inline flatbuffers::Offset<SpaceToBatchNdDescriptor> CreateSpaceToBatchNdDescriptor(
5216  flatbuffers::FlatBufferBuilder &_fbb,
5217  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> blockShape = 0,
5218  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> padList = 0,
5220  SpaceToBatchNdDescriptorBuilder builder_(_fbb);
5221  builder_.add_padList(padList);
5222  builder_.add_blockShape(blockShape);
5223  builder_.add_dataLayout(dataLayout);
5224  return builder_.Finish();
5225 }
5226 
5227 inline flatbuffers::Offset<SpaceToBatchNdDescriptor> CreateSpaceToBatchNdDescriptorDirect(
5228  flatbuffers::FlatBufferBuilder &_fbb,
5229  const std::vector<uint32_t> *blockShape = nullptr,
5230  const std::vector<uint32_t> *padList = nullptr,
5232  auto blockShape__ = blockShape ? _fbb.CreateVector<uint32_t>(*blockShape) : 0;
5233  auto padList__ = padList ? _fbb.CreateVector<uint32_t>(*padList) : 0;
5235  _fbb,
5236  blockShape__,
5237  padList__,
5238  dataLayout);
5239 }
5240 
5241 struct SpaceToDepthLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5243  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5244  VT_BASE = 4,
5245  VT_DESCRIPTOR = 6
5246  };
5247  const armnnSerializer::LayerBase *base() const {
5248  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5249  }
5250  const armnnSerializer::SpaceToDepthDescriptor *descriptor() const {
5251  return GetPointer<const armnnSerializer::SpaceToDepthDescriptor *>(VT_DESCRIPTOR);
5252  }
5253  bool Verify(flatbuffers::Verifier &verifier) const {
5254  return VerifyTableStart(verifier) &&
5255  VerifyOffset(verifier, VT_BASE) &&
5256  verifier.VerifyTable(base()) &&
5257  VerifyOffset(verifier, VT_DESCRIPTOR) &&
5258  verifier.VerifyTable(descriptor()) &&
5259  verifier.EndTable();
5260  }
5261 };
5262 
5264  typedef SpaceToDepthLayer Table;
5265  flatbuffers::FlatBufferBuilder &fbb_;
5266  flatbuffers::uoffset_t start_;
5267  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5268  fbb_.AddOffset(SpaceToDepthLayer::VT_BASE, base);
5269  }
5270  void add_descriptor(flatbuffers::Offset<armnnSerializer::SpaceToDepthDescriptor> descriptor) {
5271  fbb_.AddOffset(SpaceToDepthLayer::VT_DESCRIPTOR, descriptor);
5272  }
5273  explicit SpaceToDepthLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5274  : fbb_(_fbb) {
5275  start_ = fbb_.StartTable();
5276  }
5278  flatbuffers::Offset<SpaceToDepthLayer> Finish() {
5279  const auto end = fbb_.EndTable(start_);
5280  auto o = flatbuffers::Offset<SpaceToDepthLayer>(end);
5281  return o;
5282  }
5283 };
5284 
5285 inline flatbuffers::Offset<SpaceToDepthLayer> CreateSpaceToDepthLayer(
5286  flatbuffers::FlatBufferBuilder &_fbb,
5287  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
5288  flatbuffers::Offset<armnnSerializer::SpaceToDepthDescriptor> descriptor = 0) {
5289  SpaceToDepthLayerBuilder builder_(_fbb);
5290  builder_.add_descriptor(descriptor);
5291  builder_.add_base(base);
5292  return builder_.Finish();
5293 }
5294 
5295 struct SpaceToDepthDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5297  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5298  VT_BLOCKSIZE = 4,
5299  VT_DATALAYOUT = 6
5300  };
5301  uint32_t blockSize() const {
5302  return GetField<uint32_t>(VT_BLOCKSIZE, 0);
5303  }
5305  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
5306  }
5307  bool Verify(flatbuffers::Verifier &verifier) const {
5308  return VerifyTableStart(verifier) &&
5309  VerifyField<uint32_t>(verifier, VT_BLOCKSIZE) &&
5310  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
5311  verifier.EndTable();
5312  }
5313 };
5314 
5316  typedef SpaceToDepthDescriptor Table;
5317  flatbuffers::FlatBufferBuilder &fbb_;
5318  flatbuffers::uoffset_t start_;
5319  void add_blockSize(uint32_t blockSize) {
5320  fbb_.AddElement<uint32_t>(SpaceToDepthDescriptor::VT_BLOCKSIZE, blockSize, 0);
5321  }
5323  fbb_.AddElement<int8_t>(SpaceToDepthDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
5324  }
5325  explicit SpaceToDepthDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5326  : fbb_(_fbb) {
5327  start_ = fbb_.StartTable();
5328  }
5330  flatbuffers::Offset<SpaceToDepthDescriptor> Finish() {
5331  const auto end = fbb_.EndTable(start_);
5332  auto o = flatbuffers::Offset<SpaceToDepthDescriptor>(end);
5333  return o;
5334  }
5335 };
5336 
5337 inline flatbuffers::Offset<SpaceToDepthDescriptor> CreateSpaceToDepthDescriptor(
5338  flatbuffers::FlatBufferBuilder &_fbb,
5339  uint32_t blockSize = 0,
5341  SpaceToDepthDescriptorBuilder builder_(_fbb);
5342  builder_.add_blockSize(blockSize);
5343  builder_.add_dataLayout(dataLayout);
5344  return builder_.Finish();
5345 }
5346 
5347 struct SubtractionLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5349  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5350  VT_BASE = 4
5351  };
5352  const armnnSerializer::LayerBase *base() const {
5353  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5354  }
5355  bool Verify(flatbuffers::Verifier &verifier) const {
5356  return VerifyTableStart(verifier) &&
5357  VerifyOffset(verifier, VT_BASE) &&
5358  verifier.VerifyTable(base()) &&
5359  verifier.EndTable();
5360  }
5361 };
5362 
5364  typedef SubtractionLayer Table;
5365  flatbuffers::FlatBufferBuilder &fbb_;
5366  flatbuffers::uoffset_t start_;
5367  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5368  fbb_.AddOffset(SubtractionLayer::VT_BASE, base);
5369  }
5370  explicit SubtractionLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5371  : fbb_(_fbb) {
5372  start_ = fbb_.StartTable();
5373  }
5375  flatbuffers::Offset<SubtractionLayer> Finish() {
5376  const auto end = fbb_.EndTable(start_);
5377  auto o = flatbuffers::Offset<SubtractionLayer>(end);
5378  return o;
5379  }
5380 };
5381 
5382 inline flatbuffers::Offset<SubtractionLayer> CreateSubtractionLayer(
5383  flatbuffers::FlatBufferBuilder &_fbb,
5384  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
5385  SubtractionLayerBuilder builder_(_fbb);
5386  builder_.add_base(base);
5387  return builder_.Finish();
5388 }
5389 
5390 struct BatchToSpaceNdLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5392  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5393  VT_BASE = 4,
5394  VT_DESCRIPTOR = 6
5395  };
5396  const armnnSerializer::LayerBase *base() const {
5397  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5398  }
5399  const armnnSerializer::BatchToSpaceNdDescriptor *descriptor() const {
5400  return GetPointer<const armnnSerializer::BatchToSpaceNdDescriptor *>(VT_DESCRIPTOR);
5401  }
5402  bool Verify(flatbuffers::Verifier &verifier) const {
5403  return VerifyTableStart(verifier) &&
5404  VerifyOffset(verifier, VT_BASE) &&
5405  verifier.VerifyTable(base()) &&
5406  VerifyOffset(verifier, VT_DESCRIPTOR) &&
5407  verifier.VerifyTable(descriptor()) &&
5408  verifier.EndTable();
5409  }
5410 };
5411 
5413  typedef BatchToSpaceNdLayer Table;
5414  flatbuffers::FlatBufferBuilder &fbb_;
5415  flatbuffers::uoffset_t start_;
5416  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5417  fbb_.AddOffset(BatchToSpaceNdLayer::VT_BASE, base);
5418  }
5419  void add_descriptor(flatbuffers::Offset<armnnSerializer::BatchToSpaceNdDescriptor> descriptor) {
5420  fbb_.AddOffset(BatchToSpaceNdLayer::VT_DESCRIPTOR, descriptor);
5421  }
5422  explicit BatchToSpaceNdLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5423  : fbb_(_fbb) {
5424  start_ = fbb_.StartTable();
5425  }
5427  flatbuffers::Offset<BatchToSpaceNdLayer> Finish() {
5428  const auto end = fbb_.EndTable(start_);
5429  auto o = flatbuffers::Offset<BatchToSpaceNdLayer>(end);
5430  return o;
5431  }
5432 };
5433 
5434 inline flatbuffers::Offset<BatchToSpaceNdLayer> CreateBatchToSpaceNdLayer(
5435  flatbuffers::FlatBufferBuilder &_fbb,
5436  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
5437  flatbuffers::Offset<armnnSerializer::BatchToSpaceNdDescriptor> descriptor = 0) {
5438  BatchToSpaceNdLayerBuilder builder_(_fbb);
5439  builder_.add_descriptor(descriptor);
5440  builder_.add_base(base);
5441  return builder_.Finish();
5442 }
5443 
5444 struct BatchToSpaceNdDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5446  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5447  VT_BLOCKSHAPE = 4,
5449  VT_DATALAYOUT = 8
5450  };
5451  const flatbuffers::Vector<uint32_t> *blockShape() const {
5452  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_BLOCKSHAPE);
5453  }
5454  const flatbuffers::Vector<uint32_t> *crops() const {
5455  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_CROPS);
5456  }
5458  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
5459  }
5460  bool Verify(flatbuffers::Verifier &verifier) const {
5461  return VerifyTableStart(verifier) &&
5462  VerifyOffset(verifier, VT_BLOCKSHAPE) &&
5463  verifier.VerifyVector(blockShape()) &&
5464  VerifyOffset(verifier, VT_CROPS) &&
5465  verifier.VerifyVector(crops()) &&
5466  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
5467  verifier.EndTable();
5468  }
5469 };
5470 
5472  typedef BatchToSpaceNdDescriptor Table;
5473  flatbuffers::FlatBufferBuilder &fbb_;
5474  flatbuffers::uoffset_t start_;
5475  void add_blockShape(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> blockShape) {
5476  fbb_.AddOffset(BatchToSpaceNdDescriptor::VT_BLOCKSHAPE, blockShape);
5477  }
5478  void add_crops(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> crops) {
5479  fbb_.AddOffset(BatchToSpaceNdDescriptor::VT_CROPS, crops);
5480  }
5482  fbb_.AddElement<int8_t>(BatchToSpaceNdDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
5483  }
5484  explicit BatchToSpaceNdDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5485  : fbb_(_fbb) {
5486  start_ = fbb_.StartTable();
5487  }
5489  flatbuffers::Offset<BatchToSpaceNdDescriptor> Finish() {
5490  const auto end = fbb_.EndTable(start_);
5491  auto o = flatbuffers::Offset<BatchToSpaceNdDescriptor>(end);
5492  return o;
5493  }
5494 };
5495 
5496 inline flatbuffers::Offset<BatchToSpaceNdDescriptor> CreateBatchToSpaceNdDescriptor(
5497  flatbuffers::FlatBufferBuilder &_fbb,
5498  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> blockShape = 0,
5499  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> crops = 0,
5501  BatchToSpaceNdDescriptorBuilder builder_(_fbb);
5502  builder_.add_crops(crops);
5503  builder_.add_blockShape(blockShape);
5504  builder_.add_dataLayout(dataLayout);
5505  return builder_.Finish();
5506 }
5507 
5508 inline flatbuffers::Offset<BatchToSpaceNdDescriptor> CreateBatchToSpaceNdDescriptorDirect(
5509  flatbuffers::FlatBufferBuilder &_fbb,
5510  const std::vector<uint32_t> *blockShape = nullptr,
5511  const std::vector<uint32_t> *crops = nullptr,
5513  auto blockShape__ = blockShape ? _fbb.CreateVector<uint32_t>(*blockShape) : 0;
5514  auto crops__ = crops ? _fbb.CreateVector<uint32_t>(*crops) : 0;
5516  _fbb,
5517  blockShape__,
5518  crops__,
5519  dataLayout);
5520 }
5521 
5522 struct NormalizationLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5524  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5525  VT_BASE = 4,
5526  VT_DESCRIPTOR = 6
5527  };
5528  const armnnSerializer::LayerBase *base() const {
5529  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5530  }
5531  const armnnSerializer::NormalizationDescriptor *descriptor() const {
5532  return GetPointer<const armnnSerializer::NormalizationDescriptor *>(VT_DESCRIPTOR);
5533  }
5534  bool Verify(flatbuffers::Verifier &verifier) const {
5535  return VerifyTableStart(verifier) &&
5536  VerifyOffset(verifier, VT_BASE) &&
5537  verifier.VerifyTable(base()) &&
5538  VerifyOffset(verifier, VT_DESCRIPTOR) &&
5539  verifier.VerifyTable(descriptor()) &&
5540  verifier.EndTable();
5541  }
5542 };
5543 
5545  typedef NormalizationLayer Table;
5546  flatbuffers::FlatBufferBuilder &fbb_;
5547  flatbuffers::uoffset_t start_;
5548  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5549  fbb_.AddOffset(NormalizationLayer::VT_BASE, base);
5550  }
5551  void add_descriptor(flatbuffers::Offset<armnnSerializer::NormalizationDescriptor> descriptor) {
5552  fbb_.AddOffset(NormalizationLayer::VT_DESCRIPTOR, descriptor);
5553  }
5554  explicit NormalizationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5555  : fbb_(_fbb) {
5556  start_ = fbb_.StartTable();
5557  }
5559  flatbuffers::Offset<NormalizationLayer> Finish() {
5560  const auto end = fbb_.EndTable(start_);
5561  auto o = flatbuffers::Offset<NormalizationLayer>(end);
5562  return o;
5563  }
5564 };
5565 
5566 inline flatbuffers::Offset<NormalizationLayer> CreateNormalizationLayer(
5567  flatbuffers::FlatBufferBuilder &_fbb,
5568  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
5569  flatbuffers::Offset<armnnSerializer::NormalizationDescriptor> descriptor = 0) {
5570  NormalizationLayerBuilder builder_(_fbb);
5571  builder_.add_descriptor(descriptor);
5572  builder_.add_base(base);
5573  return builder_.Finish();
5574 }
5575 
5576 struct NormalizationDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5578  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5582  VT_ALPHA = 10,
5583  VT_BETA = 12,
5584  VT_K = 14,
5585  VT_DATALAYOUT = 16
5586  };
5588  return static_cast<armnnSerializer::NormalizationAlgorithmChannel>(GetField<int8_t>(VT_NORMCHANNELTYPE, 0));
5589  }
5591  return static_cast<armnnSerializer::NormalizationAlgorithmMethod>(GetField<int8_t>(VT_NORMMETHODTYPE, 0));
5592  }
5593  uint32_t normSize() const {
5594  return GetField<uint32_t>(VT_NORMSIZE, 0);
5595  }
5596  float alpha() const {
5597  return GetField<float>(VT_ALPHA, 0.0f);
5598  }
5599  float beta() const {
5600  return GetField<float>(VT_BETA, 0.0f);
5601  }
5602  float k() const {
5603  return GetField<float>(VT_K, 0.0f);
5604  }
5606  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 1));
5607  }
5608  bool Verify(flatbuffers::Verifier &verifier) const {
5609  return VerifyTableStart(verifier) &&
5610  VerifyField<int8_t>(verifier, VT_NORMCHANNELTYPE) &&
5611  VerifyField<int8_t>(verifier, VT_NORMMETHODTYPE) &&
5612  VerifyField<uint32_t>(verifier, VT_NORMSIZE) &&
5613  VerifyField<float>(verifier, VT_ALPHA) &&
5614  VerifyField<float>(verifier, VT_BETA) &&
5615  VerifyField<float>(verifier, VT_K) &&
5616  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
5617  verifier.EndTable();
5618  }
5619 };
5620 
5622  typedef NormalizationDescriptor Table;
5623  flatbuffers::FlatBufferBuilder &fbb_;
5624  flatbuffers::uoffset_t start_;
5626  fbb_.AddElement<int8_t>(NormalizationDescriptor::VT_NORMCHANNELTYPE, static_cast<int8_t>(normChannelType), 0);
5627  }
5629  fbb_.AddElement<int8_t>(NormalizationDescriptor::VT_NORMMETHODTYPE, static_cast<int8_t>(normMethodType), 0);
5630  }
5631  void add_normSize(uint32_t normSize) {
5632  fbb_.AddElement<uint32_t>(NormalizationDescriptor::VT_NORMSIZE, normSize, 0);
5633  }
5634  void add_alpha(float alpha) {
5635  fbb_.AddElement<float>(NormalizationDescriptor::VT_ALPHA, alpha, 0.0f);
5636  }
5637  void add_beta(float beta) {
5638  fbb_.AddElement<float>(NormalizationDescriptor::VT_BETA, beta, 0.0f);
5639  }
5640  void add_k(float k) {
5641  fbb_.AddElement<float>(NormalizationDescriptor::VT_K, k, 0.0f);
5642  }
5644  fbb_.AddElement<int8_t>(NormalizationDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 1);
5645  }
5646  explicit NormalizationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5647  : fbb_(_fbb) {
5648  start_ = fbb_.StartTable();
5649  }
5651  flatbuffers::Offset<NormalizationDescriptor> Finish() {
5652  const auto end = fbb_.EndTable(start_);
5653  auto o = flatbuffers::Offset<NormalizationDescriptor>(end);
5654  return o;
5655  }
5656 };
5657 
5658 inline flatbuffers::Offset<NormalizationDescriptor> CreateNormalizationDescriptor(
5659  flatbuffers::FlatBufferBuilder &_fbb,
5662  uint32_t normSize = 0,
5663  float alpha = 0.0f,
5664  float beta = 0.0f,
5665  float k = 0.0f,
5667  NormalizationDescriptorBuilder builder_(_fbb);
5668  builder_.add_k(k);
5669  builder_.add_beta(beta);
5670  builder_.add_alpha(alpha);
5671  builder_.add_normSize(normSize);
5672  builder_.add_dataLayout(dataLayout);
5673  builder_.add_normMethodType(normMethodType);
5674  builder_.add_normChannelType(normChannelType);
5675  return builder_.Finish();
5676 }
5677 
5678 struct MeanLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5680  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5681  VT_BASE = 4,
5682  VT_DESCRIPTOR = 6
5683  };
5684  const armnnSerializer::LayerBase *base() const {
5685  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5686  }
5687  const armnnSerializer::MeanDescriptor *descriptor() const {
5688  return GetPointer<const armnnSerializer::MeanDescriptor *>(VT_DESCRIPTOR);
5689  }
5690  bool Verify(flatbuffers::Verifier &verifier) const {
5691  return VerifyTableStart(verifier) &&
5692  VerifyOffset(verifier, VT_BASE) &&
5693  verifier.VerifyTable(base()) &&
5694  VerifyOffset(verifier, VT_DESCRIPTOR) &&
5695  verifier.VerifyTable(descriptor()) &&
5696  verifier.EndTable();
5697  }
5698 };
5699 
5701  typedef MeanLayer Table;
5702  flatbuffers::FlatBufferBuilder &fbb_;
5703  flatbuffers::uoffset_t start_;
5704  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5705  fbb_.AddOffset(MeanLayer::VT_BASE, base);
5706  }
5707  void add_descriptor(flatbuffers::Offset<armnnSerializer::MeanDescriptor> descriptor) {
5708  fbb_.AddOffset(MeanLayer::VT_DESCRIPTOR, descriptor);
5709  }
5710  explicit MeanLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5711  : fbb_(_fbb) {
5712  start_ = fbb_.StartTable();
5713  }
5714  MeanLayerBuilder &operator=(const MeanLayerBuilder &);
5715  flatbuffers::Offset<MeanLayer> Finish() {
5716  const auto end = fbb_.EndTable(start_);
5717  auto o = flatbuffers::Offset<MeanLayer>(end);
5718  return o;
5719  }
5720 };
5721 
5722 inline flatbuffers::Offset<MeanLayer> CreateMeanLayer(
5723  flatbuffers::FlatBufferBuilder &_fbb,
5724  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
5725  flatbuffers::Offset<armnnSerializer::MeanDescriptor> descriptor = 0) {
5726  MeanLayerBuilder builder_(_fbb);
5727  builder_.add_descriptor(descriptor);
5728  builder_.add_base(base);
5729  return builder_.Finish();
5730 }
5731 
5732 struct MeanDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5734  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5735  VT_AXIS = 4,
5736  VT_KEEPDIMS = 6
5737  };
5738  const flatbuffers::Vector<uint32_t> *axis() const {
5739  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_AXIS);
5740  }
5741  bool keepDims() const {
5742  return GetField<uint8_t>(VT_KEEPDIMS, 0) != 0;
5743  }
5744  bool Verify(flatbuffers::Verifier &verifier) const {
5745  return VerifyTableStart(verifier) &&
5746  VerifyOffset(verifier, VT_AXIS) &&
5747  verifier.VerifyVector(axis()) &&
5748  VerifyField<uint8_t>(verifier, VT_KEEPDIMS) &&
5749  verifier.EndTable();
5750  }
5751 };
5752 
5754  typedef MeanDescriptor Table;
5755  flatbuffers::FlatBufferBuilder &fbb_;
5756  flatbuffers::uoffset_t start_;
5757  void add_axis(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> axis) {
5758  fbb_.AddOffset(MeanDescriptor::VT_AXIS, axis);
5759  }
5760  void add_keepDims(bool keepDims) {
5761  fbb_.AddElement<uint8_t>(MeanDescriptor::VT_KEEPDIMS, static_cast<uint8_t>(keepDims), 0);
5762  }
5763  explicit MeanDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5764  : fbb_(_fbb) {
5765  start_ = fbb_.StartTable();
5766  }
5767  MeanDescriptorBuilder &operator=(const MeanDescriptorBuilder &);
5768  flatbuffers::Offset<MeanDescriptor> Finish() {
5769  const auto end = fbb_.EndTable(start_);
5770  auto o = flatbuffers::Offset<MeanDescriptor>(end);
5771  return o;
5772  }
5773 };
5774 
5775 inline flatbuffers::Offset<MeanDescriptor> CreateMeanDescriptor(
5776  flatbuffers::FlatBufferBuilder &_fbb,
5777  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> axis = 0,
5778  bool keepDims = false) {
5779  MeanDescriptorBuilder builder_(_fbb);
5780  builder_.add_axis(axis);
5781  builder_.add_keepDims(keepDims);
5782  return builder_.Finish();
5783 }
5784 
5785 inline flatbuffers::Offset<MeanDescriptor> CreateMeanDescriptorDirect(
5786  flatbuffers::FlatBufferBuilder &_fbb,
5787  const std::vector<uint32_t> *axis = nullptr,
5788  bool keepDims = false) {
5789  auto axis__ = axis ? _fbb.CreateVector<uint32_t>(*axis) : 0;
5791  _fbb,
5792  axis__,
5793  keepDims);
5794 }
5795 
5796 struct PadLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5798  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5799  VT_BASE = 4,
5800  VT_DESCRIPTOR = 6
5801  };
5802  const armnnSerializer::LayerBase *base() const {
5803  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5804  }
5805  const armnnSerializer::PadDescriptor *descriptor() const {
5806  return GetPointer<const armnnSerializer::PadDescriptor *>(VT_DESCRIPTOR);
5807  }
5808  bool Verify(flatbuffers::Verifier &verifier) const {
5809  return VerifyTableStart(verifier) &&
5810  VerifyOffset(verifier, VT_BASE) &&
5811  verifier.VerifyTable(base()) &&
5812  VerifyOffset(verifier, VT_DESCRIPTOR) &&
5813  verifier.VerifyTable(descriptor()) &&
5814  verifier.EndTable();
5815  }
5816 };
5817 
5819  typedef PadLayer Table;
5820  flatbuffers::FlatBufferBuilder &fbb_;
5821  flatbuffers::uoffset_t start_;
5822  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5823  fbb_.AddOffset(PadLayer::VT_BASE, base);
5824  }
5825  void add_descriptor(flatbuffers::Offset<armnnSerializer::PadDescriptor> descriptor) {
5826  fbb_.AddOffset(PadLayer::VT_DESCRIPTOR, descriptor);
5827  }
5828  explicit PadLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5829  : fbb_(_fbb) {
5830  start_ = fbb_.StartTable();
5831  }
5832  PadLayerBuilder &operator=(const PadLayerBuilder &);
5833  flatbuffers::Offset<PadLayer> Finish() {
5834  const auto end = fbb_.EndTable(start_);
5835  auto o = flatbuffers::Offset<PadLayer>(end);
5836  return o;
5837  }
5838 };
5839 
5840 inline flatbuffers::Offset<PadLayer> CreatePadLayer(
5841  flatbuffers::FlatBufferBuilder &_fbb,
5842  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
5843  flatbuffers::Offset<armnnSerializer::PadDescriptor> descriptor = 0) {
5844  PadLayerBuilder builder_(_fbb);
5845  builder_.add_descriptor(descriptor);
5846  builder_.add_base(base);
5847  return builder_.Finish();
5848 }
5849 
5850 struct PadDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5852  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5853  VT_PADLIST = 4,
5854  VT_PADVALUE = 6
5855  };
5856  const flatbuffers::Vector<uint32_t> *padList() const {
5857  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_PADLIST);
5858  }
5859  float padValue() const {
5860  return GetField<float>(VT_PADVALUE, 0.0f);
5861  }
5862  bool Verify(flatbuffers::Verifier &verifier) const {
5863  return VerifyTableStart(verifier) &&
5864  VerifyOffset(verifier, VT_PADLIST) &&
5865  verifier.VerifyVector(padList()) &&
5866  VerifyField<float>(verifier, VT_PADVALUE) &&
5867  verifier.EndTable();
5868  }
5869 };
5870 
5872  typedef PadDescriptor Table;
5873  flatbuffers::FlatBufferBuilder &fbb_;
5874  flatbuffers::uoffset_t start_;
5875  void add_padList(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> padList) {
5876  fbb_.AddOffset(PadDescriptor::VT_PADLIST, padList);
5877  }
5878  void add_padValue(float padValue) {
5879  fbb_.AddElement<float>(PadDescriptor::VT_PADVALUE, padValue, 0.0f);
5880  }
5881  explicit PadDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5882  : fbb_(_fbb) {
5883  start_ = fbb_.StartTable();
5884  }
5885  PadDescriptorBuilder &operator=(const PadDescriptorBuilder &);
5886  flatbuffers::Offset<PadDescriptor> Finish() {
5887  const auto end = fbb_.EndTable(start_);
5888  auto o = flatbuffers::Offset<PadDescriptor>(end);
5889  return o;
5890  }
5891 };
5892 
5893 inline flatbuffers::Offset<PadDescriptor> CreatePadDescriptor(
5894  flatbuffers::FlatBufferBuilder &_fbb,
5895  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> padList = 0,
5896  float padValue = 0.0f) {
5897  PadDescriptorBuilder builder_(_fbb);
5898  builder_.add_padValue(padValue);
5899  builder_.add_padList(padList);
5900  return builder_.Finish();
5901 }
5902 
5903 inline flatbuffers::Offset<PadDescriptor> CreatePadDescriptorDirect(
5904  flatbuffers::FlatBufferBuilder &_fbb,
5905  const std::vector<uint32_t> *padList = nullptr,
5906  float padValue = 0.0f) {
5907  auto padList__ = padList ? _fbb.CreateVector<uint32_t>(*padList) : 0;
5909  _fbb,
5910  padList__,
5911  padValue);
5912 }
5913 
5914 /// @deprecated Use ElementwiseUnaryLayer instead
5915 struct RsqrtLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5917  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5918  VT_BASE = 4
5919  };
5920  const armnnSerializer::LayerBase *base() const {
5921  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5922  }
5923  bool Verify(flatbuffers::Verifier &verifier) const {
5924  return VerifyTableStart(verifier) &&
5925  VerifyOffset(verifier, VT_BASE) &&
5926  verifier.VerifyTable(base()) &&
5927  verifier.EndTable();
5928  }
5929 };
5930 
5932  typedef RsqrtLayer Table;
5933  flatbuffers::FlatBufferBuilder &fbb_;
5934  flatbuffers::uoffset_t start_;
5935  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5936  fbb_.AddOffset(RsqrtLayer::VT_BASE, base);
5937  }
5938  explicit RsqrtLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5939  : fbb_(_fbb) {
5940  start_ = fbb_.StartTable();
5941  }
5942  RsqrtLayerBuilder &operator=(const RsqrtLayerBuilder &);
5943  flatbuffers::Offset<RsqrtLayer> Finish() {
5944  const auto end = fbb_.EndTable(start_);
5945  auto o = flatbuffers::Offset<RsqrtLayer>(end);
5946  return o;
5947  }
5948 };
5949 
5950 inline flatbuffers::Offset<RsqrtLayer> CreateRsqrtLayer(
5951  flatbuffers::FlatBufferBuilder &_fbb,
5952  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
5953  RsqrtLayerBuilder builder_(_fbb);
5954  builder_.add_base(base);
5955  return builder_.Finish();
5956 }
5957 
5958 struct BatchNormalizationLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5960  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5961  VT_BASE = 4,
5962  VT_DESCRIPTOR = 6,
5963  VT_MEAN = 8,
5965  VT_BETA = 12,
5966  VT_GAMMA = 14
5967  };
5968  const armnnSerializer::LayerBase *base() const {
5969  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5970  }
5971  const armnnSerializer::BatchNormalizationDescriptor *descriptor() const {
5972  return GetPointer<const armnnSerializer::BatchNormalizationDescriptor *>(VT_DESCRIPTOR);
5973  }
5974  const armnnSerializer::ConstTensor *mean() const {
5975  return GetPointer<const armnnSerializer::ConstTensor *>(VT_MEAN);
5976  }
5977  const armnnSerializer::ConstTensor *variance() const {
5978  return GetPointer<const armnnSerializer::ConstTensor *>(VT_VARIANCE);
5979  }
5980  const armnnSerializer::ConstTensor *beta() const {
5981  return GetPointer<const armnnSerializer::ConstTensor *>(VT_BETA);
5982  }
5983  const armnnSerializer::ConstTensor *gamma() const {
5984  return GetPointer<const armnnSerializer::ConstTensor *>(VT_GAMMA);
5985  }
5986  bool Verify(flatbuffers::Verifier &verifier) const {
5987  return VerifyTableStart(verifier) &&
5988  VerifyOffset(verifier, VT_BASE) &&
5989  verifier.VerifyTable(base()) &&
5990  VerifyOffset(verifier, VT_DESCRIPTOR) &&
5991  verifier.VerifyTable(descriptor()) &&
5992  VerifyOffset(verifier, VT_MEAN) &&
5993  verifier.VerifyTable(mean()) &&
5994  VerifyOffset(verifier, VT_VARIANCE) &&
5995  verifier.VerifyTable(variance()) &&
5996  VerifyOffset(verifier, VT_BETA) &&
5997  verifier.VerifyTable(beta()) &&
5998  VerifyOffset(verifier, VT_GAMMA) &&
5999  verifier.VerifyTable(gamma()) &&
6000  verifier.EndTable();
6001  }
6002 };
6003 
6005  typedef BatchNormalizationLayer Table;
6006  flatbuffers::FlatBufferBuilder &fbb_;
6007  flatbuffers::uoffset_t start_;
6008  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6009  fbb_.AddOffset(BatchNormalizationLayer::VT_BASE, base);
6010  }
6011  void add_descriptor(flatbuffers::Offset<armnnSerializer::BatchNormalizationDescriptor> descriptor) {
6012  fbb_.AddOffset(BatchNormalizationLayer::VT_DESCRIPTOR, descriptor);
6013  }
6014  void add_mean(flatbuffers::Offset<armnnSerializer::ConstTensor> mean) {
6015  fbb_.AddOffset(BatchNormalizationLayer::VT_MEAN, mean);
6016  }
6017  void add_variance(flatbuffers::Offset<armnnSerializer::ConstTensor> variance) {
6018  fbb_.AddOffset(BatchNormalizationLayer::VT_VARIANCE, variance);
6019  }
6020  void add_beta(flatbuffers::Offset<armnnSerializer::ConstTensor> beta) {
6021  fbb_.AddOffset(BatchNormalizationLayer::VT_BETA, beta);
6022  }
6023  void add_gamma(flatbuffers::Offset<armnnSerializer::ConstTensor> gamma) {
6024  fbb_.AddOffset(BatchNormalizationLayer::VT_GAMMA, gamma);
6025  }
6026  explicit BatchNormalizationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6027  : fbb_(_fbb) {
6028  start_ = fbb_.StartTable();
6029  }
6031  flatbuffers::Offset<BatchNormalizationLayer> Finish() {
6032  const auto end = fbb_.EndTable(start_);
6033  auto o = flatbuffers::Offset<BatchNormalizationLayer>(end);
6034  return o;
6035  }
6036 };
6037 
6038 inline flatbuffers::Offset<BatchNormalizationLayer> CreateBatchNormalizationLayer(
6039  flatbuffers::FlatBufferBuilder &_fbb,
6040  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6041  flatbuffers::Offset<armnnSerializer::BatchNormalizationDescriptor> descriptor = 0,
6042  flatbuffers::Offset<armnnSerializer::ConstTensor> mean = 0,
6043  flatbuffers::Offset<armnnSerializer::ConstTensor> variance = 0,
6044  flatbuffers::Offset<armnnSerializer::ConstTensor> beta = 0,
6045  flatbuffers::Offset<armnnSerializer::ConstTensor> gamma = 0) {
6046  BatchNormalizationLayerBuilder builder_(_fbb);
6047  builder_.add_gamma(gamma);
6048  builder_.add_beta(beta);
6049  builder_.add_variance(variance);
6050  builder_.add_mean(mean);
6051  builder_.add_descriptor(descriptor);
6052  builder_.add_base(base);
6053  return builder_.Finish();
6054 }
6055 
6056 struct BatchNormalizationDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6058  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6059  VT_EPS = 4,
6060  VT_DATALAYOUT = 6
6061  };
6062  float eps() const {
6063  return GetField<float>(VT_EPS, 0.0f);
6064  }
6066  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
6067  }
6068  bool Verify(flatbuffers::Verifier &verifier) const {
6069  return VerifyTableStart(verifier) &&
6070  VerifyField<float>(verifier, VT_EPS) &&
6071  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
6072  verifier.EndTable();
6073  }
6074 };
6075 
6077  typedef BatchNormalizationDescriptor Table;
6078  flatbuffers::FlatBufferBuilder &fbb_;
6079  flatbuffers::uoffset_t start_;
6080  void add_eps(float eps) {
6081  fbb_.AddElement<float>(BatchNormalizationDescriptor::VT_EPS, eps, 0.0f);
6082  }
6084  fbb_.AddElement<int8_t>(BatchNormalizationDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
6085  }
6086  explicit BatchNormalizationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6087  : fbb_(_fbb) {
6088  start_ = fbb_.StartTable();
6089  }
6091  flatbuffers::Offset<BatchNormalizationDescriptor> Finish() {
6092  const auto end = fbb_.EndTable(start_);
6093  auto o = flatbuffers::Offset<BatchNormalizationDescriptor>(end);
6094  return o;
6095  }
6096 };
6097 
6098 inline flatbuffers::Offset<BatchNormalizationDescriptor> CreateBatchNormalizationDescriptor(
6099  flatbuffers::FlatBufferBuilder &_fbb,
6100  float eps = 0.0f,
6102  BatchNormalizationDescriptorBuilder builder_(_fbb);
6103  builder_.add_eps(eps);
6104  builder_.add_dataLayout(dataLayout);
6105  return builder_.Finish();
6106 }
6107 
6108 /// @deprecated Use ResizeLayer instead
6109 struct ResizeBilinearLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6111  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6112  VT_BASE = 4,
6113  VT_DESCRIPTOR = 6
6114  };
6115  const armnnSerializer::LayerBase *base() const {
6116  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6117  }
6118  const armnnSerializer::ResizeBilinearDescriptor *descriptor() const {
6119  return GetPointer<const armnnSerializer::ResizeBilinearDescriptor *>(VT_DESCRIPTOR);
6120  }
6121  bool Verify(flatbuffers::Verifier &verifier) const {
6122  return VerifyTableStart(verifier) &&
6123  VerifyOffset(verifier, VT_BASE) &&
6124  verifier.VerifyTable(base()) &&
6125  VerifyOffset(verifier, VT_DESCRIPTOR) &&
6126  verifier.VerifyTable(descriptor()) &&
6127  verifier.EndTable();
6128  }
6129 };
6130 
6132  typedef ResizeBilinearLayer Table;
6133  flatbuffers::FlatBufferBuilder &fbb_;
6134  flatbuffers::uoffset_t start_;
6135  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6136  fbb_.AddOffset(ResizeBilinearLayer::VT_BASE, base);
6137  }
6138  void add_descriptor(flatbuffers::Offset<armnnSerializer::ResizeBilinearDescriptor> descriptor) {
6139  fbb_.AddOffset(ResizeBilinearLayer::VT_DESCRIPTOR, descriptor);
6140  }
6141  explicit ResizeBilinearLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6142  : fbb_(_fbb) {
6143  start_ = fbb_.StartTable();
6144  }
6146  flatbuffers::Offset<ResizeBilinearLayer> Finish() {
6147  const auto end = fbb_.EndTable(start_);
6148  auto o = flatbuffers::Offset<ResizeBilinearLayer>(end);
6149  return o;
6150  }
6151 };
6152 
6153 inline flatbuffers::Offset<ResizeBilinearLayer> CreateResizeBilinearLayer(
6154  flatbuffers::FlatBufferBuilder &_fbb,
6155  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6156  flatbuffers::Offset<armnnSerializer::ResizeBilinearDescriptor> descriptor = 0) {
6157  ResizeBilinearLayerBuilder builder_(_fbb);
6158  builder_.add_descriptor(descriptor);
6159  builder_.add_base(base);
6160  return builder_.Finish();
6161 }
6162 
6163 struct ResizeBilinearDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6165  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6168  VT_DATALAYOUT = 8,
6170  VT_HALFPIXELCENTERS = 12
6171  };
6172  uint32_t targetWidth() const {
6173  return GetField<uint32_t>(VT_TARGETWIDTH, 0);
6174  }
6175  uint32_t targetHeight() const {
6176  return GetField<uint32_t>(VT_TARGETHEIGHT, 0);
6177  }
6179  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
6180  }
6181  bool alignCorners() const {
6182  return GetField<uint8_t>(VT_ALIGNCORNERS, 0) != 0;
6183  }
6184  bool halfPixelCenters() const {
6185  return GetField<uint8_t>(VT_HALFPIXELCENTERS, 0) != 0;
6186  }
6187  bool Verify(flatbuffers::Verifier &verifier) const {
6188  return VerifyTableStart(verifier) &&
6189  VerifyField<uint32_t>(verifier, VT_TARGETWIDTH) &&
6190  VerifyField<uint32_t>(verifier, VT_TARGETHEIGHT) &&
6191  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
6192  VerifyField<uint8_t>(verifier, VT_ALIGNCORNERS) &&
6193  VerifyField<uint8_t>(verifier, VT_HALFPIXELCENTERS) &&
6194  verifier.EndTable();
6195  }
6196 };
6197 
6199  typedef ResizeBilinearDescriptor Table;
6200  flatbuffers::FlatBufferBuilder &fbb_;
6201  flatbuffers::uoffset_t start_;
6202  void add_targetWidth(uint32_t targetWidth) {
6203  fbb_.AddElement<uint32_t>(ResizeBilinearDescriptor::VT_TARGETWIDTH, targetWidth, 0);
6204  }
6205  void add_targetHeight(uint32_t targetHeight) {
6206  fbb_.AddElement<uint32_t>(ResizeBilinearDescriptor::VT_TARGETHEIGHT, targetHeight, 0);
6207  }
6209  fbb_.AddElement<int8_t>(ResizeBilinearDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
6210  }
6211  void add_alignCorners(bool alignCorners) {
6212  fbb_.AddElement<uint8_t>(ResizeBilinearDescriptor::VT_ALIGNCORNERS, static_cast<uint8_t>(alignCorners), 0);
6213  }
6214  void add_halfPixelCenters(bool halfPixelCenters) {
6215  fbb_.AddElement<uint8_t>(ResizeBilinearDescriptor::VT_HALFPIXELCENTERS, static_cast<uint8_t>(halfPixelCenters), 0);
6216  }
6217  explicit ResizeBilinearDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6218  : fbb_(_fbb) {
6219  start_ = fbb_.StartTable();
6220  }
6222  flatbuffers::Offset<ResizeBilinearDescriptor> Finish() {
6223  const auto end = fbb_.EndTable(start_);
6224  auto o = flatbuffers::Offset<ResizeBilinearDescriptor>(end);
6225  return o;
6226  }
6227 };
6228 
6229 inline flatbuffers::Offset<ResizeBilinearDescriptor> CreateResizeBilinearDescriptor(
6230  flatbuffers::FlatBufferBuilder &_fbb,
6231  uint32_t targetWidth = 0,
6232  uint32_t targetHeight = 0,
6234  bool alignCorners = false,
6235  bool halfPixelCenters = false) {
6236  ResizeBilinearDescriptorBuilder builder_(_fbb);
6237  builder_.add_targetHeight(targetHeight);
6238  builder_.add_targetWidth(targetWidth);
6239  builder_.add_halfPixelCenters(halfPixelCenters);
6240  builder_.add_alignCorners(alignCorners);
6241  builder_.add_dataLayout(dataLayout);
6242  return builder_.Finish();
6243 }
6244 
6245 struct SliceLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6247  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6248  VT_BASE = 4,
6249  VT_DESCRIPTOR = 6
6250  };
6251  const armnnSerializer::LayerBase *base() const {
6252  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6253  }
6254  const armnnSerializer::SliceDescriptor *descriptor() const {
6255  return GetPointer<const armnnSerializer::SliceDescriptor *>(VT_DESCRIPTOR);
6256  }
6257  bool Verify(flatbuffers::Verifier &verifier) const {
6258  return VerifyTableStart(verifier) &&
6259  VerifyOffset(verifier, VT_BASE) &&
6260  verifier.VerifyTable(base()) &&
6261  VerifyOffset(verifier, VT_DESCRIPTOR) &&
6262  verifier.VerifyTable(descriptor()) &&
6263  verifier.EndTable();
6264  }
6265 };
6266 
6268  typedef SliceLayer Table;
6269  flatbuffers::FlatBufferBuilder &fbb_;
6270  flatbuffers::uoffset_t start_;
6271  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6272  fbb_.AddOffset(SliceLayer::VT_BASE, base);
6273  }
6274  void add_descriptor(flatbuffers::Offset<armnnSerializer::SliceDescriptor> descriptor) {
6275  fbb_.AddOffset(SliceLayer::VT_DESCRIPTOR, descriptor);
6276  }
6277  explicit SliceLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6278  : fbb_(_fbb) {
6279  start_ = fbb_.StartTable();
6280  }
6281  SliceLayerBuilder &operator=(const SliceLayerBuilder &);
6282  flatbuffers::Offset<SliceLayer> Finish() {
6283  const auto end = fbb_.EndTable(start_);
6284  auto o = flatbuffers::Offset<SliceLayer>(end);
6285  return o;
6286  }
6287 };
6288 
6289 inline flatbuffers::Offset<SliceLayer> CreateSliceLayer(
6290  flatbuffers::FlatBufferBuilder &_fbb,
6291  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6292  flatbuffers::Offset<armnnSerializer::SliceDescriptor> descriptor = 0) {
6293  SliceLayerBuilder builder_(_fbb);
6294  builder_.add_descriptor(descriptor);
6295  builder_.add_base(base);
6296  return builder_.Finish();
6297 }
6298 
6299 struct SliceDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6301  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6303  VT_SIZE = 6
6304  };
6305  const flatbuffers::Vector<uint32_t> *begin() const {
6306  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_BEGIN);
6307  }
6308  const flatbuffers::Vector<uint32_t> *size() const {
6309  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_SIZE);
6310  }
6311  bool Verify(flatbuffers::Verifier &verifier) const {
6312  return VerifyTableStart(verifier) &&
6313  VerifyOffset(verifier, VT_BEGIN) &&
6314  verifier.VerifyVector(begin()) &&
6315  VerifyOffset(verifier, VT_SIZE) &&
6316  verifier.VerifyVector(size()) &&
6317  verifier.EndTable();
6318  }
6319 };
6320 
6322  typedef SliceDescriptor Table;
6323  flatbuffers::FlatBufferBuilder &fbb_;
6324  flatbuffers::uoffset_t start_;
6325  void add_begin(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> begin) {
6326  fbb_.AddOffset(SliceDescriptor::VT_BEGIN, begin);
6327  }
6328  void add_size(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> size) {
6329  fbb_.AddOffset(SliceDescriptor::VT_SIZE, size);
6330  }
6331  explicit SliceDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6332  : fbb_(_fbb) {
6333  start_ = fbb_.StartTable();
6334  }
6335  SliceDescriptorBuilder &operator=(const SliceDescriptorBuilder &);
6336  flatbuffers::Offset<SliceDescriptor> Finish() {
6337  const auto end = fbb_.EndTable(start_);
6338  auto o = flatbuffers::Offset<SliceDescriptor>(end);
6339  return o;
6340  }
6341 };
6342 
6343 inline flatbuffers::Offset<SliceDescriptor> CreateSliceDescriptor(
6344  flatbuffers::FlatBufferBuilder &_fbb,
6345  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> begin = 0,
6346  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> size = 0) {
6347  SliceDescriptorBuilder builder_(_fbb);
6348  builder_.add_size(size);
6349  builder_.add_begin(begin);
6350  return builder_.Finish();
6351 }
6352 
6353 inline flatbuffers::Offset<SliceDescriptor> CreateSliceDescriptorDirect(
6354  flatbuffers::FlatBufferBuilder &_fbb,
6355  const std::vector<uint32_t> *begin = nullptr,
6356  const std::vector<uint32_t> *size = nullptr) {
6357  auto begin__ = begin ? _fbb.CreateVector<uint32_t>(*begin) : 0;
6358  auto size__ = size ? _fbb.CreateVector<uint32_t>(*size) : 0;
6360  _fbb,
6361  begin__,
6362  size__);
6363 }
6364 
6365 struct StridedSliceLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6367  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6368  VT_BASE = 4,
6369  VT_DESCRIPTOR = 6
6370  };
6371  const armnnSerializer::LayerBase *base() const {
6372  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6373  }
6374  const armnnSerializer::StridedSliceDescriptor *descriptor() const {
6375  return GetPointer<const armnnSerializer::StridedSliceDescriptor *>(VT_DESCRIPTOR);
6376  }
6377  bool Verify(flatbuffers::Verifier &verifier) const {
6378  return VerifyTableStart(verifier) &&
6379  VerifyOffset(verifier, VT_BASE) &&
6380  verifier.VerifyTable(base()) &&
6381  VerifyOffset(verifier, VT_DESCRIPTOR) &&
6382  verifier.VerifyTable(descriptor()) &&
6383  verifier.EndTable();
6384  }
6385 };
6386 
6388  typedef StridedSliceLayer Table;
6389  flatbuffers::FlatBufferBuilder &fbb_;
6390  flatbuffers::uoffset_t start_;
6391  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6392  fbb_.AddOffset(StridedSliceLayer::VT_BASE, base);
6393  }
6394  void add_descriptor(flatbuffers::Offset<armnnSerializer::StridedSliceDescriptor> descriptor) {
6395  fbb_.AddOffset(StridedSliceLayer::VT_DESCRIPTOR, descriptor);
6396  }
6397  explicit StridedSliceLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6398  : fbb_(_fbb) {
6399  start_ = fbb_.StartTable();
6400  }
6402  flatbuffers::Offset<StridedSliceLayer> Finish() {
6403  const auto end = fbb_.EndTable(start_);
6404  auto o = flatbuffers::Offset<StridedSliceLayer>(end);
6405  return o;
6406  }
6407 };
6408 
6409 inline flatbuffers::Offset<StridedSliceLayer> CreateStridedSliceLayer(
6410  flatbuffers::FlatBufferBuilder &_fbb,
6411  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6412  flatbuffers::Offset<armnnSerializer::StridedSliceDescriptor> descriptor = 0) {
6413  StridedSliceLayerBuilder builder_(_fbb);
6414  builder_.add_descriptor(descriptor);
6415  builder_.add_base(base);
6416  return builder_.Finish();
6417 }
6418 
6419 struct StridedSliceDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6421  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6422  VT_BEGIN = 4,
6423  VT_END = 6,
6430  VT_DATALAYOUT = 20
6431  };
6432  const flatbuffers::Vector<int32_t> *begin() const {
6433  return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_BEGIN);
6434  }
6435  const flatbuffers::Vector<int32_t> *end() const {
6436  return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_END);
6437  }
6438  const flatbuffers::Vector<int32_t> *stride() const {
6439  return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
6440  }
6441  int32_t beginMask() const {
6442  return GetField<int32_t>(VT_BEGINMASK, 0);
6443  }
6444  int32_t endMask() const {
6445  return GetField<int32_t>(VT_ENDMASK, 0);
6446  }
6447  int32_t shrinkAxisMask() const {
6448  return GetField<int32_t>(VT_SHRINKAXISMASK, 0);
6449  }
6450  int32_t ellipsisMask() const {
6451  return GetField<int32_t>(VT_ELLIPSISMASK, 0);
6452  }
6453  int32_t newAxisMask() const {
6454  return GetField<int32_t>(VT_NEWAXISMASK, 0);
6455  }
6457  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
6458  }
6459  bool Verify(flatbuffers::Verifier &verifier) const {
6460  return VerifyTableStart(verifier) &&
6461  VerifyOffset(verifier, VT_BEGIN) &&
6462  verifier.VerifyVector(begin()) &&
6463  VerifyOffset(verifier, VT_END) &&
6464  verifier.VerifyVector(end()) &&
6465  VerifyOffset(verifier, VT_STRIDE) &&
6466  verifier.VerifyVector(stride()) &&
6467  VerifyField<int32_t>(verifier, VT_BEGINMASK) &&
6468  VerifyField<int32_t>(verifier, VT_ENDMASK) &&
6469  VerifyField<int32_t>(verifier, VT_SHRINKAXISMASK) &&
6470  VerifyField<int32_t>(verifier, VT_ELLIPSISMASK) &&
6471  VerifyField<int32_t>(verifier, VT_NEWAXISMASK) &&
6472  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
6473  verifier.EndTable();
6474  }
6475 };
6476 
6478  typedef StridedSliceDescriptor Table;
6479  flatbuffers::FlatBufferBuilder &fbb_;
6480  flatbuffers::uoffset_t start_;
6481  void add_begin(flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin) {
6482  fbb_.AddOffset(StridedSliceDescriptor::VT_BEGIN, begin);
6483  }
6484  void add_end(flatbuffers::Offset<flatbuffers::Vector<int32_t>> end) {
6485  fbb_.AddOffset(StridedSliceDescriptor::VT_END, end);
6486  }
6487  void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
6488  fbb_.AddOffset(StridedSliceDescriptor::VT_STRIDE, stride);
6489  }
6490  void add_beginMask(int32_t beginMask) {
6491  fbb_.AddElement<int32_t>(StridedSliceDescriptor::VT_BEGINMASK, beginMask, 0);
6492  }
6493  void add_endMask(int32_t endMask) {
6494  fbb_.AddElement<int32_t>(StridedSliceDescriptor::VT_ENDMASK, endMask, 0);
6495  }
6496  void add_shrinkAxisMask(int32_t shrinkAxisMask) {
6497  fbb_.AddElement<int32_t>(StridedSliceDescriptor::VT_SHRINKAXISMASK, shrinkAxisMask, 0);
6498  }
6499  void add_ellipsisMask(int32_t ellipsisMask) {
6500  fbb_.AddElement<int32_t>(StridedSliceDescriptor::VT_ELLIPSISMASK, ellipsisMask, 0);
6501  }
6502  void add_newAxisMask(int32_t newAxisMask) {
6503  fbb_.AddElement<int32_t>(StridedSliceDescriptor::VT_NEWAXISMASK, newAxisMask, 0);
6504  }
6506  fbb_.AddElement<int8_t>(StridedSliceDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
6507  }
6508  explicit StridedSliceDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6509  : fbb_(_fbb) {
6510  start_ = fbb_.StartTable();
6511  }
6513  flatbuffers::Offset<StridedSliceDescriptor> Finish() {
6514  const auto end = fbb_.EndTable(start_);
6515  auto o = flatbuffers::Offset<StridedSliceDescriptor>(end);
6516  return o;
6517  }
6518 };
6519 
6520 inline flatbuffers::Offset<StridedSliceDescriptor> CreateStridedSliceDescriptor(
6521  flatbuffers::FlatBufferBuilder &_fbb,
6522  flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin = 0,
6523  flatbuffers::Offset<flatbuffers::Vector<int32_t>> end = 0,
6524  flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
6525  int32_t beginMask = 0,
6526  int32_t endMask = 0,
6527  int32_t shrinkAxisMask = 0,
6528  int32_t ellipsisMask = 0,
6529  int32_t newAxisMask = 0,
6531  StridedSliceDescriptorBuilder builder_(_fbb);
6532  builder_.add_newAxisMask(newAxisMask);
6533  builder_.add_ellipsisMask(ellipsisMask);
6534  builder_.add_shrinkAxisMask(shrinkAxisMask);
6535  builder_.add_endMask(endMask);
6536  builder_.add_beginMask(beginMask);
6537  builder_.add_stride(stride);
6538  builder_.add_end(end);
6539  builder_.add_begin(begin);
6540  builder_.add_dataLayout(dataLayout);
6541  return builder_.Finish();
6542 }
6543 
6544 inline flatbuffers::Offset<StridedSliceDescriptor> CreateStridedSliceDescriptorDirect(
6545  flatbuffers::FlatBufferBuilder &_fbb,
6546  const std::vector<int32_t> *begin = nullptr,
6547  const std::vector<int32_t> *end = nullptr,
6548  const std::vector<int32_t> *stride = nullptr,
6549  int32_t beginMask = 0,
6550  int32_t endMask = 0,
6551  int32_t shrinkAxisMask = 0,
6552  int32_t ellipsisMask = 0,
6553  int32_t newAxisMask = 0,
6555  auto begin__ = begin ? _fbb.CreateVector<int32_t>(*begin) : 0;
6556  auto end__ = end ? _fbb.CreateVector<int32_t>(*end) : 0;
6557  auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
6559  _fbb,
6560  begin__,
6561  end__,
6562  stride__,
6563  beginMask,
6564  endMask,
6565  shrinkAxisMask,
6566  ellipsisMask,
6567  newAxisMask,
6568  dataLayout);
6569 }
6570 
6571 struct ConcatLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6573  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6574  VT_BASE = 4,
6575  VT_DESCRIPTOR = 6
6576  };
6577  const armnnSerializer::LayerBase *base() const {
6578  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6579  }
6580  const armnnSerializer::OriginsDescriptor *descriptor() const {
6581  return GetPointer<const armnnSerializer::OriginsDescriptor *>(VT_DESCRIPTOR);
6582  }
6583  bool Verify(flatbuffers::Verifier &verifier) const {
6584  return VerifyTableStart(verifier) &&
6585  VerifyOffset(verifier, VT_BASE) &&
6586  verifier.VerifyTable(base()) &&
6587  VerifyOffset(verifier, VT_DESCRIPTOR) &&
6588  verifier.VerifyTable(descriptor()) &&
6589  verifier.EndTable();
6590  }
6591 };
6592 
6594  typedef ConcatLayer Table;
6595  flatbuffers::FlatBufferBuilder &fbb_;
6596  flatbuffers::uoffset_t start_;
6597  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6598  fbb_.AddOffset(ConcatLayer::VT_BASE, base);
6599  }
6600  void add_descriptor(flatbuffers::Offset<armnnSerializer::OriginsDescriptor> descriptor) {
6601  fbb_.AddOffset(ConcatLayer::VT_DESCRIPTOR, descriptor);
6602  }
6603  explicit ConcatLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6604  : fbb_(_fbb) {
6605  start_ = fbb_.StartTable();
6606  }
6607  ConcatLayerBuilder &operator=(const ConcatLayerBuilder &);
6608  flatbuffers::Offset<ConcatLayer> Finish() {
6609  const auto end = fbb_.EndTable(start_);
6610  auto o = flatbuffers::Offset<ConcatLayer>(end);
6611  return o;
6612  }
6613 };
6614 
6615 inline flatbuffers::Offset<ConcatLayer> CreateConcatLayer(
6616  flatbuffers::FlatBufferBuilder &_fbb,
6617  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6618  flatbuffers::Offset<armnnSerializer::OriginsDescriptor> descriptor = 0) {
6619  ConcatLayerBuilder builder_(_fbb);
6620  builder_.add_descriptor(descriptor);
6621  builder_.add_base(base);
6622  return builder_.Finish();
6623 }
6624 
6625 /// @deprecated Use ConcatLayer instead
6626 struct MergerLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6628  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6629  VT_BASE = 4,
6630  VT_DESCRIPTOR = 6
6631  };
6632  const armnnSerializer::LayerBase *base() const {
6633  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6634  }
6635  const armnnSerializer::OriginsDescriptor *descriptor() const {
6636  return GetPointer<const armnnSerializer::OriginsDescriptor *>(VT_DESCRIPTOR);
6637  }
6638  bool Verify(flatbuffers::Verifier &verifier) const {
6639  return VerifyTableStart(verifier) &&
6640  VerifyOffset(verifier, VT_BASE) &&
6641  verifier.VerifyTable(base()) &&
6642  VerifyOffset(verifier, VT_DESCRIPTOR) &&
6643  verifier.VerifyTable(descriptor()) &&
6644  verifier.EndTable();
6645  }
6646 };
6647 
6650  flatbuffers::FlatBufferBuilder &fbb_;
6651  flatbuffers::uoffset_t start_;
6652  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6653  fbb_.AddOffset(MergerLayer::VT_BASE, base);
6654  }
6655  void add_descriptor(flatbuffers::Offset<armnnSerializer::OriginsDescriptor> descriptor) {
6656  fbb_.AddOffset(MergerLayer::VT_DESCRIPTOR, descriptor);
6657  }
6658  explicit MergerLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6659  : fbb_(_fbb) {
6660  start_ = fbb_.StartTable();
6661  }
6662  MergerLayerBuilder &operator=(const MergerLayerBuilder &);
6663  flatbuffers::Offset<MergerLayer> Finish() {
6664  const auto end = fbb_.EndTable(start_);
6665  auto o = flatbuffers::Offset<MergerLayer>(end);
6666  return o;
6667  }
6668 };
6669 
6670 inline flatbuffers::Offset<MergerLayer> CreateMergerLayer(
6671  flatbuffers::FlatBufferBuilder &_fbb,
6672  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6673  flatbuffers::Offset<armnnSerializer::OriginsDescriptor> descriptor = 0) {
6674  MergerLayerBuilder builder_(_fbb);
6675  builder_.add_descriptor(descriptor);
6676  builder_.add_base(base);
6677  return builder_.Finish();
6678 }
6679 
6680 struct UintVector FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6682  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6683  VT_DATA = 4
6684  };
6685  const flatbuffers::Vector<uint32_t> *data() const {
6686  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_DATA);
6687  }
6688  bool Verify(flatbuffers::Verifier &verifier) const {
6689  return VerifyTableStart(verifier) &&
6690  VerifyOffset(verifier, VT_DATA) &&
6691  verifier.VerifyVector(data()) &&
6692  verifier.EndTable();
6693  }
6694 };
6695 
6697  typedef UintVector Table;
6698  flatbuffers::FlatBufferBuilder &fbb_;
6699  flatbuffers::uoffset_t start_;
6700  void add_data(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> data) {
6701  fbb_.AddOffset(UintVector::VT_DATA, data);
6702  }
6703  explicit UintVectorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6704  : fbb_(_fbb) {
6705  start_ = fbb_.StartTable();
6706  }
6707  UintVectorBuilder &operator=(const UintVectorBuilder &);
6708  flatbuffers::Offset<UintVector> Finish() {
6709  const auto end = fbb_.EndTable(start_);
6710  auto o = flatbuffers::Offset<UintVector>(end);
6711  return o;
6712  }
6713 };
6714 
6715 inline flatbuffers::Offset<UintVector> CreateUintVector(
6716  flatbuffers::FlatBufferBuilder &_fbb,
6717  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> data = 0) {
6718  UintVectorBuilder builder_(_fbb);
6719  builder_.add_data(data);
6720  return builder_.Finish();
6721 }
6722 
6723 inline flatbuffers::Offset<UintVector> CreateUintVectorDirect(
6724  flatbuffers::FlatBufferBuilder &_fbb,
6725  const std::vector<uint32_t> *data = nullptr) {
6726  auto data__ = data ? _fbb.CreateVector<uint32_t>(*data) : 0;
6728  _fbb,
6729  data__);
6730 }
6731 
6732 struct OriginsDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6734  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6738  VT_VIEWORIGINS = 10
6739  };
6740  uint32_t concatAxis() const {
6741  return GetField<uint32_t>(VT_CONCATAXIS, 0);
6742  }
6743  uint32_t numViews() const {
6744  return GetField<uint32_t>(VT_NUMVIEWS, 0);
6745  }
6746  uint32_t numDimensions() const {
6747  return GetField<uint32_t>(VT_NUMDIMENSIONS, 0);
6748  }
6749  const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>> *viewOrigins() const {
6750  return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>> *>(VT_VIEWORIGINS);
6751  }
6752  bool Verify(flatbuffers::Verifier &verifier) const {
6753  return VerifyTableStart(verifier) &&
6754  VerifyField<uint32_t>(verifier, VT_CONCATAXIS) &&
6755  VerifyField<uint32_t>(verifier, VT_NUMVIEWS) &&
6756  VerifyField<uint32_t>(verifier, VT_NUMDIMENSIONS) &&
6757  VerifyOffset(verifier, VT_VIEWORIGINS) &&
6758  verifier.VerifyVector(viewOrigins()) &&
6759  verifier.VerifyVectorOfTables(viewOrigins()) &&
6760  verifier.EndTable();
6761  }
6762 };
6763 
6765  typedef OriginsDescriptor Table;
6766  flatbuffers::FlatBufferBuilder &fbb_;
6767  flatbuffers::uoffset_t start_;
6768  void add_concatAxis(uint32_t concatAxis) {
6769  fbb_.AddElement<uint32_t>(OriginsDescriptor::VT_CONCATAXIS, concatAxis, 0);
6770  }
6771  void add_numViews(uint32_t numViews) {
6772  fbb_.AddElement<uint32_t>(OriginsDescriptor::VT_NUMVIEWS, numViews, 0);
6773  }
6774  void add_numDimensions(uint32_t numDimensions) {
6775  fbb_.AddElement<uint32_t>(OriginsDescriptor::VT_NUMDIMENSIONS, numDimensions, 0);
6776  }
6777  void add_viewOrigins(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>>> viewOrigins) {
6778  fbb_.AddOffset(OriginsDescriptor::VT_VIEWORIGINS, viewOrigins);
6779  }
6780  explicit OriginsDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6781  : fbb_(_fbb) {
6782  start_ = fbb_.StartTable();
6783  }
6785  flatbuffers::Offset<OriginsDescriptor> Finish() {
6786  const auto end = fbb_.EndTable(start_);
6787  auto o = flatbuffers::Offset<OriginsDescriptor>(end);
6788  return o;
6789  }
6790 };
6791 
6792 inline flatbuffers::Offset<OriginsDescriptor> CreateOriginsDescriptor(
6793  flatbuffers::FlatBufferBuilder &_fbb,
6794  uint32_t concatAxis = 0,
6795  uint32_t numViews = 0,
6796  uint32_t numDimensions = 0,
6797  flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>>> viewOrigins = 0) {
6798  OriginsDescriptorBuilder builder_(_fbb);
6799  builder_.add_viewOrigins(viewOrigins);
6800  builder_.add_numDimensions(numDimensions);
6801  builder_.add_numViews(numViews);
6802  builder_.add_concatAxis(concatAxis);
6803  return builder_.Finish();
6804 }
6805 
6806 inline flatbuffers::Offset<OriginsDescriptor> CreateOriginsDescriptorDirect(
6807  flatbuffers::FlatBufferBuilder &_fbb,
6808  uint32_t concatAxis = 0,
6809  uint32_t numViews = 0,
6810  uint32_t numDimensions = 0,
6811  const std::vector<flatbuffers::Offset<armnnSerializer::UintVector>> *viewOrigins = nullptr) {
6812  auto viewOrigins__ = viewOrigins ? _fbb.CreateVector<flatbuffers::Offset<armnnSerializer::UintVector>>(*viewOrigins) : 0;
6814  _fbb,
6815  concatAxis,
6816  numViews,
6817  numDimensions,
6818  viewOrigins__);
6819 }
6820 
6821 struct ViewsDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6823  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6825  VT_VIEWSIZES = 6
6826  };
6827  const armnnSerializer::OriginsDescriptor *origins() const {
6828  return GetPointer<const armnnSerializer::OriginsDescriptor *>(VT_ORIGINS);
6829  }
6830  const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>> *viewSizes() const {
6831  return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>> *>(VT_VIEWSIZES);
6832  }
6833  bool Verify(flatbuffers::Verifier &verifier) const {
6834  return VerifyTableStart(verifier) &&
6835  VerifyOffset(verifier, VT_ORIGINS) &&
6836  verifier.VerifyTable(origins()) &&
6837  VerifyOffset(verifier, VT_VIEWSIZES) &&
6838  verifier.VerifyVector(viewSizes()) &&
6839  verifier.VerifyVectorOfTables(viewSizes()) &&
6840  verifier.EndTable();
6841  }
6842 };
6843 
6845  typedef ViewsDescriptor Table;
6846  flatbuffers::FlatBufferBuilder &fbb_;
6847  flatbuffers::uoffset_t start_;
6848  void add_origins(flatbuffers::Offset<armnnSerializer::OriginsDescriptor> origins) {
6849  fbb_.AddOffset(ViewsDescriptor::VT_ORIGINS, origins);
6850  }
6851  void add_viewSizes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>>> viewSizes) {
6852  fbb_.AddOffset(ViewsDescriptor::VT_VIEWSIZES, viewSizes);
6853  }
6854  explicit ViewsDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6855  : fbb_(_fbb) {
6856  start_ = fbb_.StartTable();
6857  }
6858  ViewsDescriptorBuilder &operator=(const ViewsDescriptorBuilder &);
6859  flatbuffers::Offset<ViewsDescriptor> Finish() {
6860  const auto end = fbb_.EndTable(start_);
6861  auto o = flatbuffers::Offset<ViewsDescriptor>(end);
6862  return o;
6863  }
6864 };
6865 
6866 inline flatbuffers::Offset<ViewsDescriptor> CreateViewsDescriptor(
6867  flatbuffers::FlatBufferBuilder &_fbb,
6868  flatbuffers::Offset<armnnSerializer::OriginsDescriptor> origins = 0,
6869  flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>>> viewSizes = 0) {
6870  ViewsDescriptorBuilder builder_(_fbb);
6871  builder_.add_viewSizes(viewSizes);
6872  builder_.add_origins(origins);
6873  return builder_.Finish();
6874 }
6875 
6876 inline flatbuffers::Offset<ViewsDescriptor> CreateViewsDescriptorDirect(
6877  flatbuffers::FlatBufferBuilder &_fbb,
6878  flatbuffers::Offset<armnnSerializer::OriginsDescriptor> origins = 0,
6879  const std::vector<flatbuffers::Offset<armnnSerializer::UintVector>> *viewSizes = nullptr) {
6880  auto viewSizes__ = viewSizes ? _fbb.CreateVector<flatbuffers::Offset<armnnSerializer::UintVector>>(*viewSizes) : 0;
6882  _fbb,
6883  origins,
6884  viewSizes__);
6885 }
6886 
6887 struct SplitterLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6889  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6890  VT_BASE = 4,
6891  VT_DESCRIPTOR = 6
6892  };
6893  const armnnSerializer::LayerBase *base() const {
6894  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6895  }
6896  const armnnSerializer::ViewsDescriptor *descriptor() const {
6897  return GetPointer<const armnnSerializer::ViewsDescriptor *>(VT_DESCRIPTOR);
6898  }
6899  bool Verify(flatbuffers::Verifier &verifier) const {
6900  return VerifyTableStart(verifier) &&
6901  VerifyOffset(verifier, VT_BASE) &&
6902  verifier.VerifyTable(base()) &&
6903  VerifyOffset(verifier, VT_DESCRIPTOR) &&
6904  verifier.VerifyTable(descriptor()) &&
6905  verifier.EndTable();
6906  }
6907 };
6908 
6910  typedef SplitterLayer Table;
6911  flatbuffers::FlatBufferBuilder &fbb_;
6912  flatbuffers::uoffset_t start_;
6913  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6914  fbb_.AddOffset(SplitterLayer::VT_BASE, base);
6915  }
6916  void add_descriptor(flatbuffers::Offset<armnnSerializer::ViewsDescriptor> descriptor) {
6917  fbb_.AddOffset(SplitterLayer::VT_DESCRIPTOR, descriptor);
6918  }
6919  explicit SplitterLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6920  : fbb_(_fbb) {
6921  start_ = fbb_.StartTable();
6922  }
6923  SplitterLayerBuilder &operator=(const SplitterLayerBuilder &);
6924  flatbuffers::Offset<SplitterLayer> Finish() {
6925  const auto end = fbb_.EndTable(start_);
6926  auto o = flatbuffers::Offset<SplitterLayer>(end);
6927  return o;
6928  }
6929 };
6930 
6931 inline flatbuffers::Offset<SplitterLayer> CreateSplitterLayer(
6932  flatbuffers::FlatBufferBuilder &_fbb,
6933  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6934  flatbuffers::Offset<armnnSerializer::ViewsDescriptor> descriptor = 0) {
6935  SplitterLayerBuilder builder_(_fbb);
6936  builder_.add_descriptor(descriptor);
6937  builder_.add_base(base);
6938  return builder_.Finish();
6939 }
6940 
6941 struct DetectionPostProcessLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6943  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6944  VT_BASE = 4,
6945  VT_DESCRIPTOR = 6,
6946  VT_ANCHORS = 8
6947  };
6948  const armnnSerializer::LayerBase *base() const {
6949  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6950  }
6951  const armnnSerializer::DetectionPostProcessDescriptor *descriptor() const {
6952  return GetPointer<const armnnSerializer::DetectionPostProcessDescriptor *>(VT_DESCRIPTOR);
6953  }
6954  const armnnSerializer::ConstTensor *anchors() const {
6955  return GetPointer<const armnnSerializer::ConstTensor *>(VT_ANCHORS);
6956  }
6957  bool Verify(flatbuffers::Verifier &verifier) const {
6958  return VerifyTableStart(verifier) &&
6959  VerifyOffset(verifier, VT_BASE) &&
6960  verifier.VerifyTable(base()) &&
6961  VerifyOffset(verifier, VT_DESCRIPTOR) &&
6962  verifier.VerifyTable(descriptor()) &&
6963  VerifyOffset(verifier, VT_ANCHORS) &&
6964  verifier.VerifyTable(anchors()) &&
6965  verifier.EndTable();
6966  }
6967 };
6968 
6970  typedef DetectionPostProcessLayer Table;
6971  flatbuffers::FlatBufferBuilder &fbb_;
6972  flatbuffers::uoffset_t start_;
6973  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6974  fbb_.AddOffset(DetectionPostProcessLayer::VT_BASE, base);
6975  }
6976  void add_descriptor(flatbuffers::Offset<armnnSerializer::DetectionPostProcessDescriptor> descriptor) {
6977  fbb_.AddOffset(DetectionPostProcessLayer::VT_DESCRIPTOR, descriptor);
6978  }
6979  void add_anchors(flatbuffers::Offset<armnnSerializer::ConstTensor> anchors) {
6980  fbb_.AddOffset(DetectionPostProcessLayer::VT_ANCHORS, anchors);
6981  }
6982  explicit DetectionPostProcessLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6983  : fbb_(_fbb) {
6984  start_ = fbb_.StartTable();
6985  }
6987  flatbuffers::Offset<DetectionPostProcessLayer> Finish() {
6988  const auto end = fbb_.EndTable(start_);
6989  auto o = flatbuffers::Offset<DetectionPostProcessLayer>(end);
6990  return o;
6991  }
6992 };
6993 
6994 inline flatbuffers::Offset<DetectionPostProcessLayer> CreateDetectionPostProcessLayer(
6995  flatbuffers::FlatBufferBuilder &_fbb,
6996  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6997  flatbuffers::Offset<armnnSerializer::DetectionPostProcessDescriptor> descriptor = 0,
6998  flatbuffers::Offset<armnnSerializer::ConstTensor> anchors = 0) {
6999  DetectionPostProcessLayerBuilder builder_(_fbb);
7000  builder_.add_anchors(anchors);
7001  builder_.add_descriptor(descriptor);
7002  builder_.add_base(base);
7003  return builder_.Finish();
7004 }
7005 
7006 struct DetectionPostProcessDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7008  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7019  VT_SCALEH = 24
7020  };
7021  uint32_t maxDetections() const {
7022  return GetField<uint32_t>(VT_MAXDETECTIONS, 0);
7023  }
7024  uint32_t maxClassesPerDetection() const {
7025  return GetField<uint32_t>(VT_MAXCLASSESPERDETECTION, 0);
7026  }
7027  uint32_t detectionsPerClass() const {
7028  return GetField<uint32_t>(VT_DETECTIONSPERCLASS, 0);
7029  }
7030  float nmsScoreThreshold() const {
7031  return GetField<float>(VT_NMSSCORETHRESHOLD, 0.0f);
7032  }
7033  float nmsIouThreshold() const {
7034  return GetField<float>(VT_NMSIOUTHRESHOLD, 0.0f);
7035  }
7036  uint32_t numClasses() const {
7037  return GetField<uint32_t>(VT_NUMCLASSES, 0);
7038  }
7039  bool useRegularNms() const {
7040  return GetField<uint8_t>(VT_USEREGULARNMS, 0) != 0;
7041  }
7042  float scaleX() const {
7043  return GetField<float>(VT_SCALEX, 0.0f);
7044  }
7045  float scaleY() const {
7046  return GetField<float>(VT_SCALEY, 0.0f);
7047  }
7048  float scaleW() const {
7049  return GetField<float>(VT_SCALEW, 0.0f);
7050  }
7051  float scaleH() const {
7052  return GetField<float>(VT_SCALEH, 0.0f);
7053  }
7054  bool Verify(flatbuffers::Verifier &verifier) const {
7055  return VerifyTableStart(verifier) &&
7056  VerifyField<uint32_t>(verifier, VT_MAXDETECTIONS) &&
7057  VerifyField<uint32_t>(verifier, VT_MAXCLASSESPERDETECTION) &&
7058  VerifyField<uint32_t>(verifier, VT_DETECTIONSPERCLASS) &&
7059  VerifyField<float>(verifier, VT_NMSSCORETHRESHOLD) &&
7060  VerifyField<float>(verifier, VT_NMSIOUTHRESHOLD) &&
7061  VerifyField<uint32_t>(verifier, VT_NUMCLASSES) &&
7062  VerifyField<uint8_t>(verifier, VT_USEREGULARNMS) &&
7063  VerifyField<float>(verifier, VT_SCALEX) &&
7064  VerifyField<float>(verifier, VT_SCALEY) &&
7065  VerifyField<float>(verifier, VT_SCALEW) &&
7066  VerifyField<float>(verifier, VT_SCALEH) &&
7067  verifier.EndTable();
7068  }
7069 };
7070 
7072  typedef DetectionPostProcessDescriptor Table;
7073  flatbuffers::FlatBufferBuilder &fbb_;
7074  flatbuffers::uoffset_t start_;
7075  void add_maxDetections(uint32_t maxDetections) {
7076  fbb_.AddElement<uint32_t>(DetectionPostProcessDescriptor::VT_MAXDETECTIONS, maxDetections, 0);
7077  }
7078  void add_maxClassesPerDetection(uint32_t maxClassesPerDetection) {
7079  fbb_.AddElement<uint32_t>(DetectionPostProcessDescriptor::VT_MAXCLASSESPERDETECTION, maxClassesPerDetection, 0);
7080  }
7081  void add_detectionsPerClass(uint32_t detectionsPerClass) {
7082  fbb_.AddElement<uint32_t>(DetectionPostProcessDescriptor::VT_DETECTIONSPERCLASS, detectionsPerClass, 0);
7083  }
7084  void add_nmsScoreThreshold(float nmsScoreThreshold) {
7085  fbb_.AddElement<float>(DetectionPostProcessDescriptor::VT_NMSSCORETHRESHOLD, nmsScoreThreshold, 0.0f);
7086  }
7087  void add_nmsIouThreshold(float nmsIouThreshold) {
7088  fbb_.AddElement<float>(DetectionPostProcessDescriptor::VT_NMSIOUTHRESHOLD, nmsIouThreshold, 0.0f);
7089  }
7090  void add_numClasses(uint32_t numClasses) {
7091  fbb_.AddElement<uint32_t>(DetectionPostProcessDescriptor::VT_NUMCLASSES, numClasses, 0);
7092  }
7093  void add_useRegularNms(bool useRegularNms) {
7094  fbb_.AddElement<uint8_t>(DetectionPostProcessDescriptor::VT_USEREGULARNMS, static_cast<uint8_t>(useRegularNms), 0);
7095  }
7096  void add_scaleX(float scaleX) {
7097  fbb_.AddElement<float>(DetectionPostProcessDescriptor::VT_SCALEX, scaleX, 0.0f);
7098  }
7099  void add_scaleY(float scaleY) {
7100  fbb_.AddElement<float>(DetectionPostProcessDescriptor::VT_SCALEY, scaleY, 0.0f);
7101  }
7102  void add_scaleW(float scaleW) {
7103  fbb_.AddElement<float>(DetectionPostProcessDescriptor::VT_SCALEW, scaleW, 0.0f);
7104  }
7105  void add_scaleH(float scaleH) {
7106  fbb_.AddElement<float>(DetectionPostProcessDescriptor::VT_SCALEH, scaleH, 0.0f);
7107  }
7108  explicit DetectionPostProcessDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7109  : fbb_(_fbb) {
7110  start_ = fbb_.StartTable();
7111  }
7113  flatbuffers::Offset<DetectionPostProcessDescriptor> Finish() {
7114  const auto end = fbb_.EndTable(start_);
7115  auto o = flatbuffers::Offset<DetectionPostProcessDescriptor>(end);
7116  return o;
7117  }
7118 };
7119 
7120 inline flatbuffers::Offset<DetectionPostProcessDescriptor> CreateDetectionPostProcessDescriptor(
7121  flatbuffers::FlatBufferBuilder &_fbb,
7122  uint32_t maxDetections = 0,
7123  uint32_t maxClassesPerDetection = 0,
7124  uint32_t detectionsPerClass = 0,
7125  float nmsScoreThreshold = 0.0f,
7126  float nmsIouThreshold = 0.0f,
7127  uint32_t numClasses = 0,
7128  bool useRegularNms = false,
7129  float scaleX = 0.0f,
7130  float scaleY = 0.0f,
7131  float scaleW = 0.0f,
7132  float scaleH = 0.0f) {
7134  builder_.add_scaleH(scaleH);
7135  builder_.add_scaleW(scaleW);
7136  builder_.add_scaleY(scaleY);
7137  builder_.add_scaleX(scaleX);
7138  builder_.add_numClasses(numClasses);
7139  builder_.add_nmsIouThreshold(nmsIouThreshold);
7140  builder_.add_nmsScoreThreshold(nmsScoreThreshold);
7141  builder_.add_detectionsPerClass(detectionsPerClass);
7142  builder_.add_maxClassesPerDetection(maxClassesPerDetection);
7143  builder_.add_maxDetections(maxDetections);
7144  builder_.add_useRegularNms(useRegularNms);
7145  return builder_.Finish();
7146 }
7147 
7148 struct LstmInputParams FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7150  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7171  VT_OUTPUTLAYERNORMWEIGHTS = 44
7172  };
7173  const armnnSerializer::ConstTensor *inputToForgetWeights() const {
7174  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOFORGETWEIGHTS);
7175  }
7176  const armnnSerializer::ConstTensor *inputToCellWeights() const {
7177  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOCELLWEIGHTS);
7178  }
7179  const armnnSerializer::ConstTensor *inputToOutputWeights() const {
7180  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOOUTPUTWEIGHTS);
7181  }
7182  const armnnSerializer::ConstTensor *recurrentToForgetWeights() const {
7183  return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOFORGETWEIGHTS);
7184  }
7185  const armnnSerializer::ConstTensor *recurrentToCellWeights() const {
7186  return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOCELLWEIGHTS);
7187  }
7188  const armnnSerializer::ConstTensor *recurrentToOutputWeights() const {
7189  return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOOUTPUTWEIGHTS);
7190  }
7191  const armnnSerializer::ConstTensor *forgetGateBias() const {
7192  return GetPointer<const armnnSerializer::ConstTensor *>(VT_FORGETGATEBIAS);
7193  }
7194  const armnnSerializer::ConstTensor *cellBias() const {
7195  return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLBIAS);
7196  }
7197  const armnnSerializer::ConstTensor *outputGateBias() const {
7198  return GetPointer<const armnnSerializer::ConstTensor *>(VT_OUTPUTGATEBIAS);
7199  }
7200  const armnnSerializer::ConstTensor *inputToInputWeights() const {
7201  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOINPUTWEIGHTS);
7202  }
7203  const armnnSerializer::ConstTensor *recurrentToInputWeights() const {
7204  return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOINPUTWEIGHTS);
7205  }
7206  const armnnSerializer::ConstTensor *cellToInputWeights() const {
7207  return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLTOINPUTWEIGHTS);
7208  }
7209  const armnnSerializer::ConstTensor *inputGateBias() const {
7210  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTGATEBIAS);
7211  }
7212  const armnnSerializer::ConstTensor *projectionWeights() const {
7213  return GetPointer<const armnnSerializer::ConstTensor *>(VT_PROJECTIONWEIGHTS);
7214  }
7215  const armnnSerializer::ConstTensor *projectionBias() const {
7216  return GetPointer<const armnnSerializer::ConstTensor *>(VT_PROJECTIONBIAS);
7217  }
7218  const armnnSerializer::ConstTensor *cellToForgetWeights() const {
7219  return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLTOFORGETWEIGHTS);
7220  }
7221  const armnnSerializer::ConstTensor *cellToOutputWeights() const {
7222  return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLTOOUTPUTWEIGHTS);
7223  }
7224  const armnnSerializer::ConstTensor *inputLayerNormWeights() const {
7225  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTLAYERNORMWEIGHTS);
7226  }
7227  const armnnSerializer::ConstTensor *forgetLayerNormWeights() const {
7228  return GetPointer<const armnnSerializer::ConstTensor *>(VT_FORGETLAYERNORMWEIGHTS);
7229  }
7230  const armnnSerializer::ConstTensor *cellLayerNormWeights() const {
7231  return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLLAYERNORMWEIGHTS);
7232  }
7233  const armnnSerializer::ConstTensor *outputLayerNormWeights() const {
7234  return GetPointer<const armnnSerializer::ConstTensor *>(VT_OUTPUTLAYERNORMWEIGHTS);
7235  }
7236  bool Verify(flatbuffers::Verifier &verifier) const {
7237  return VerifyTableStart(verifier) &&
7238  VerifyOffset(verifier, VT_INPUTTOFORGETWEIGHTS) &&
7239  verifier.VerifyTable(inputToForgetWeights()) &&
7240  VerifyOffset(verifier, VT_INPUTTOCELLWEIGHTS) &&
7241  verifier.VerifyTable(inputToCellWeights()) &&
7242  VerifyOffset(verifier, VT_INPUTTOOUTPUTWEIGHTS) &&
7243  verifier.VerifyTable(inputToOutputWeights()) &&
7244  VerifyOffset(verifier, VT_RECURRENTTOFORGETWEIGHTS) &&
7245  verifier.VerifyTable(recurrentToForgetWeights()) &&
7246  VerifyOffset(verifier, VT_RECURRENTTOCELLWEIGHTS) &&
7247  verifier.VerifyTable(recurrentToCellWeights()) &&
7248  VerifyOffset(verifier, VT_RECURRENTTOOUTPUTWEIGHTS) &&
7249  verifier.VerifyTable(recurrentToOutputWeights()) &&
7250  VerifyOffset(verifier, VT_FORGETGATEBIAS) &&
7251  verifier.VerifyTable(forgetGateBias()) &&
7252  VerifyOffset(verifier, VT_CELLBIAS) &&
7253  verifier.VerifyTable(cellBias()) &&
7254  VerifyOffset(verifier, VT_OUTPUTGATEBIAS) &&
7255  verifier.VerifyTable(outputGateBias()) &&
7256  VerifyOffset(verifier, VT_INPUTTOINPUTWEIGHTS) &&
7257  verifier.VerifyTable(inputToInputWeights()) &&
7258  VerifyOffset(verifier, VT_RECURRENTTOINPUTWEIGHTS) &&
7259  verifier.VerifyTable(recurrentToInputWeights()) &&
7260  VerifyOffset(verifier, VT_CELLTOINPUTWEIGHTS) &&
7261  verifier.VerifyTable(cellToInputWeights()) &&
7262  VerifyOffset(verifier, VT_INPUTGATEBIAS) &&
7263  verifier.VerifyTable(inputGateBias()) &&
7264  VerifyOffset(verifier, VT_PROJECTIONWEIGHTS) &&
7265  verifier.VerifyTable(projectionWeights()) &&
7266  VerifyOffset(verifier, VT_PROJECTIONBIAS) &&
7267  verifier.VerifyTable(projectionBias()) &&
7268  VerifyOffset(verifier, VT_CELLTOFORGETWEIGHTS) &&
7269  verifier.VerifyTable(cellToForgetWeights()) &&
7270  VerifyOffset(verifier, VT_CELLTOOUTPUTWEIGHTS) &&
7271  verifier.VerifyTable(cellToOutputWeights()) &&
7272  VerifyOffset(verifier, VT_INPUTLAYERNORMWEIGHTS) &&
7273  verifier.VerifyTable(inputLayerNormWeights()) &&
7274  VerifyOffset(verifier, VT_FORGETLAYERNORMWEIGHTS) &&
7275  verifier.VerifyTable(forgetLayerNormWeights()) &&
7276  VerifyOffset(verifier, VT_CELLLAYERNORMWEIGHTS) &&
7277  verifier.VerifyTable(cellLayerNormWeights()) &&
7278  VerifyOffset(verifier, VT_OUTPUTLAYERNORMWEIGHTS) &&
7279  verifier.VerifyTable(outputLayerNormWeights()) &&
7280  verifier.EndTable();
7281  }
7282 };
7283 
7285  typedef LstmInputParams Table;
7286  flatbuffers::FlatBufferBuilder &fbb_;
7287  flatbuffers::uoffset_t start_;
7288  void add_inputToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToForgetWeights) {
7289  fbb_.AddOffset(LstmInputParams::VT_INPUTTOFORGETWEIGHTS, inputToForgetWeights);
7290  }
7291  void add_inputToCellWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToCellWeights) {
7292  fbb_.AddOffset(LstmInputParams::VT_INPUTTOCELLWEIGHTS, inputToCellWeights);
7293  }
7294  void add_inputToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToOutputWeights) {
7295  fbb_.AddOffset(LstmInputParams::VT_INPUTTOOUTPUTWEIGHTS, inputToOutputWeights);
7296  }
7297  void add_recurrentToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToForgetWeights) {
7298  fbb_.AddOffset(LstmInputParams::VT_RECURRENTTOFORGETWEIGHTS, recurrentToForgetWeights);
7299  }
7300  void add_recurrentToCellWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToCellWeights) {
7301  fbb_.AddOffset(LstmInputParams::VT_RECURRENTTOCELLWEIGHTS, recurrentToCellWeights);
7302  }
7303  void add_recurrentToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToOutputWeights) {
7304  fbb_.AddOffset(LstmInputParams::VT_RECURRENTTOOUTPUTWEIGHTS, recurrentToOutputWeights);
7305  }
7306  void add_forgetGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> forgetGateBias) {
7307  fbb_.AddOffset(LstmInputParams::VT_FORGETGATEBIAS, forgetGateBias);
7308  }
7309  void add_cellBias(flatbuffers::Offset<armnnSerializer::ConstTensor> cellBias) {
7310  fbb_.AddOffset(LstmInputParams::VT_CELLBIAS, cellBias);
7311  }
7312  void add_outputGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> outputGateBias) {
7313  fbb_.AddOffset(LstmInputParams::VT_OUTPUTGATEBIAS, outputGateBias);
7314  }
7315  void add_inputToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToInputWeights) {
7316  fbb_.AddOffset(LstmInputParams::VT_INPUTTOINPUTWEIGHTS, inputToInputWeights);
7317  }
7318  void add_recurrentToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToInputWeights) {
7319  fbb_.AddOffset(LstmInputParams::VT_RECURRENTTOINPUTWEIGHTS, recurrentToInputWeights);
7320  }
7321  void add_cellToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellToInputWeights) {
7322  fbb_.AddOffset(LstmInputParams::VT_CELLTOINPUTWEIGHTS, cellToInputWeights);
7323  }
7324  void add_inputGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> inputGateBias) {
7325  fbb_.AddOffset(LstmInputParams::VT_INPUTGATEBIAS, inputGateBias);
7326  }
7327  void add_projectionWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> projectionWeights) {
7328  fbb_.AddOffset(LstmInputParams::VT_PROJECTIONWEIGHTS, projectionWeights);
7329  }
7330  void add_projectionBias(flatbuffers::Offset<armnnSerializer::ConstTensor> projectionBias) {
7331  fbb_.AddOffset(LstmInputParams::VT_PROJECTIONBIAS, projectionBias);
7332  }
7333  void add_cellToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellToForgetWeights) {
7334  fbb_.AddOffset(LstmInputParams::VT_CELLTOFORGETWEIGHTS, cellToForgetWeights);
7335  }
7336  void add_cellToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellToOutputWeights) {
7337  fbb_.AddOffset(LstmInputParams::VT_CELLTOOUTPUTWEIGHTS, cellToOutputWeights);
7338  }
7339  void add_inputLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputLayerNormWeights) {
7340  fbb_.AddOffset(LstmInputParams::VT_INPUTLAYERNORMWEIGHTS, inputLayerNormWeights);
7341  }
7342  void add_forgetLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> forgetLayerNormWeights) {
7343  fbb_.AddOffset(LstmInputParams::VT_FORGETLAYERNORMWEIGHTS, forgetLayerNormWeights);
7344  }
7345  void add_cellLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellLayerNormWeights) {
7346  fbb_.AddOffset(LstmInputParams::VT_CELLLAYERNORMWEIGHTS, cellLayerNormWeights);
7347  }
7348  void add_outputLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> outputLayerNormWeights) {
7349  fbb_.AddOffset(LstmInputParams::VT_OUTPUTLAYERNORMWEIGHTS, outputLayerNormWeights);
7350  }
7351  explicit LstmInputParamsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7352  : fbb_(_fbb) {
7353  start_ = fbb_.StartTable();
7354  }
7355  LstmInputParamsBuilder &operator=(const LstmInputParamsBuilder &);
7356  flatbuffers::Offset<LstmInputParams> Finish() {
7357  const auto end = fbb_.EndTable(start_);
7358  auto o = flatbuffers::Offset<LstmInputParams>(end);
7359  return o;
7360  }
7361 };
7362 
7363 inline flatbuffers::Offset<LstmInputParams> CreateLstmInputParams(
7364  flatbuffers::FlatBufferBuilder &_fbb,
7365  flatbuffers::Offset<armnnSerializer::ConstTensor> inputToForgetWeights = 0,
7366  flatbuffers::Offset<armnnSerializer::ConstTensor> inputToCellWeights = 0,
7367  flatbuffers::Offset<armnnSerializer::ConstTensor> inputToOutputWeights = 0,
7368  flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToForgetWeights = 0,
7369  flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToCellWeights = 0,
7370  flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToOutputWeights = 0,
7371  flatbuffers::Offset<armnnSerializer::ConstTensor> forgetGateBias = 0,
7372  flatbuffers::Offset<armnnSerializer::ConstTensor> cellBias = 0,
7373  flatbuffers::Offset<armnnSerializer::ConstTensor> outputGateBias = 0,
7374  flatbuffers::Offset<armnnSerializer::ConstTensor> inputToInputWeights = 0,
7375  flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToInputWeights = 0,
7376  flatbuffers::Offset<armnnSerializer::ConstTensor> cellToInputWeights = 0,
7377  flatbuffers::Offset<armnnSerializer::ConstTensor> inputGateBias = 0,
7378  flatbuffers::Offset<armnnSerializer::ConstTensor> projectionWeights = 0,
7379  flatbuffers::Offset<armnnSerializer::ConstTensor> projectionBias = 0,
7380  flatbuffers::Offset<armnnSerializer::ConstTensor> cellToForgetWeights = 0,
7381  flatbuffers::Offset<armnnSerializer::ConstTensor> cellToOutputWeights = 0,
7382  flatbuffers::Offset<armnnSerializer::ConstTensor> inputLayerNormWeights = 0,
7383  flatbuffers::Offset<armnnSerializer::ConstTensor> forgetLayerNormWeights = 0,
7384  flatbuffers::Offset<armnnSerializer::ConstTensor> cellLayerNormWeights = 0,
7385  flatbuffers::Offset<armnnSerializer::ConstTensor> outputLayerNormWeights = 0) {
7386  LstmInputParamsBuilder builder_(_fbb);
7387  builder_.add_outputLayerNormWeights(outputLayerNormWeights);
7388  builder_.add_cellLayerNormWeights(cellLayerNormWeights);
7389  builder_.add_forgetLayerNormWeights(forgetLayerNormWeights);
7390  builder_.add_inputLayerNormWeights(inputLayerNormWeights);
7391  builder_.add_cellToOutputWeights(cellToOutputWeights);
7392  builder_.add_cellToForgetWeights(cellToForgetWeights);
7393  builder_.add_projectionBias(projectionBias);
7394  builder_.add_projectionWeights(projectionWeights);
7395  builder_.add_inputGateBias(inputGateBias);
7396  builder_.add_cellToInputWeights(cellToInputWeights);
7397  builder_.add_recurrentToInputWeights(recurrentToInputWeights);
7398  builder_.add_inputToInputWeights(inputToInputWeights);
7399  builder_.add_outputGateBias(outputGateBias);
7400  builder_.add_cellBias(cellBias);
7401  builder_.add_forgetGateBias(forgetGateBias);
7402  builder_.add_recurrentToOutputWeights(recurrentToOutputWeights);
7403  builder_.add_recurrentToCellWeights(recurrentToCellWeights);
7404  builder_.add_recurrentToForgetWeights(recurrentToForgetWeights);
7405  builder_.add_inputToOutputWeights(inputToOutputWeights);
7406  builder_.add_inputToCellWeights(inputToCellWeights);
7407  builder_.add_inputToForgetWeights(inputToForgetWeights);
7408  return builder_.Finish();
7409 }
7410 
7411 struct LstmDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7413  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7420  VT_LAYERNORMENABLED = 16
7421  };
7422  uint32_t activationFunc() const {
7423  return GetField<uint32_t>(VT_ACTIVATIONFUNC, 0);
7424  }
7425  float clippingThresCell() const {
7426  return GetField<float>(VT_CLIPPINGTHRESCELL, 0.0f);
7427  }
7428  float clippingThresProj() const {
7429  return GetField<float>(VT_CLIPPINGTHRESPROJ, 0.0f);
7430  }
7431  bool cifgEnabled() const {
7432  return GetField<uint8_t>(VT_CIFGENABLED, 1) != 0;
7433  }
7434  bool peepholeEnabled() const {
7435  return GetField<uint8_t>(VT_PEEPHOLEENABLED, 0) != 0;
7436  }
7437  bool projectionEnabled() const {
7438  return GetField<uint8_t>(VT_PROJECTIONENABLED, 0) != 0;
7439  }
7440  bool layerNormEnabled() const {
7441  return GetField<uint8_t>(VT_LAYERNORMENABLED, 0) != 0;
7442  }
7443  bool Verify(flatbuffers::Verifier &verifier) const {
7444  return VerifyTableStart(verifier) &&
7445  VerifyField<uint32_t>(verifier, VT_ACTIVATIONFUNC) &&
7446  VerifyField<float>(verifier, VT_CLIPPINGTHRESCELL) &&
7447  VerifyField<float>(verifier, VT_CLIPPINGTHRESPROJ) &&
7448  VerifyField<uint8_t>(verifier, VT_CIFGENABLED) &&
7449  VerifyField<uint8_t>(verifier, VT_PEEPHOLEENABLED) &&
7450  VerifyField<uint8_t>(verifier, VT_PROJECTIONENABLED) &&
7451  VerifyField<uint8_t>(verifier, VT_LAYERNORMENABLED) &&
7452  verifier.EndTable();
7453  }
7454 };
7455 
7457  typedef LstmDescriptor Table;
7458  flatbuffers::FlatBufferBuilder &fbb_;
7459  flatbuffers::uoffset_t start_;
7460  void add_activationFunc(uint32_t activationFunc) {
7461  fbb_.AddElement<uint32_t>(LstmDescriptor::VT_ACTIVATIONFUNC, activationFunc, 0);
7462  }
7463  void add_clippingThresCell(float clippingThresCell) {
7464  fbb_.AddElement<float>(LstmDescriptor::VT_CLIPPINGTHRESCELL, clippingThresCell, 0.0f);
7465  }
7466  void add_clippingThresProj(float clippingThresProj) {
7467  fbb_.AddElement<float>(LstmDescriptor::VT_CLIPPINGTHRESPROJ, clippingThresProj, 0.0f);
7468  }
7469  void add_cifgEnabled(bool cifgEnabled) {
7470  fbb_.AddElement<uint8_t>(LstmDescriptor::VT_CIFGENABLED, static_cast<uint8_t>(cifgEnabled), 1);
7471  }
7472  void add_peepholeEnabled(bool peepholeEnabled) {
7473  fbb_.AddElement<uint8_t>(LstmDescriptor::VT_PEEPHOLEENABLED, static_cast<uint8_t>(peepholeEnabled), 0);
7474  }
7475  void add_projectionEnabled(bool projectionEnabled) {
7476  fbb_.AddElement<uint8_t>(LstmDescriptor::VT_PROJECTIONENABLED, static_cast<uint8_t>(projectionEnabled), 0);
7477  }
7478  void add_layerNormEnabled(bool layerNormEnabled) {
7479  fbb_.AddElement<uint8_t>(LstmDescriptor::VT_LAYERNORMENABLED, static_cast<uint8_t>(layerNormEnabled), 0);
7480  }
7481  explicit LstmDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7482  : fbb_(_fbb) {
7483  start_ = fbb_.StartTable();
7484  }
7485  LstmDescriptorBuilder &operator=(const LstmDescriptorBuilder &);
7486  flatbuffers::Offset<LstmDescriptor> Finish() {
7487  const auto end = fbb_.EndTable(start_);
7488  auto o = flatbuffers::Offset<LstmDescriptor>(end);
7489  return o;
7490  }
7491 };
7492 
7493 inline flatbuffers::Offset<LstmDescriptor> CreateLstmDescriptor(
7494  flatbuffers::FlatBufferBuilder &_fbb,
7495  uint32_t activationFunc = 0,
7496  float clippingThresCell = 0.0f,
7497  float clippingThresProj = 0.0f,
7498  bool cifgEnabled = true,
7499  bool peepholeEnabled = false,
7500  bool projectionEnabled = false,
7501  bool layerNormEnabled = false) {
7502  LstmDescriptorBuilder builder_(_fbb);
7503  builder_.add_clippingThresProj(clippingThresProj);
7504  builder_.add_clippingThresCell(clippingThresCell);
7505  builder_.add_activationFunc(activationFunc);
7506  builder_.add_layerNormEnabled(layerNormEnabled);
7507  builder_.add_projectionEnabled(projectionEnabled);
7508  builder_.add_peepholeEnabled(peepholeEnabled);
7509  builder_.add_cifgEnabled(cifgEnabled);
7510  return builder_.Finish();
7511 }
7512 
7513 struct LstmLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7515  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7516  VT_BASE = 4,
7517  VT_DESCRIPTOR = 6,
7518  VT_INPUTPARAMS = 8
7519  };
7520  const armnnSerializer::LayerBase *base() const {
7521  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
7522  }
7523  const armnnSerializer::LstmDescriptor *descriptor() const {
7524  return GetPointer<const armnnSerializer::LstmDescriptor *>(VT_DESCRIPTOR);
7525  }
7526  const armnnSerializer::LstmInputParams *inputParams() const {
7527  return GetPointer<const armnnSerializer::LstmInputParams *>(VT_INPUTPARAMS);
7528  }
7529  bool Verify(flatbuffers::Verifier &verifier) const {
7530  return VerifyTableStart(verifier) &&
7531  VerifyOffset(verifier, VT_BASE) &&
7532  verifier.VerifyTable(base()) &&
7533  VerifyOffset(verifier, VT_DESCRIPTOR) &&
7534  verifier.VerifyTable(descriptor()) &&
7535  VerifyOffset(verifier, VT_INPUTPARAMS) &&
7536  verifier.VerifyTable(inputParams()) &&
7537  verifier.EndTable();
7538  }
7539 };
7540 
7542  typedef LstmLayer Table;
7543  flatbuffers::FlatBufferBuilder &fbb_;
7544  flatbuffers::uoffset_t start_;
7545  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
7546  fbb_.AddOffset(LstmLayer::VT_BASE, base);
7547  }
7548  void add_descriptor(flatbuffers::Offset<armnnSerializer::LstmDescriptor> descriptor) {
7549  fbb_.AddOffset(LstmLayer::VT_DESCRIPTOR, descriptor);
7550  }
7551  void add_inputParams(flatbuffers::Offset<armnnSerializer::LstmInputParams> inputParams) {
7552  fbb_.AddOffset(LstmLayer::VT_INPUTPARAMS, inputParams);
7553  }
7554  explicit LstmLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7555  : fbb_(_fbb) {
7556  start_ = fbb_.StartTable();
7557  }
7558  LstmLayerBuilder &operator=(const LstmLayerBuilder &);
7559  flatbuffers::Offset<LstmLayer> Finish() {
7560  const auto end = fbb_.EndTable(start_);
7561  auto o = flatbuffers::Offset<LstmLayer>(end);
7562  return o;
7563  }
7564 };
7565 
7566 inline flatbuffers::Offset<LstmLayer> CreateLstmLayer(
7567  flatbuffers::FlatBufferBuilder &_fbb,
7568  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
7569  flatbuffers::Offset<armnnSerializer::LstmDescriptor> descriptor = 0,
7570  flatbuffers::Offset<armnnSerializer::LstmInputParams> inputParams = 0) {
7571  LstmLayerBuilder builder_(_fbb);
7572  builder_.add_inputParams(inputParams);
7573  builder_.add_descriptor(descriptor);
7574  builder_.add_base(base);
7575  return builder_.Finish();
7576 }
7577 
7578 struct QLstmInputParams FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7580  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7587  VT_FORGETGATEBIAS = 16,
7588  VT_CELLBIAS = 18,
7589  VT_OUTPUTGATEBIAS = 20,
7592  VT_INPUTGATEBIAS = 26,
7593  VT_PROJECTIONWEIGHTS = 28,
7594  VT_PROJECTIONBIAS = 30,
7595  VT_CELLTOINPUTWEIGHTS = 32,
7601  VT_OUTPUTLAYERNORMWEIGHTS = 44
7602  };
7603  const armnnSerializer::ConstTensor *inputToForgetWeights() const {
7604  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOFORGETWEIGHTS);
7605  }
7606  const armnnSerializer::ConstTensor *inputToCellWeights() const {
7607  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOCELLWEIGHTS);
7608  }
7609  const armnnSerializer::ConstTensor *inputToOutputWeights() const {
7610  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOOUTPUTWEIGHTS);
7611  }
7612  const armnnSerializer::ConstTensor *recurrentToForgetWeights() const {
7613  return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOFORGETWEIGHTS);
7614  }
7615  const armnnSerializer::ConstTensor *recurrentToCellWeights() const {
7616  return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOCELLWEIGHTS);
7617  }
7618  const armnnSerializer::ConstTensor *recurrentToOutputWeights() const {
7619  return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOOUTPUTWEIGHTS);
7620  }
7621  const armnnSerializer::ConstTensor *forgetGateBias() const {
7622  return GetPointer<const armnnSerializer::ConstTensor *>(VT_FORGETGATEBIAS);
7623  }
7624  const armnnSerializer::ConstTensor *cellBias() const {
7625  return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLBIAS);
7626  }
7627  const armnnSerializer::ConstTensor *outputGateBias() const {
7628  return GetPointer<const armnnSerializer::ConstTensor *>(VT_OUTPUTGATEBIAS);
7629  }
7630  const armnnSerializer::ConstTensor *inputToInputWeights() const {
7631  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOINPUTWEIGHTS);
7632  }
7633  const armnnSerializer::ConstTensor *recurrentToInputWeights() const {
7634  return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOINPUTWEIGHTS);
7635  }
7636  const armnnSerializer::ConstTensor *inputGateBias() const {
7637  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTGATEBIAS);
7638  }
7639  const armnnSerializer::ConstTensor *projectionWeights() const {
7640  return GetPointer<const armnnSerializer::ConstTensor *>(VT_PROJECTIONWEIGHTS);
7641  }
7642  const armnnSerializer::ConstTensor *projectionBias() const {
7643  return GetPointer<const armnnSerializer::ConstTensor *>(VT_PROJECTIONBIAS);
7644  }
7645  const armnnSerializer::ConstTensor *cellToInputWeights() const {
7646  return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLTOINPUTWEIGHTS);
7647  }
7648  const armnnSerializer::ConstTensor *cellToForgetWeights() const {
7649  return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLTOFORGETWEIGHTS);
7650  }
7651  const armnnSerializer::ConstTensor *cellToOutputWeights() const {
7652  return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLTOOUTPUTWEIGHTS);
7653  }
7654  const armnnSerializer::ConstTensor *inputLayerNormWeights() const {
7655  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTLAYERNORMWEIGHTS);
7656  }
7657  const armnnSerializer::ConstTensor *forgetLayerNormWeights() const {
7658  return GetPointer<const armnnSerializer::ConstTensor *>(VT_FORGETLAYERNORMWEIGHTS);
7659  }
7660  const armnnSerializer::ConstTensor *cellLayerNormWeights() const {
7661  return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLLAYERNORMWEIGHTS);
7662  }
7663  const armnnSerializer::ConstTensor *outputLayerNormWeights() const {
7664  return GetPointer<const armnnSerializer::ConstTensor *>(VT_OUTPUTLAYERNORMWEIGHTS);
7665  }
7666  bool Verify(flatbuffers::Verifier &verifier) const {
7667  return VerifyTableStart(verifier) &&
7668  VerifyOffset(verifier, VT_INPUTTOFORGETWEIGHTS) &&
7669  verifier.VerifyTable(inputToForgetWeights()) &&
7670  VerifyOffset(verifier, VT_INPUTTOCELLWEIGHTS) &&
7671  verifier.VerifyTable(inputToCellWeights()) &&
7672  VerifyOffset(verifier, VT_INPUTTOOUTPUTWEIGHTS) &&
7673  verifier.VerifyTable(inputToOutputWeights()) &&
7674  VerifyOffset(verifier, VT_RECURRENTTOFORGETWEIGHTS) &&
7675  verifier.VerifyTable(recurrentToForgetWeights()) &&
7676  VerifyOffset(verifier, VT_RECURRENTTOCELLWEIGHTS) &&
7677  verifier.VerifyTable(recurrentToCellWeights()) &&
7678  VerifyOffset(verifier, VT_RECURRENTTOOUTPUTWEIGHTS) &&
7679  verifier.VerifyTable(recurrentToOutputWeights()) &&
7680  VerifyOffset(verifier, VT_FORGETGATEBIAS) &&
7681  verifier.VerifyTable(forgetGateBias()) &&
7682  VerifyOffset(verifier, VT_CELLBIAS) &&
7683  verifier.VerifyTable(cellBias()) &&
7684  VerifyOffset(verifier, VT_OUTPUTGATEBIAS) &&
7685  verifier.VerifyTable(outputGateBias()) &&
7686  VerifyOffset(verifier, VT_INPUTTOINPUTWEIGHTS) &&
7687  verifier.VerifyTable(inputToInputWeights()) &&
7688  VerifyOffset(verifier, VT_RECURRENTTOINPUTWEIGHTS) &&
7689  verifier.VerifyTable(recurrentToInputWeights()) &&
7690  VerifyOffset(verifier, VT_INPUTGATEBIAS) &&
7691  verifier.VerifyTable(inputGateBias()) &&
7692  VerifyOffset(verifier, VT_PROJECTIONWEIGHTS) &&
7693  verifier.VerifyTable(projectionWeights()) &&
7694  VerifyOffset(verifier, VT_PROJECTIONBIAS) &&
7695  verifier.VerifyTable(projectionBias()) &&
7696  VerifyOffset(verifier, VT_CELLTOINPUTWEIGHTS) &&
7697  verifier.VerifyTable(cellToInputWeights()) &&
7698  VerifyOffset(verifier, VT_CELLTOFORGETWEIGHTS) &&
7699  verifier.VerifyTable(cellToForgetWeights()) &&
7700  VerifyOffset(verifier, VT_CELLTOOUTPUTWEIGHTS) &&
7701  verifier.VerifyTable(cellToOutputWeights()) &&
7702  VerifyOffset(verifier, VT_INPUTLAYERNORMWEIGHTS) &&
7703  verifier.VerifyTable(inputLayerNormWeights()) &&
7704  VerifyOffset(verifier, VT_FORGETLAYERNORMWEIGHTS) &&
7705  verifier.VerifyTable(forgetLayerNormWeights()) &&
7706  VerifyOffset(verifier, VT_CELLLAYERNORMWEIGHTS) &&
7707  verifier.VerifyTable(cellLayerNormWeights()) &&
7708  VerifyOffset(verifier, VT_OUTPUTLAYERNORMWEIGHTS) &&
7709  verifier.VerifyTable(outputLayerNormWeights()) &&
7710  verifier.EndTable();
7711  }
7712 };
7713 
7715  typedef QLstmInputParams Table;
7716  flatbuffers::FlatBufferBuilder &fbb_;
7717  flatbuffers::uoffset_t start_;
7718  void add_inputToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToForgetWeights) {
7719  fbb_.AddOffset(QLstmInputParams::VT_INPUTTOFORGETWEIGHTS, inputToForgetWeights);
7720  }
7721  void add_inputToCellWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToCellWeights) {
7722  fbb_.AddOffset(QLstmInputParams::VT_INPUTTOCELLWEIGHTS, inputToCellWeights);
7723  }
7724  void add_inputToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToOutputWeights) {
7725  fbb_.AddOffset(QLstmInputParams::VT_INPUTTOOUTPUTWEIGHTS, inputToOutputWeights);
7726  }
7727  void add_recurrentToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToForgetWeights) {
7728  fbb_.AddOffset(QLstmInputParams::VT_RECURRENTTOFORGETWEIGHTS, recurrentToForgetWeights);
7729  }
7730  void add_recurrentToCellWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToCellWeights) {
7731  fbb_.AddOffset(QLstmInputParams::VT_RECURRENTTOCELLWEIGHTS, recurrentToCellWeights);
7732  }
7733  void add_recurrentToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToOutputWeights) {
7734  fbb_.AddOffset(QLstmInputParams::VT_RECURRENTTOOUTPUTWEIGHTS, recurrentToOutputWeights);
7735  }
7736  void add_forgetGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> forgetGateBias) {
7737  fbb_.AddOffset(QLstmInputParams::VT_FORGETGATEBIAS, forgetGateBias);
7738  }
7739  void add_cellBias(flatbuffers::Offset<armnnSerializer::ConstTensor> cellBias) {
7740  fbb_.AddOffset(QLstmInputParams::VT_CELLBIAS, cellBias);
7741  }
7742  void add_outputGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> outputGateBias) {
7743  fbb_.AddOffset(QLstmInputParams::VT_OUTPUTGATEBIAS, outputGateBias);
7744  }
7745  void add_inputToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToInputWeights) {
7746  fbb_.AddOffset(QLstmInputParams::VT_INPUTTOINPUTWEIGHTS, inputToInputWeights);
7747  }
7748  void add_recurrentToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToInputWeights) {
7749  fbb_.AddOffset(QLstmInputParams::VT_RECURRENTTOINPUTWEIGHTS, recurrentToInputWeights);
7750  }
7751  void add_inputGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> inputGateBias) {
7752  fbb_.AddOffset(QLstmInputParams::VT_INPUTGATEBIAS, inputGateBias);
7753  }
7754  void add_projectionWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> projectionWeights) {
7755  fbb_.AddOffset(QLstmInputParams::VT_PROJECTIONWEIGHTS, projectionWeights);
7756  }
7757  void add_projectionBias(flatbuffers::Offset<armnnSerializer::ConstTensor> projectionBias) {
7758  fbb_.AddOffset(QLstmInputParams::VT_PROJECTIONBIAS, projectionBias);
7759  }
7760  void add_cellToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellToInputWeights) {
7761  fbb_.AddOffset(QLstmInputParams::VT_CELLTOINPUTWEIGHTS, cellToInputWeights);
7762  }
7763  void add_cellToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellToForgetWeights) {
7764  fbb_.AddOffset(QLstmInputParams::VT_CELLTOFORGETWEIGHTS, cellToForgetWeights);
7765  }
7766  void add_cellToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellToOutputWeights) {
7767  fbb_.AddOffset(QLstmInputParams::VT_CELLTOOUTPUTWEIGHTS, cellToOutputWeights);
7768  }
7769  void add_inputLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputLayerNormWeights) {
7770  fbb_.AddOffset(QLstmInputParams::VT_INPUTLAYERNORMWEIGHTS, inputLayerNormWeights);
7771  }
7772  void add_forgetLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> forgetLayerNormWeights) {
7773  fbb_.AddOffset(QLstmInputParams::VT_FORGETLAYERNORMWEIGHTS, forgetLayerNormWeights);
7774  }
7775  void add_cellLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellLayerNormWeights) {
7776  fbb_.AddOffset(QLstmInputParams::VT_CELLLAYERNORMWEIGHTS, cellLayerNormWeights);
7777  }
7778  void add_outputLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> outputLayerNormWeights) {
7779  fbb_.AddOffset(QLstmInputParams::VT_OUTPUTLAYERNORMWEIGHTS, outputLayerNormWeights);
7780  }
7781  explicit QLstmInputParamsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7782  : fbb_(_fbb) {
7783  start_ = fbb_.StartTable();
7784  }
7786  flatbuffers::Offset<QLstmInputParams> Finish() {
7787  const auto end = fbb_.EndTable(start_);
7788  auto o = flatbuffers::Offset<QLstmInputParams>(end);
7789  return o;
7790  }
7791 };
7792 
7793 inline flatbuffers::Offset<QLstmInputParams> CreateQLstmInputParams(
7794  flatbuffers::FlatBufferBuilder &_fbb,
7795  flatbuffers::Offset<armnnSerializer::ConstTensor> inputToForgetWeights = 0,
7796  flatbuffers::Offset<armnnSerializer::ConstTensor> inputToCellWeights = 0,
7797  flatbuffers::Offset<armnnSerializer::ConstTensor> inputToOutputWeights = 0,
7798  flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToForgetWeights = 0,
7799  flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToCellWeights = 0,
7800  flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToOutputWeights = 0,
7801  flatbuffers::Offset<armnnSerializer::ConstTensor> forgetGateBias = 0,
7802  flatbuffers::Offset<armnnSerializer::ConstTensor> cellBias = 0,
7803  flatbuffers::Offset<armnnSerializer::ConstTensor> outputGateBias = 0,
7804  flatbuffers::Offset<armnnSerializer::ConstTensor> inputToInputWeights = 0,
7805  flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToInputWeights = 0,
7806  flatbuffers::Offset<armnnSerializer::ConstTensor> inputGateBias = 0,
7807  flatbuffers::Offset<armnnSerializer::ConstTensor> projectionWeights = 0,
7808  flatbuffers::Offset<armnnSerializer::ConstTensor> projectionBias = 0,
7809  flatbuffers::Offset<armnnSerializer::ConstTensor> cellToInputWeights = 0,
7810  flatbuffers::Offset<armnnSerializer::ConstTensor> cellToForgetWeights = 0,
7811  flatbuffers::Offset<armnnSerializer::ConstTensor> cellToOutputWeights = 0,
7812  flatbuffers::Offset<armnnSerializer::ConstTensor> inputLayerNormWeights = 0,
7813  flatbuffers::Offset<armnnSerializer::ConstTensor> forgetLayerNormWeights = 0,
7814  flatbuffers::Offset<armnnSerializer::ConstTensor> cellLayerNormWeights = 0,
7815  flatbuffers::Offset<armnnSerializer::ConstTensor> outputLayerNormWeights = 0) {
7816  QLstmInputParamsBuilder builder_(_fbb);
7817  builder_.add_outputLayerNormWeights(outputLayerNormWeights);
7818  builder_.add_cellLayerNormWeights(cellLayerNormWeights);
7819  builder_.add_forgetLayerNormWeights(forgetLayerNormWeights);
7820  builder_.add_inputLayerNormWeights(inputLayerNormWeights);
7821  builder_.add_cellToOutputWeights(cellToOutputWeights);
7822  builder_.add_cellToForgetWeights(cellToForgetWeights);
7823  builder_.add_cellToInputWeights(cellToInputWeights);
7824  builder_.add_projectionBias(projectionBias);
7825  builder_.add_projectionWeights(projectionWeights);
7826  builder_.add_inputGateBias(inputGateBias);
7827  builder_.add_recurrentToInputWeights(recurrentToInputWeights);
7828  builder_.add_inputToInputWeights(inputToInputWeights);
7829  builder_.add_outputGateBias(outputGateBias);
7830  builder_.add_cellBias(cellBias);
7831  builder_.add_forgetGateBias(forgetGateBias);
7832  builder_.add_recurrentToOutputWeights(recurrentToOutputWeights);
7833  builder_.add_recurrentToCellWeights(recurrentToCellWeights);
7834  builder_.add_recurrentToForgetWeights(recurrentToForgetWeights);
7835  builder_.add_inputToOutputWeights(inputToOutputWeights);
7836  builder_.add_inputToCellWeights(inputToCellWeights);
7837  builder_.add_inputToForgetWeights(inputToForgetWeights);
7838  return builder_.Finish();
7839 }
7840 
7841 struct QLstmDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7843  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7844  VT_CIFGENABLED = 4,
7845  VT_PEEPHOLEENABLED = 6,
7855  VT_HIDDENSTATESCALE = 26
7856  };
7857  bool cifgEnabled() const {
7858  return GetField<uint8_t>(VT_CIFGENABLED, 1) != 0;
7859  }
7860  bool peepholeEnabled() const {
7861  return GetField<uint8_t>(VT_PEEPHOLEENABLED, 0) != 0;
7862  }
7863  bool projectionEnabled() const {
7864  return GetField<uint8_t>(VT_PROJECTIONENABLED, 0) != 0;
7865  }
7866  bool layerNormEnabled() const {
7867  return GetField<uint8_t>(VT_LAYERNORMENABLED, 0) != 0;
7868  }
7869  float cellClip() const {
7870  return GetField<float>(VT_CELLCLIP, 0.0f);
7871  }
7872  float projectionClip() const {
7873  return GetField<float>(VT_PROJECTIONCLIP, 0.0f);
7874  }
7875  float inputIntermediateScale() const {
7876  return GetField<float>(VT_INPUTINTERMEDIATESCALE, 0.0f);
7877  }
7878  float forgetIntermediateScale() const {
7879  return GetField<float>(VT_FORGETINTERMEDIATESCALE, 0.0f);
7880  }
7881  float cellIntermediateScale() const {
7882  return GetField<float>(VT_CELLINTERMEDIATESCALE, 0.0f);
7883  }
7884  float outputIntermediateScale() const {
7885  return GetField<float>(VT_OUTPUTINTERMEDIATESCALE, 0.0f);
7886  }
7887  int32_t hiddenStateZeroPoint() const {
7888  return GetField<int32_t>(VT_HIDDENSTATEZEROPOINT, 0);
7889  }
7890  float hiddenStateScale() const {
7891  return GetField<float>(VT_HIDDENSTATESCALE, 0.0f);
7892  }
7893  bool Verify(flatbuffers::Verifier &verifier) const {
7894  return VerifyTableStart(verifier) &&
7895  VerifyField<uint8_t>(verifier, VT_CIFGENABLED) &&
7896  VerifyField<uint8_t>(verifier, VT_PEEPHOLEENABLED) &&
7897  VerifyField<uint8_t>(verifier, VT_PROJECTIONENABLED) &&
7898  VerifyField<uint8_t>(verifier, VT_LAYERNORMENABLED) &&
7899  VerifyField<float>(verifier, VT_CELLCLIP) &&
7900  VerifyField<float>(verifier, VT_PROJECTIONCLIP) &&
7901  VerifyField<float>(verifier, VT_INPUTINTERMEDIATESCALE) &&
7902  VerifyField<float>(verifier, VT_FORGETINTERMEDIATESCALE) &&
7903  VerifyField<float>(verifier, VT_CELLINTERMEDIATESCALE) &&
7904  VerifyField<float>(verifier, VT_OUTPUTINTERMEDIATESCALE) &&
7905  VerifyField<int32_t>(verifier, VT_HIDDENSTATEZEROPOINT) &&
7906  VerifyField<float>(verifier, VT_HIDDENSTATESCALE) &&
7907  verifier.EndTable();
7908  }
7909 };
7910 
7912  typedef QLstmDescriptor Table;
7913  flatbuffers::FlatBufferBuilder &fbb_;
7914  flatbuffers::uoffset_t start_;
7915  void add_cifgEnabled(bool cifgEnabled) {
7916  fbb_.AddElement<uint8_t>(QLstmDescriptor::VT_CIFGENABLED, static_cast<uint8_t>(cifgEnabled), 1);
7917  }
7918  void add_peepholeEnabled(bool peepholeEnabled) {
7919  fbb_.AddElement<uint8_t>(QLstmDescriptor::VT_PEEPHOLEENABLED, static_cast<uint8_t>(peepholeEnabled), 0);
7920  }
7921  void add_projectionEnabled(bool projectionEnabled) {
7922  fbb_.AddElement<uint8_t>(QLstmDescriptor::VT_PROJECTIONENABLED, static_cast<uint8_t>(projectionEnabled), 0);
7923  }
7924  void add_layerNormEnabled(bool layerNormEnabled) {
7925  fbb_.AddElement<uint8_t>(QLstmDescriptor::VT_LAYERNORMENABLED, static_cast<uint8_t>(layerNormEnabled), 0);
7926  }
7927  void add_cellClip(float cellClip) {
7928  fbb_.AddElement<float>(QLstmDescriptor::VT_CELLCLIP, cellClip, 0.0f);
7929  }
7930  void add_projectionClip(float projectionClip) {
7931  fbb_.AddElement<float>(QLstmDescriptor::VT_PROJECTIONCLIP, projectionClip, 0.0f);
7932  }
7933  void add_inputIntermediateScale(float inputIntermediateScale) {
7934  fbb_.AddElement<float>(QLstmDescriptor::VT_INPUTINTERMEDIATESCALE, inputIntermediateScale, 0.0f);
7935  }
7936  void add_forgetIntermediateScale(float forgetIntermediateScale) {
7937  fbb_.AddElement<float>(QLstmDescriptor::VT_FORGETINTERMEDIATESCALE, forgetIntermediateScale, 0.0f);
7938  }
7939  void add_cellIntermediateScale(float cellIntermediateScale) {
7940  fbb_.AddElement<float>(QLstmDescriptor::VT_CELLINTERMEDIATESCALE, cellIntermediateScale, 0.0f);
7941  }
7942  void add_outputIntermediateScale(float outputIntermediateScale) {
7943  fbb_.AddElement<float>(QLstmDescriptor::VT_OUTPUTINTERMEDIATESCALE, outputIntermediateScale, 0.0f);
7944  }
7945  void add_hiddenStateZeroPoint(int32_t hiddenStateZeroPoint) {
7946  fbb_.AddElement<int32_t>(QLstmDescriptor::VT_HIDDENSTATEZEROPOINT, hiddenStateZeroPoint, 0);
7947  }
7948  void add_hiddenStateScale(float hiddenStateScale) {
7949  fbb_.AddElement<float>(QLstmDescriptor::VT_HIDDENSTATESCALE, hiddenStateScale, 0.0f);
7950  }
7951  explicit QLstmDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7952  : fbb_(_fbb) {
7953  start_ = fbb_.StartTable();
7954  }
7955  QLstmDescriptorBuilder &operator=(const QLstmDescriptorBuilder &);
7956  flatbuffers::Offset<QLstmDescriptor> Finish() {
7957  const auto end = fbb_.EndTable(start_);
7958  auto o = flatbuffers::Offset<QLstmDescriptor>(end);
7959  return o;
7960  }
7961 };
7962 
7963 inline flatbuffers::Offset<QLstmDescriptor> CreateQLstmDescriptor(
7964  flatbuffers::FlatBufferBuilder &_fbb,
7965  bool cifgEnabled = true,
7966  bool peepholeEnabled = false,
7967  bool projectionEnabled = false,
7968  bool layerNormEnabled = false,
7969  float cellClip = 0.0f,
7970  float projectionClip = 0.0f,
7971  float inputIntermediateScale = 0.0f,
7972  float forgetIntermediateScale = 0.0f,
7973  float cellIntermediateScale = 0.0f,
7974  float outputIntermediateScale = 0.0f,
7975  int32_t hiddenStateZeroPoint = 0,
7976  float hiddenStateScale = 0.0f) {
7977  QLstmDescriptorBuilder builder_(_fbb);
7978  builder_.add_hiddenStateScale(hiddenStateScale);
7979  builder_.add_hiddenStateZeroPoint(hiddenStateZeroPoint);
7980  builder_.add_outputIntermediateScale(outputIntermediateScale);
7981  builder_.add_cellIntermediateScale(cellIntermediateScale);
7982  builder_.add_forgetIntermediateScale(forgetIntermediateScale);
7983  builder_.add_inputIntermediateScale(inputIntermediateScale);
7984  builder_.add_projectionClip(projectionClip);
7985  builder_.add_cellClip(cellClip);
7986  builder_.add_layerNormEnabled(layerNormEnabled);
7987  builder_.add_projectionEnabled(projectionEnabled);
7988  builder_.add_peepholeEnabled(peepholeEnabled);
7989  builder_.add_cifgEnabled(cifgEnabled);
7990  return builder_.Finish();
7991 }
7992 
7993 struct QLstmLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7995  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7996  VT_BASE = 4,
7997  VT_DESCRIPTOR = 6,
7998  VT_INPUTPARAMS = 8
7999  };
8000  const armnnSerializer::LayerBase *base() const {
8001  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
8002  }
8003  const armnnSerializer::QLstmDescriptor *descriptor() const {
8004  return GetPointer<const armnnSerializer::QLstmDescriptor *>(VT_DESCRIPTOR);
8005  }
8006  const armnnSerializer::QLstmInputParams *inputParams() const {
8007  return GetPointer<const armnnSerializer::QLstmInputParams *>(VT_INPUTPARAMS);
8008  }
8009  bool Verify(flatbuffers::Verifier &verifier) const {
8010  return VerifyTableStart(verifier) &&
8011  VerifyOffset(verifier, VT_BASE) &&
8012  verifier.VerifyTable(base()) &&
8013  VerifyOffset(verifier, VT_DESCRIPTOR) &&
8014  verifier.VerifyTable(descriptor()) &&
8015  VerifyOffset(verifier, VT_INPUTPARAMS) &&
8016  verifier.VerifyTable(inputParams()) &&
8017  verifier.EndTable();
8018  }
8019 };
8020 
8022  typedef QLstmLayer Table;
8023  flatbuffers::FlatBufferBuilder &fbb_;
8024  flatbuffers::uoffset_t start_;
8025  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
8026  fbb_.AddOffset(QLstmLayer::VT_BASE, base);
8027  }
8028  void add_descriptor(flatbuffers::Offset<armnnSerializer::QLstmDescriptor> descriptor) {
8029  fbb_.AddOffset(QLstmLayer::VT_DESCRIPTOR, descriptor);
8030  }
8031  void add_inputParams(flatbuffers::Offset<armnnSerializer::QLstmInputParams> inputParams) {
8032  fbb_.AddOffset(QLstmLayer::VT_INPUTPARAMS, inputParams);
8033  }
8034  explicit QLstmLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8035  : fbb_(_fbb) {
8036  start_ = fbb_.StartTable();
8037  }
8038  QLstmLayerBuilder &operator=(const QLstmLayerBuilder &);
8039  flatbuffers::Offset<QLstmLayer> Finish() {
8040  const auto end = fbb_.EndTable(start_);
8041  auto o = flatbuffers::Offset<QLstmLayer>(end);
8042  return o;
8043  }
8044 };
8045 
8046 inline flatbuffers::Offset<QLstmLayer> CreateQLstmLayer(
8047  flatbuffers::FlatBufferBuilder &_fbb,
8048  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
8049  flatbuffers::Offset<armnnSerializer::QLstmDescriptor> descriptor = 0,
8050  flatbuffers::Offset<armnnSerializer::QLstmInputParams> inputParams = 0) {
8051  QLstmLayerBuilder builder_(_fbb);
8052  builder_.add_inputParams(inputParams);
8053  builder_.add_descriptor(descriptor);
8054  builder_.add_base(base);
8055  return builder_.Finish();
8056 }
8057 
8058 struct QuantizedLstmInputParams FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8060  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8069  VT_INPUTGATEBIAS = 20,
8070  VT_FORGETGATEBIAS = 22,
8071  VT_CELLBIAS = 24,
8072  VT_OUTPUTGATEBIAS = 26
8073  };
8074  const armnnSerializer::ConstTensor *inputToInputWeights() const {
8075  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOINPUTWEIGHTS);
8076  }
8077  const armnnSerializer::ConstTensor *inputToForgetWeights() const {
8078  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOFORGETWEIGHTS);
8079  }
8080  const armnnSerializer::ConstTensor *inputToCellWeights() const {
8081  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOCELLWEIGHTS);
8082  }
8083  const armnnSerializer::ConstTensor *inputToOutputWeights() const {
8084  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOOUTPUTWEIGHTS);
8085  }
8086  const armnnSerializer::ConstTensor *recurrentToInputWeights() const {
8087  return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOINPUTWEIGHTS);
8088  }
8089  const armnnSerializer::ConstTensor *recurrentToForgetWeights() const {
8090  return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOFORGETWEIGHTS);
8091  }
8092  const armnnSerializer::ConstTensor *recurrentToCellWeights() const {
8093  return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOCELLWEIGHTS);
8094  }
8095  const armnnSerializer::ConstTensor *recurrentToOutputWeights() const {
8096  return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOOUTPUTWEIGHTS);
8097  }
8098  const armnnSerializer::ConstTensor *inputGateBias() const {
8099  return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTGATEBIAS);
8100  }
8101  const armnnSerializer::ConstTensor *forgetGateBias() const {
8102  return GetPointer<const armnnSerializer::ConstTensor *>(VT_FORGETGATEBIAS);
8103  }
8104  const armnnSerializer::ConstTensor *cellBias() const {
8105  return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLBIAS);
8106  }
8107  const armnnSerializer::ConstTensor *outputGateBias() const {
8108  return GetPointer<const armnnSerializer::ConstTensor *>(VT_OUTPUTGATEBIAS);
8109  }
8110  bool Verify(flatbuffers::Verifier &verifier) const {
8111  return VerifyTableStart(verifier) &&
8112  VerifyOffset(verifier, VT_INPUTTOINPUTWEIGHTS) &&
8113  verifier.VerifyTable(inputToInputWeights()) &&
8114  VerifyOffset(verifier, VT_INPUTTOFORGETWEIGHTS) &&
8115  verifier.VerifyTable(inputToForgetWeights()) &&
8116  VerifyOffset(verifier, VT_INPUTTOCELLWEIGHTS) &&
8117  verifier.VerifyTable(inputToCellWeights()) &&
8118  VerifyOffset(verifier, VT_INPUTTOOUTPUTWEIGHTS) &&
8119  verifier.VerifyTable(inputToOutputWeights()) &&
8120  VerifyOffset(verifier, VT_RECURRENTTOINPUTWEIGHTS) &&
8121  verifier.VerifyTable(recurrentToInputWeights()) &&
8122  VerifyOffset(verifier, VT_RECURRENTTOFORGETWEIGHTS) &&
8123  verifier.VerifyTable(recurrentToForgetWeights()) &&
8124  VerifyOffset(verifier, VT_RECURRENTTOCELLWEIGHTS) &&
8125  verifier.VerifyTable(recurrentToCellWeights()) &&
8126  VerifyOffset(verifier, VT_RECURRENTTOOUTPUTWEIGHTS) &&
8127  verifier.VerifyTable(recurrentToOutputWeights()) &&
8128  VerifyOffset(verifier, VT_INPUTGATEBIAS) &&
8129  verifier.VerifyTable(inputGateBias()) &&
8130  VerifyOffset(verifier, VT_FORGETGATEBIAS) &&
8131  verifier.VerifyTable(forgetGateBias()) &&
8132  VerifyOffset(verifier, VT_CELLBIAS) &&
8133  verifier.VerifyTable(cellBias()) &&
8134  VerifyOffset(verifier, VT_OUTPUTGATEBIAS) &&
8135  verifier.VerifyTable(outputGateBias()) &&
8136  verifier.EndTable();
8137  }
8138 };
8139 
8141  typedef QuantizedLstmInputParams Table;
8142  flatbuffers::FlatBufferBuilder &fbb_;
8143  flatbuffers::uoffset_t start_;
8144  void add_inputToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToInputWeights) {
8145  fbb_.AddOffset(QuantizedLstmInputParams::VT_INPUTTOINPUTWEIGHTS, inputToInputWeights);
8146  }
8147  void add_inputToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToForgetWeights) {
8148  fbb_.AddOffset(QuantizedLstmInputParams::VT_INPUTTOFORGETWEIGHTS, inputToForgetWeights);
8149  }
8150  void add_inputToCellWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToCellWeights) {
8151  fbb_.AddOffset(QuantizedLstmInputParams::VT_INPUTTOCELLWEIGHTS, inputToCellWeights);
8152  }
8153  void add_inputToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToOutputWeights) {
8154  fbb_.AddOffset(QuantizedLstmInputParams::VT_INPUTTOOUTPUTWEIGHTS, inputToOutputWeights);
8155  }
8156  void add_recurrentToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToInputWeights) {
8157  fbb_.AddOffset(QuantizedLstmInputParams::VT_RECURRENTTOINPUTWEIGHTS, recurrentToInputWeights);
8158  }
8159  void add_recurrentToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToForgetWeights) {
8160  fbb_.AddOffset(QuantizedLstmInputParams::VT_RECURRENTTOFORGETWEIGHTS, recurrentToForgetWeights);
8161  }
8162  void add_recurrentToCellWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToCellWeights) {
8163  fbb_.AddOffset(QuantizedLstmInputParams::VT_RECURRENTTOCELLWEIGHTS, recurrentToCellWeights);
8164  }
8165  void add_recurrentToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToOutputWeights) {
8166  fbb_.AddOffset(QuantizedLstmInputParams::VT_RECURRENTTOOUTPUTWEIGHTS, recurrentToOutputWeights);
8167  }
8168  void add_inputGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> inputGateBias) {
8169  fbb_.AddOffset(QuantizedLstmInputParams::VT_INPUTGATEBIAS, inputGateBias);
8170  }
8171  void add_forgetGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> forgetGateBias) {
8172  fbb_.AddOffset(QuantizedLstmInputParams::VT_FORGETGATEBIAS, forgetGateBias);
8173  }
8174  void add_cellBias(flatbuffers::Offset<armnnSerializer::ConstTensor> cellBias) {
8175  fbb_.AddOffset(QuantizedLstmInputParams::VT_CELLBIAS, cellBias);
8176  }
8177  void add_outputGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> outputGateBias) {
8178  fbb_.AddOffset(QuantizedLstmInputParams::VT_OUTPUTGATEBIAS, outputGateBias);
8179  }
8180  explicit QuantizedLstmInputParamsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8181  : fbb_(_fbb) {
8182  start_ = fbb_.StartTable();
8183  }
8185  flatbuffers::Offset<QuantizedLstmInputParams> Finish() {
8186  const auto end = fbb_.EndTable(start_);
8187  auto o = flatbuffers::Offset<QuantizedLstmInputParams>(end);
8188  return o;
8189  }
8190 };
8191 
8192 inline flatbuffers::Offset<QuantizedLstmInputParams> CreateQuantizedLstmInputParams(
8193  flatbuffers::FlatBufferBuilder &_fbb,
8194  flatbuffers::Offset<armnnSerializer::ConstTensor> inputToInputWeights = 0,
8195  flatbuffers::Offset<armnnSerializer::ConstTensor> inputToForgetWeights = 0,
8196  flatbuffers::Offset<armnnSerializer::ConstTensor> inputToCellWeights = 0,
8197  flatbuffers::Offset<armnnSerializer::ConstTensor> inputToOutputWeights = 0,
8198  flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToInputWeights = 0,
8199  flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToForgetWeights = 0,
8200  flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToCellWeights = 0,
8201  flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToOutputWeights = 0,
8202  flatbuffers::Offset<armnnSerializer::ConstTensor> inputGateBias = 0,
8203  flatbuffers::Offset<armnnSerializer::ConstTensor> forgetGateBias = 0,
8204  flatbuffers::Offset<armnnSerializer::ConstTensor> cellBias = 0,
8205  flatbuffers::Offset<armnnSerializer::ConstTensor> outputGateBias = 0) {
8206  QuantizedLstmInputParamsBuilder builder_(_fbb);
8207  builder_.add_outputGateBias(outputGateBias);
8208  builder_.add_cellBias(cellBias);
8209  builder_.add_forgetGateBias(forgetGateBias);
8210  builder_.add_inputGateBias(inputGateBias);
8211  builder_.add_recurrentToOutputWeights(recurrentToOutputWeights);
8212  builder_.add_recurrentToCellWeights(recurrentToCellWeights);
8213  builder_.add_recurrentToForgetWeights(recurrentToForgetWeights);
8214  builder_.add_recurrentToInputWeights(recurrentToInputWeights);
8215  builder_.add_inputToOutputWeights(inputToOutputWeights);
8216  builder_.add_inputToCellWeights(inputToCellWeights);
8217  builder_.add_inputToForgetWeights(inputToForgetWeights);
8218  builder_.add_inputToInputWeights(inputToInputWeights);
8219  return builder_.Finish();
8220 }
8221 
8222 struct QuantizedLstmLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8224  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8225  VT_BASE = 4,
8226  VT_INPUTPARAMS = 6
8227  };
8228  const armnnSerializer::LayerBase *base() const {
8229  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
8230  }
8231  const armnnSerializer::QuantizedLstmInputParams *inputParams() const {
8232  return GetPointer<const armnnSerializer::QuantizedLstmInputParams *>(VT_INPUTPARAMS);
8233  }
8234  bool Verify(flatbuffers::Verifier &verifier) const {
8235  return VerifyTableStart(verifier) &&
8236  VerifyOffset(verifier, VT_BASE) &&
8237  verifier.VerifyTable(base()) &&
8238  VerifyOffset(verifier, VT_INPUTPARAMS) &&
8239  verifier.VerifyTable(inputParams()) &&
8240  verifier.EndTable();
8241  }
8242 };
8243 
8245  typedef QuantizedLstmLayer Table;
8246  flatbuffers::FlatBufferBuilder &fbb_;
8247  flatbuffers::uoffset_t start_;
8248  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
8249  fbb_.AddOffset(QuantizedLstmLayer::VT_BASE, base);
8250  }
8251  void add_inputParams(flatbuffers::Offset<armnnSerializer::QuantizedLstmInputParams> inputParams) {
8252  fbb_.AddOffset(QuantizedLstmLayer::VT_INPUTPARAMS, inputParams);
8253  }
8254  explicit QuantizedLstmLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8255  : fbb_(_fbb) {
8256  start_ = fbb_.StartTable();
8257  }
8259  flatbuffers::Offset<QuantizedLstmLayer> Finish() {
8260  const auto end = fbb_.EndTable(start_);
8261  auto o = flatbuffers::Offset<QuantizedLstmLayer>(end);
8262  return o;
8263  }
8264 };
8265 
8266 inline flatbuffers::Offset<QuantizedLstmLayer> CreateQuantizedLstmLayer(
8267  flatbuffers::FlatBufferBuilder &_fbb,
8268  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
8269  flatbuffers::Offset<armnnSerializer::QuantizedLstmInputParams> inputParams = 0) {
8270  QuantizedLstmLayerBuilder builder_(_fbb);
8271  builder_.add_inputParams(inputParams);
8272  builder_.add_base(base);
8273  return builder_.Finish();
8274 }
8275 
8276 struct DequantizeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8278  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8279  VT_BASE = 4
8280  };
8281  const armnnSerializer::LayerBase *base() const {
8282  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
8283  }
8284  bool Verify(flatbuffers::Verifier &verifier) const {
8285  return VerifyTableStart(verifier) &&
8286  VerifyOffset(verifier, VT_BASE) &&
8287  verifier.VerifyTable(base()) &&
8288  verifier.EndTable();
8289  }
8290 };
8291 
8293  typedef DequantizeLayer Table;
8294  flatbuffers::FlatBufferBuilder &fbb_;
8295  flatbuffers::uoffset_t start_;
8296  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
8297  fbb_.AddOffset(DequantizeLayer::VT_BASE, base);
8298  }
8299  explicit DequantizeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8300  : fbb_(_fbb) {
8301  start_ = fbb_.StartTable();
8302  }
8303  DequantizeLayerBuilder &operator=(const DequantizeLayerBuilder &);
8304  flatbuffers::Offset<DequantizeLayer> Finish() {
8305  const auto end = fbb_.EndTable(start_);
8306  auto o = flatbuffers::Offset<DequantizeLayer>(end);
8307  return o;
8308  }
8309 };
8310 
8311 inline flatbuffers::Offset<DequantizeLayer> CreateDequantizeLayer(
8312  flatbuffers::FlatBufferBuilder &_fbb,
8313  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
8314  DequantizeLayerBuilder builder_(_fbb);
8315  builder_.add_base(base);
8316  return builder_.Finish();
8317 }
8318 
8319 struct MergeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8321  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8322  VT_BASE = 4
8323  };
8324  const armnnSerializer::LayerBase *base() const {
8325  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
8326  }
8327  bool Verify(flatbuffers::Verifier &verifier) const {
8328  return VerifyTableStart(verifier) &&
8329  VerifyOffset(verifier, VT_BASE) &&
8330  verifier.VerifyTable(base()) &&
8331  verifier.EndTable();
8332  }
8333 };
8334 
8336  typedef MergeLayer Table;
8337  flatbuffers::FlatBufferBuilder &fbb_;
8338  flatbuffers::uoffset_t start_;
8339  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
8340  fbb_.AddOffset(MergeLayer::VT_BASE, base);
8341  }
8342  explicit MergeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8343  : fbb_(_fbb) {
8344  start_ = fbb_.StartTable();
8345  }
8346  MergeLayerBuilder &operator=(const MergeLayerBuilder &);
8347  flatbuffers::Offset<MergeLayer> Finish() {
8348  const auto end = fbb_.EndTable(start_);
8349  auto o = flatbuffers::Offset<MergeLayer>(end);
8350  return o;
8351  }
8352 };
8353 
8354 inline flatbuffers::Offset<MergeLayer> CreateMergeLayer(
8355  flatbuffers::FlatBufferBuilder &_fbb,
8356  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
8357  MergeLayerBuilder builder_(_fbb);
8358  builder_.add_base(base);
8359  return builder_.Finish();
8360 }
8361 
8362 struct SwitchLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8364  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8365  VT_BASE = 4
8366  };
8367  const armnnSerializer::LayerBase *base() const {
8368  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
8369  }
8370  bool Verify(flatbuffers::Verifier &verifier) const {
8371  return VerifyTableStart(verifier) &&
8372  VerifyOffset(verifier, VT_BASE) &&
8373  verifier.VerifyTable(base()) &&
8374  verifier.EndTable();
8375  }
8376 };
8377 
8379  typedef SwitchLayer Table;
8380  flatbuffers::FlatBufferBuilder &fbb_;
8381  flatbuffers::uoffset_t start_;
8382  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
8383  fbb_.AddOffset(SwitchLayer::VT_BASE, base);
8384  }
8385  explicit SwitchLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8386  : fbb_(_fbb) {
8387  start_ = fbb_.StartTable();
8388  }
8389  SwitchLayerBuilder &operator=(const SwitchLayerBuilder &);
8390  flatbuffers::Offset<SwitchLayer> Finish() {
8391  const auto end = fbb_.EndTable(start_);
8392  auto o = flatbuffers::Offset<SwitchLayer>(end);
8393  return o;
8394  }
8395 };
8396 
8397 inline flatbuffers::Offset<SwitchLayer> CreateSwitchLayer(
8398  flatbuffers::FlatBufferBuilder &_fbb,
8399  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
8400  SwitchLayerBuilder builder_(_fbb);
8401  builder_.add_base(base);
8402  return builder_.Finish();
8403 }
8404 
8405 struct PreluLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8407  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8408  VT_BASE = 4
8409  };
8410  const armnnSerializer::LayerBase *base() const {
8411  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
8412  }
8413  bool Verify(flatbuffers::Verifier &verifier) const {
8414  return VerifyTableStart(verifier) &&
8415  VerifyOffset(verifier, VT_BASE) &&
8416  verifier.VerifyTable(base()) &&
8417  verifier.EndTable();
8418  }
8419 };
8420 
8422  typedef PreluLayer Table;
8423  flatbuffers::FlatBufferBuilder &fbb_;
8424  flatbuffers::uoffset_t start_;
8425  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
8426  fbb_.AddOffset(PreluLayer::VT_BASE, base);
8427  }
8428  explicit PreluLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8429  : fbb_(_fbb) {
8430  start_ = fbb_.StartTable();
8431  }
8432  PreluLayerBuilder &operator=(const PreluLayerBuilder &);
8433  flatbuffers::Offset<PreluLayer> Finish() {
8434  const auto end = fbb_.EndTable(start_);
8435  auto o = flatbuffers::Offset<PreluLayer>(end);
8436  return o;
8437  }
8438 };
8439 
8440 inline flatbuffers::Offset<PreluLayer> CreatePreluLayer(
8441  flatbuffers::FlatBufferBuilder &_fbb,
8442  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
8443  PreluLayerBuilder builder_(_fbb);
8444  builder_.add_base(base);
8445  return builder_.Finish();
8446 }
8447 
8448 struct TransposeConvolution2dLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8450  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8451  VT_BASE = 4,
8452  VT_DESCRIPTOR = 6,
8453  VT_WEIGHTS = 8,
8454  VT_BIASES = 10
8455  };
8456  const armnnSerializer::LayerBase *base() const {
8457  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
8458  }
8459  const armnnSerializer::TransposeConvolution2dDescriptor *descriptor() const {
8460  return GetPointer<const armnnSerializer::TransposeConvolution2dDescriptor *>(VT_DESCRIPTOR);
8461  }
8462  const armnnSerializer::ConstTensor *weights() const {
8463  return GetPointer<const armnnSerializer::ConstTensor *>(VT_WEIGHTS);
8464  }
8465  const armnnSerializer::ConstTensor *biases() const {
8466  return GetPointer<const armnnSerializer::ConstTensor *>(VT_BIASES);
8467  }
8468  bool Verify(flatbuffers::Verifier &verifier) const {
8469  return VerifyTableStart(verifier) &&
8470  VerifyOffset(verifier, VT_BASE) &&
8471  verifier.VerifyTable(base()) &&
8472  VerifyOffset(verifier, VT_DESCRIPTOR) &&
8473  verifier.VerifyTable(descriptor()) &&
8474  VerifyOffset(verifier, VT_WEIGHTS) &&
8475  verifier.VerifyTable(weights()) &&
8476  VerifyOffset(verifier, VT_BIASES) &&
8477  verifier.VerifyTable(biases()) &&
8478  verifier.EndTable();
8479  }
8480 };
8481 
8483  typedef TransposeConvolution2dLayer Table;
8484  flatbuffers::FlatBufferBuilder &fbb_;
8485  flatbuffers::uoffset_t start_;
8486  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
8487  fbb_.AddOffset(TransposeConvolution2dLayer::VT_BASE, base);
8488  }
8489  void add_descriptor(flatbuffers::Offset<armnnSerializer::TransposeConvolution2dDescriptor> descriptor) {
8490  fbb_.AddOffset(TransposeConvolution2dLayer::VT_DESCRIPTOR, descriptor);
8491  }
8492  void add_weights(flatbuffers::Offset<armnnSerializer::ConstTensor> weights) {
8493  fbb_.AddOffset(TransposeConvolution2dLayer::VT_WEIGHTS, weights);
8494  }
8495  void add_biases(flatbuffers::Offset<armnnSerializer::ConstTensor> biases) {
8496  fbb_.AddOffset(TransposeConvolution2dLayer::VT_BIASES, biases);
8497  }
8498  explicit TransposeConvolution2dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8499  : fbb_(_fbb) {
8500  start_ = fbb_.StartTable();
8501  }
8503  flatbuffers::Offset<TransposeConvolution2dLayer> Finish() {
8504  const auto end = fbb_.EndTable(start_);
8505  auto o = flatbuffers::Offset<TransposeConvolution2dLayer>(end);
8506  return o;
8507  }
8508 };
8509 
8510 inline flatbuffers::Offset<TransposeConvolution2dLayer> CreateTransposeConvolution2dLayer(
8511  flatbuffers::FlatBufferBuilder &_fbb,
8512  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
8513  flatbuffers::Offset<armnnSerializer::TransposeConvolution2dDescriptor> descriptor = 0,
8514  flatbuffers::Offset<armnnSerializer::ConstTensor> weights = 0,
8515  flatbuffers::Offset<armnnSerializer::ConstTensor> biases = 0) {
8516  TransposeConvolution2dLayerBuilder builder_(_fbb);
8517  builder_.add_biases(biases);
8518  builder_.add_weights(weights);
8519  builder_.add_descriptor(descriptor);
8520  builder_.add_base(base);
8521  return builder_.Finish();
8522 }
8523 
8524 struct TransposeConvolution2dDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8526  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8527  VT_PADLEFT = 4,
8528  VT_PADRIGHT = 6,
8529  VT_PADTOP = 8,
8530  VT_PADBOTTOM = 10,
8531  VT_STRIDEX = 12,
8532  VT_STRIDEY = 14,
8533  VT_BIASENABLED = 16,
8534  VT_DATALAYOUT = 18
8535  };
8536  uint32_t padLeft() const {
8537  return GetField<uint32_t>(VT_PADLEFT, 0);
8538  }
8539  uint32_t padRight() const {
8540  return GetField<uint32_t>(VT_PADRIGHT, 0);
8541  }
8542  uint32_t padTop() const {
8543  return GetField<uint32_t>(VT_PADTOP, 0);
8544  }
8545  uint32_t padBottom() const {
8546  return GetField<uint32_t>(VT_PADBOTTOM, 0);
8547  }
8548  uint32_t strideX() const {
8549  return GetField<uint32_t>(VT_STRIDEX, 0);
8550  }
8551  uint32_t strideY() const {
8552  return GetField<uint32_t>(VT_STRIDEY, 0);
8553  }
8554  bool biasEnabled() const {
8555  return GetField<uint8_t>(VT_BIASENABLED, 0) != 0;
8556  }
8558  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 1));
8559  }
8560  bool Verify(flatbuffers::Verifier &verifier) const {
8561  return VerifyTableStart(verifier) &&
8562  VerifyField<uint32_t>(verifier, VT_PADLEFT) &&
8563  VerifyField<uint32_t>(verifier, VT_PADRIGHT) &&
8564  VerifyField<uint32_t>(verifier, VT_PADTOP) &&
8565  VerifyField<uint32_t>(verifier, VT_PADBOTTOM) &&
8566  VerifyField<uint32_t>(verifier, VT_STRIDEX) &&
8567  VerifyField<uint32_t>(verifier, VT_STRIDEY) &&
8568  VerifyField<uint8_t>(verifier, VT_BIASENABLED) &&
8569  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
8570  verifier.EndTable();
8571  }
8572 };
8573 
8575  typedef TransposeConvolution2dDescriptor Table;
8576  flatbuffers::FlatBufferBuilder &fbb_;
8577  flatbuffers::uoffset_t start_;
8578  void add_padLeft(uint32_t padLeft) {
8579  fbb_.AddElement<uint32_t>(TransposeConvolution2dDescriptor::VT_PADLEFT, padLeft, 0);
8580  }
8581  void add_padRight(uint32_t padRight) {
8582  fbb_.AddElement<uint32_t>(TransposeConvolution2dDescriptor::VT_PADRIGHT, padRight, 0);
8583  }
8584  void add_padTop(uint32_t padTop) {
8585  fbb_.AddElement<uint32_t>(TransposeConvolution2dDescriptor::VT_PADTOP, padTop, 0);
8586  }
8587  void add_padBottom(uint32_t padBottom) {
8588  fbb_.AddElement<uint32_t>(TransposeConvolution2dDescriptor::VT_PADBOTTOM, padBottom, 0);
8589  }
8590  void add_strideX(uint32_t strideX) {
8591  fbb_.AddElement<uint32_t>(TransposeConvolution2dDescriptor::VT_STRIDEX, strideX, 0);
8592  }
8593  void add_strideY(uint32_t strideY) {
8594  fbb_.AddElement<uint32_t>(TransposeConvolution2dDescriptor::VT_STRIDEY, strideY, 0);
8595  }
8596  void add_biasEnabled(bool biasEnabled) {
8597  fbb_.AddElement<uint8_t>(TransposeConvolution2dDescriptor::VT_BIASENABLED, static_cast<uint8_t>(biasEnabled), 0);
8598  }
8600  fbb_.AddElement<int8_t>(TransposeConvolution2dDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 1);
8601  }
8602  explicit TransposeConvolution2dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8603  : fbb_(_fbb) {
8604  start_ = fbb_.StartTable();
8605  }
8607  flatbuffers::Offset<TransposeConvolution2dDescriptor> Finish() {
8608  const auto end = fbb_.EndTable(start_);
8609  auto o = flatbuffers::Offset<TransposeConvolution2dDescriptor>(end);
8610  return o;
8611  }
8612 };
8613 
8614 inline flatbuffers::Offset<TransposeConvolution2dDescriptor> CreateTransposeConvolution2dDescriptor(
8615  flatbuffers::FlatBufferBuilder &_fbb,
8616  uint32_t padLeft = 0,
8617  uint32_t padRight = 0,
8618  uint32_t padTop = 0,
8619  uint32_t padBottom = 0,
8620  uint32_t strideX = 0,
8621  uint32_t strideY = 0,
8622  bool biasEnabled = false,
8625  builder_.add_strideY(strideY);
8626  builder_.add_strideX(strideX);
8627  builder_.add_padBottom(padBottom);
8628  builder_.add_padTop(padTop);
8629  builder_.add_padRight(padRight);
8630  builder_.add_padLeft(padLeft);
8631  builder_.add_dataLayout(dataLayout);
8632  builder_.add_biasEnabled(biasEnabled);
8633  return builder_.Finish();
8634 }
8635 
8636 struct TransposeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8638  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8639  VT_BASE = 4,
8640  VT_DESCRIPTOR = 6
8641  };
8642  const armnnSerializer::LayerBase *base() const {
8643  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
8644  }
8645  const armnnSerializer::TransposeDescriptor *descriptor() const {
8646  return GetPointer<const armnnSerializer::TransposeDescriptor *>(VT_DESCRIPTOR);
8647  }
8648  bool Verify(flatbuffers::Verifier &verifier) const {
8649  return VerifyTableStart(verifier) &&
8650  VerifyOffset(verifier, VT_BASE) &&
8651  verifier.VerifyTable(base()) &&
8652  VerifyOffset(verifier, VT_DESCRIPTOR) &&
8653  verifier.VerifyTable(descriptor()) &&
8654  verifier.EndTable();
8655  }
8656 };
8657 
8659  typedef TransposeLayer Table;
8660  flatbuffers::FlatBufferBuilder &fbb_;
8661  flatbuffers::uoffset_t start_;
8662  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
8663  fbb_.AddOffset(TransposeLayer::VT_BASE, base);
8664  }
8665  void add_descriptor(flatbuffers::Offset<armnnSerializer::TransposeDescriptor> descriptor) {
8666  fbb_.AddOffset(TransposeLayer::VT_DESCRIPTOR, descriptor);
8667  }
8668  explicit TransposeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8669  : fbb_(_fbb) {
8670  start_ = fbb_.StartTable();
8671  }
8672  TransposeLayerBuilder &operator=(const TransposeLayerBuilder &);
8673  flatbuffers::Offset<TransposeLayer> Finish() {
8674  const auto end = fbb_.EndTable(start_);
8675  auto o = flatbuffers::Offset<TransposeLayer>(end);
8676  return o;
8677  }
8678 };
8679 
8680 inline flatbuffers::Offset<TransposeLayer> CreateTransposeLayer(
8681  flatbuffers::FlatBufferBuilder &_fbb,
8682  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
8683  flatbuffers::Offset<armnnSerializer::TransposeDescriptor> descriptor = 0) {
8684  TransposeLayerBuilder builder_(_fbb);
8685  builder_.add_descriptor(descriptor);
8686  builder_.add_base(base);
8687  return builder_.Finish();
8688 }
8689 
8690 struct TransposeDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8692  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8693  VT_DIMMAPPINGS = 4
8694  };
8695  const flatbuffers::Vector<uint32_t> *dimMappings() const {
8696  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_DIMMAPPINGS);
8697  }
8698  bool Verify(flatbuffers::Verifier &verifier) const {
8699  return VerifyTableStart(verifier) &&
8700  VerifyOffset(verifier, VT_DIMMAPPINGS) &&
8701  verifier.VerifyVector(dimMappings()) &&
8702  verifier.EndTable();
8703  }
8704 };
8705 
8707  typedef TransposeDescriptor Table;
8708  flatbuffers::FlatBufferBuilder &fbb_;
8709  flatbuffers::uoffset_t start_;
8710  void add_dimMappings(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> dimMappings) {
8711  fbb_.AddOffset(TransposeDescriptor::VT_DIMMAPPINGS, dimMappings);
8712  }
8713  explicit TransposeDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8714  : fbb_(_fbb) {
8715  start_ = fbb_.StartTable();
8716  }
8718  flatbuffers::Offset<TransposeDescriptor> Finish() {
8719  const auto end = fbb_.EndTable(start_);
8720  auto o = flatbuffers::Offset<TransposeDescriptor>(end);
8721  return o;
8722  }
8723 };
8724 
8725 inline flatbuffers::Offset<TransposeDescriptor> CreateTransposeDescriptor(
8726  flatbuffers::FlatBufferBuilder &_fbb,
8727  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> dimMappings = 0) {
8728  TransposeDescriptorBuilder builder_(_fbb);
8729  builder_.add_dimMappings(dimMappings);
8730  return builder_.Finish();
8731 }
8732 
8733 inline flatbuffers::Offset<TransposeDescriptor> CreateTransposeDescriptorDirect(
8734  flatbuffers::FlatBufferBuilder &_fbb,
8735  const std::vector<uint32_t> *dimMappings = nullptr) {
8736  auto dimMappings__ = dimMappings ? _fbb.CreateVector<uint32_t>(*dimMappings) : 0;
8738  _fbb,
8739  dimMappings__);
8740 }
8741 
8742 struct ResizeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8744  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8745  VT_BASE = 4,
8746  VT_DESCRIPTOR = 6
8747  };
8748  const armnnSerializer::LayerBase *base() const {
8749  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
8750  }
8751  const armnnSerializer::ResizeDescriptor *descriptor() const {
8752  return GetPointer<const armnnSerializer::ResizeDescriptor *>(VT_DESCRIPTOR);
8753  }
8754  bool Verify(flatbuffers::Verifier &verifier) const {
8755  return VerifyTableStart(verifier) &&
8756  VerifyOffset(verifier, VT_BASE) &&
8757  verifier.VerifyTable(base()) &&
8758  VerifyOffset(verifier, VT_DESCRIPTOR) &&
8759  verifier.VerifyTable(descriptor()) &&
8760  verifier.EndTable();
8761  }
8762 };
8763 
8765  typedef ResizeLayer Table;
8766  flatbuffers::FlatBufferBuilder &fbb_;
8767  flatbuffers::uoffset_t start_;
8768  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
8769  fbb_.AddOffset(ResizeLayer::VT_BASE, base);
8770  }
8771  void add_descriptor(flatbuffers::Offset<armnnSerializer::ResizeDescriptor> descriptor) {
8772  fbb_.AddOffset(ResizeLayer::VT_DESCRIPTOR, descriptor);
8773  }
8774  explicit ResizeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8775  : fbb_(_fbb) {
8776  start_ = fbb_.StartTable();
8777  }
8778  ResizeLayerBuilder &operator=(const ResizeLayerBuilder &);
8779  flatbuffers::Offset<ResizeLayer> Finish() {
8780  const auto end = fbb_.EndTable(start_);
8781  auto o = flatbuffers::Offset<ResizeLayer>(end);
8782  return o;
8783  }
8784 };
8785 
8786 inline flatbuffers::Offset<ResizeLayer> CreateResizeLayer(
8787  flatbuffers::FlatBufferBuilder &_fbb,
8788  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
8789  flatbuffers::Offset<armnnSerializer::ResizeDescriptor> descriptor = 0) {
8790  ResizeLayerBuilder builder_(_fbb);
8791  builder_.add_descriptor(descriptor);
8792  builder_.add_base(base);
8793  return builder_.Finish();
8794 }
8795 
8796 struct ResizeDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8798  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8799  VT_TARGETHEIGHT = 4,
8800  VT_TARGETWIDTH = 6,
8802  VT_DATALAYOUT = 10,
8803  VT_ALIGNCORNERS = 12,
8804  VT_HALFPIXELCENTERS = 14
8805  };
8806  uint32_t targetHeight() const {
8807  return GetField<uint32_t>(VT_TARGETHEIGHT, 0);
8808  }
8809  uint32_t targetWidth() const {
8810  return GetField<uint32_t>(VT_TARGETWIDTH, 0);
8811  }
8813  return static_cast<armnnSerializer::ResizeMethod>(GetField<int8_t>(VT_METHOD, 0));
8814  }
8816  return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
8817  }
8818  bool alignCorners() const {
8819  return GetField<uint8_t>(VT_ALIGNCORNERS, 0) != 0;
8820  }
8821  bool halfPixelCenters() const {
8822  return GetField<uint8_t>(VT_HALFPIXELCENTERS, 0) != 0;
8823  }
8824  bool Verify(flatbuffers::Verifier &verifier) const {
8825  return VerifyTableStart(verifier) &&
8826  VerifyField<uint32_t>(verifier, VT_TARGETHEIGHT) &&
8827  VerifyField<uint32_t>(verifier, VT_TARGETWIDTH) &&
8828  VerifyField<int8_t>(verifier, VT_METHOD) &&
8829  VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
8830  VerifyField<uint8_t>(verifier, VT_ALIGNCORNERS) &&
8831  VerifyField<uint8_t>(verifier, VT_HALFPIXELCENTERS) &&
8832  verifier.EndTable();
8833  }
8834 };
8835 
8837  typedef ResizeDescriptor Table;
8838  flatbuffers::FlatBufferBuilder &fbb_;
8839  flatbuffers::uoffset_t start_;
8840  void add_targetHeight(uint32_t targetHeight) {
8841  fbb_.AddElement<uint32_t>(ResizeDescriptor::VT_TARGETHEIGHT, targetHeight, 0);
8842  }
8843  void add_targetWidth(uint32_t targetWidth) {
8844  fbb_.AddElement<uint32_t>(ResizeDescriptor::VT_TARGETWIDTH, targetWidth, 0);
8845  }
8847  fbb_.AddElement<int8_t>(ResizeDescriptor::VT_METHOD, static_cast<int8_t>(method), 0);
8848  }
8850  fbb_.AddElement<int8_t>(ResizeDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
8851  }
8852  void add_alignCorners(bool alignCorners) {
8853  fbb_.AddElement<uint8_t>(ResizeDescriptor::VT_ALIGNCORNERS, static_cast<uint8_t>(alignCorners), 0);
8854  }
8855  void add_halfPixelCenters(bool halfPixelCenters) {
8856  fbb_.AddElement<uint8_t>(ResizeDescriptor::VT_HALFPIXELCENTERS, static_cast<uint8_t>(halfPixelCenters), 0);
8857  }
8858  explicit ResizeDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8859  : fbb_(_fbb) {
8860  start_ = fbb_.StartTable();
8861  }
8863  flatbuffers::Offset<ResizeDescriptor> Finish() {
8864  const auto end = fbb_.EndTable(start_);
8865  auto o = flatbuffers::Offset<ResizeDescriptor>(end);
8866  return o;
8867  }
8868 };
8869 
8870 inline flatbuffers::Offset<ResizeDescriptor> CreateResizeDescriptor(
8871  flatbuffers::FlatBufferBuilder &_fbb,
8872  uint32_t targetHeight = 0,
8873  uint32_t targetWidth = 0,
8876  bool alignCorners = false,
8877  bool halfPixelCenters = false) {
8878  ResizeDescriptorBuilder builder_(_fbb);
8879  builder_.add_targetWidth(targetWidth);
8880  builder_.add_targetHeight(targetHeight);
8881  builder_.add_halfPixelCenters(halfPixelCenters);
8882  builder_.add_alignCorners(alignCorners);
8883  builder_.add_dataLayout(dataLayout);
8884  builder_.add_method(method);
8885  return builder_.Finish();
8886 }
8887 
8888 struct StackLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8890  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8891  VT_BASE = 4,
8892  VT_DESCRIPTOR = 6
8893  };
8894  const armnnSerializer::LayerBase *base() const {
8895  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
8896  }
8897  const armnnSerializer::StackDescriptor *descriptor() const {
8898  return GetPointer<const armnnSerializer::StackDescriptor *>(VT_DESCRIPTOR);
8899  }
8900  bool Verify(flatbuffers::Verifier &verifier) const {
8901  return VerifyTableStart(verifier) &&
8902  VerifyOffset(verifier, VT_BASE) &&
8903  verifier.VerifyTable(base()) &&
8904  VerifyOffset(verifier, VT_DESCRIPTOR) &&
8905  verifier.VerifyTable(descriptor()) &&
8906  verifier.EndTable();
8907  }
8908 };
8909 
8911  typedef StackLayer Table;
8912  flatbuffers::FlatBufferBuilder &fbb_;
8913  flatbuffers::uoffset_t start_;
8914  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
8915  fbb_.AddOffset(StackLayer::VT_BASE, base);
8916  }
8917  void add_descriptor(flatbuffers::Offset<armnnSerializer::StackDescriptor> descriptor) {
8918  fbb_.AddOffset(StackLayer::VT_DESCRIPTOR, descriptor);
8919  }
8920  explicit StackLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8921  : fbb_(_fbb) {
8922  start_ = fbb_.StartTable();
8923  }
8924  StackLayerBuilder &operator=(const StackLayerBuilder &);
8925  flatbuffers::Offset<StackLayer> Finish() {
8926  const auto end = fbb_.EndTable(start_);
8927  auto o = flatbuffers::Offset<StackLayer>(end);
8928  return o;
8929  }
8930 };
8931 
8932 inline flatbuffers::Offset<StackLayer> CreateStackLayer(
8933  flatbuffers::FlatBufferBuilder &_fbb,
8934  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
8935  flatbuffers::Offset<armnnSerializer::StackDescriptor> descriptor = 0) {
8936  StackLayerBuilder builder_(_fbb);
8937  builder_.add_descriptor(descriptor);
8938  builder_.add_base(base);
8939  return builder_.Finish();
8940 }
8941 
8942 struct StackDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8944  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8945  VT_AXIS = 4,
8947  VT_INPUTSHAPE = 8
8948  };
8949  uint32_t axis() const {
8950  return GetField<uint32_t>(VT_AXIS, 0);
8951  }
8952  uint32_t numInputs() const {
8953  return GetField<uint32_t>(VT_NUMINPUTS, 0);
8954  }
8955  const flatbuffers::Vector<uint32_t> *inputShape() const {
8956  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_INPUTSHAPE);
8957  }
8958  bool Verify(flatbuffers::Verifier &verifier) const {
8959  return VerifyTableStart(verifier) &&
8960  VerifyField<uint32_t>(verifier, VT_AXIS) &&
8961  VerifyField<uint32_t>(verifier, VT_NUMINPUTS) &&
8962  VerifyOffset(verifier, VT_INPUTSHAPE) &&
8963  verifier.VerifyVector(inputShape()) &&
8964  verifier.EndTable();
8965  }
8966 };
8967 
8969  typedef StackDescriptor Table;
8970  flatbuffers::FlatBufferBuilder &fbb_;
8971  flatbuffers::uoffset_t start_;
8972  void add_axis(uint32_t axis) {
8973  fbb_.AddElement<uint32_t>(StackDescriptor::VT_AXIS, axis, 0);
8974  }
8975  void add_numInputs(uint32_t numInputs) {
8976  fbb_.AddElement<uint32_t>(StackDescriptor::VT_NUMINPUTS, numInputs, 0);
8977  }
8978  void add_inputShape(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> inputShape) {
8979  fbb_.AddOffset(StackDescriptor::VT_INPUTSHAPE, inputShape);
8980  }
8981  explicit StackDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8982  : fbb_(_fbb) {
8983  start_ = fbb_.StartTable();
8984  }
8985  StackDescriptorBuilder &operator=(const StackDescriptorBuilder &);
8986  flatbuffers::Offset<StackDescriptor> Finish() {
8987  const auto end = fbb_.EndTable(start_);
8988  auto o = flatbuffers::Offset<StackDescriptor>(end);
8989  return o;
8990  }
8991 };
8992 
8993 inline flatbuffers::Offset<StackDescriptor> CreateStackDescriptor(
8994  flatbuffers::FlatBufferBuilder &_fbb,
8995  uint32_t axis = 0,
8996  uint32_t numInputs = 0,
8997  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> inputShape = 0) {
8998  StackDescriptorBuilder builder_(_fbb);
8999  builder_.add_inputShape(inputShape);
9000  builder_.add_numInputs(numInputs);
9001  builder_.add_axis(axis);
9002  return builder_.Finish();
9003 }
9004 
9005 inline flatbuffers::Offset<StackDescriptor> CreateStackDescriptorDirect(
9006  flatbuffers::FlatBufferBuilder &_fbb,
9007  uint32_t axis = 0,
9008  uint32_t numInputs = 0,
9009  const std::vector<uint32_t> *inputShape = nullptr) {
9010  auto inputShape__ = inputShape ? _fbb.CreateVector<uint32_t>(*inputShape) : 0;
9012  _fbb,
9013  axis,
9014  numInputs,
9015  inputShape__);
9016 }
9017 
9018 struct StandInDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9020  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9021  VT_NUMINPUTS = 4,
9022  VT_NUMOUTPUTS = 6
9023  };
9024  uint32_t numInputs() const {
9025  return GetField<uint32_t>(VT_NUMINPUTS, 0);
9026  }
9027  uint32_t numOutputs() const {
9028  return GetField<uint32_t>(VT_NUMOUTPUTS, 0);
9029  }
9030  bool Verify(flatbuffers::Verifier &verifier) const {
9031  return VerifyTableStart(verifier) &&
9032  VerifyField<uint32_t>(verifier, VT_NUMINPUTS) &&
9033  VerifyField<uint32_t>(verifier, VT_NUMOUTPUTS) &&
9034  verifier.EndTable();
9035  }
9036 };
9037 
9039  typedef StandInDescriptor Table;
9040  flatbuffers::FlatBufferBuilder &fbb_;
9041  flatbuffers::uoffset_t start_;
9042  void add_numInputs(uint32_t numInputs) {
9043  fbb_.AddElement<uint32_t>(StandInDescriptor::VT_NUMINPUTS, numInputs, 0);
9044  }
9045  void add_numOutputs(uint32_t numOutputs) {
9046  fbb_.AddElement<uint32_t>(StandInDescriptor::VT_NUMOUTPUTS, numOutputs, 0);
9047  }
9048  explicit StandInDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9049  : fbb_(_fbb) {
9050  start_ = fbb_.StartTable();
9051  }
9053  flatbuffers::Offset<StandInDescriptor> Finish() {
9054  const auto end = fbb_.EndTable(start_);
9055  auto o = flatbuffers::Offset<StandInDescriptor>(end);
9056  return o;
9057  }
9058 };
9059 
9060 inline flatbuffers::Offset<StandInDescriptor> CreateStandInDescriptor(
9061  flatbuffers::FlatBufferBuilder &_fbb,
9062  uint32_t numInputs = 0,
9063  uint32_t numOutputs = 0) {
9064  StandInDescriptorBuilder builder_(_fbb);
9065  builder_.add_numOutputs(numOutputs);
9066  builder_.add_numInputs(numInputs);
9067  return builder_.Finish();
9068 }
9069 
9070 struct StandInLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9072  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9073  VT_BASE = 4,
9074  VT_DESCRIPTOR = 6
9075  };
9076  const armnnSerializer::LayerBase *base() const {
9077  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9078  }
9079  const armnnSerializer::StandInDescriptor *descriptor() const {
9080  return GetPointer<const armnnSerializer::StandInDescriptor *>(VT_DESCRIPTOR);
9081  }
9082  bool Verify(flatbuffers::Verifier &verifier) const {
9083  return VerifyTableStart(verifier) &&
9084  VerifyOffset(verifier, VT_BASE) &&
9085  verifier.VerifyTable(base()) &&
9086  VerifyOffset(verifier, VT_DESCRIPTOR) &&
9087  verifier.VerifyTable(descriptor()) &&
9088  verifier.EndTable();
9089  }
9090 };
9091 
9093  typedef StandInLayer Table;
9094  flatbuffers::FlatBufferBuilder &fbb_;
9095  flatbuffers::uoffset_t start_;
9096  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9097  fbb_.AddOffset(StandInLayer::VT_BASE, base);
9098  }
9099  void add_descriptor(flatbuffers::Offset<armnnSerializer::StandInDescriptor> descriptor) {
9100  fbb_.AddOffset(StandInLayer::VT_DESCRIPTOR, descriptor);
9101  }
9102  explicit StandInLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9103  : fbb_(_fbb) {
9104  start_ = fbb_.StartTable();
9105  }
9106  StandInLayerBuilder &operator=(const StandInLayerBuilder &);
9107  flatbuffers::Offset<StandInLayer> Finish() {
9108  const auto end = fbb_.EndTable(start_);
9109  auto o = flatbuffers::Offset<StandInLayer>(end);
9110  return o;
9111  }
9112 };
9113 
9114 inline flatbuffers::Offset<StandInLayer> CreateStandInLayer(
9115  flatbuffers::FlatBufferBuilder &_fbb,
9116  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
9117  flatbuffers::Offset<armnnSerializer::StandInDescriptor> descriptor = 0) {
9118  StandInLayerBuilder builder_(_fbb);
9119  builder_.add_descriptor(descriptor);
9120  builder_.add_base(base);
9121  return builder_.Finish();
9122 }
9123 
9124 struct RankLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9126  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9127  VT_BASE = 4
9128  };
9129  const armnnSerializer::LayerBase *base() const {
9130  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9131  }
9132  bool Verify(flatbuffers::Verifier &verifier) const {
9133  return VerifyTableStart(verifier) &&
9134  VerifyOffset(verifier, VT_BASE) &&
9135  verifier.VerifyTable(base()) &&
9136  verifier.EndTable();
9137  }
9138 };
9139 
9141  typedef RankLayer Table;
9142  flatbuffers::FlatBufferBuilder &fbb_;
9143  flatbuffers::uoffset_t start_;
9144  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9145  fbb_.AddOffset(RankLayer::VT_BASE, base);
9146  }
9147  explicit RankLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9148  : fbb_(_fbb) {
9149  start_ = fbb_.StartTable();
9150  }
9151  RankLayerBuilder &operator=(const RankLayerBuilder &);
9152  flatbuffers::Offset<RankLayer> Finish() {
9153  const auto end = fbb_.EndTable(start_);
9154  auto o = flatbuffers::Offset<RankLayer>(end);
9155  return o;
9156  }
9157 };
9158 
9159 inline flatbuffers::Offset<RankLayer> CreateRankLayer(
9160  flatbuffers::FlatBufferBuilder &_fbb,
9161  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
9162  RankLayerBuilder builder_(_fbb);
9163  builder_.add_base(base);
9164  return builder_.Finish();
9165 }
9166 
9167 struct ReduceLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9169  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9170  VT_BASE = 4,
9171  VT_DESCRIPTOR = 6
9172  };
9173  const armnnSerializer::LayerBase *base() const {
9174  return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9175  }
9176  const armnnSerializer::ReduceDescriptor *descriptor() const {
9177  return GetPointer<const armnnSerializer::ReduceDescriptor *>(VT_DESCRIPTOR);
9178  }
9179  bool Verify(flatbuffers::Verifier &verifier) const {
9180  return VerifyTableStart(verifier) &&
9181  VerifyOffset(verifier, VT_BASE) &&
9182  verifier.VerifyTable(base()) &&
9183  VerifyOffset(verifier, VT_DESCRIPTOR) &&
9184  verifier.VerifyTable(descriptor()) &&
9185  verifier.EndTable();
9186  }
9187 };
9188 
9190  typedef ReduceLayer Table;
9191  flatbuffers::FlatBufferBuilder &fbb_;
9192  flatbuffers::uoffset_t start_;
9193  void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9194  fbb_.AddOffset(ReduceLayer::VT_BASE, base);
9195  }
9196  void add_descriptor(flatbuffers::Offset<armnnSerializer::ReduceDescriptor> descriptor) {
9197  fbb_.AddOffset(ReduceLayer::VT_DESCRIPTOR, descriptor);
9198  }
9199  explicit ReduceLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9200  : fbb_(_fbb) {
9201  start_ = fbb_.StartTable();
9202  }
9203  ReduceLayerBuilder &operator=(const ReduceLayerBuilder &);
9204  flatbuffers::Offset<ReduceLayer> Finish() {
9205  const auto end = fbb_.EndTable(start_);
9206  auto o = flatbuffers::Offset<ReduceLayer>(end);
9207  return o;
9208  }
9209 };
9210 
9211 inline flatbuffers::Offset<ReduceLayer> CreateReduceLayer(
9212  flatbuffers::FlatBufferBuilder &_fbb,
9213  flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
9214  flatbuffers::Offset<armnnSerializer::ReduceDescriptor> descriptor = 0) {
9215  ReduceLayerBuilder builder_(_fbb);
9216  builder_.add_descriptor(descriptor);
9217  builder_.add_base(base);
9218  return builder_.Finish();
9219 }
9220 
9221 struct ReduceDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9223  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9225  VT_AXIS = 6,
9226  VT_REDUCEOPERATION = 8
9227  };
9228  bool keepDims() const {
9229  return GetField<uint8_t>(VT_KEEPDIMS, 0) != 0;
9230  }
9231  const flatbuffers::Vector<uint32_t> *axis() const {
9232  return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_AXIS);
9233  }
9235  return static_cast<armnnSerializer::ReduceOperation>(GetField<int8_t>(VT_REDUCEOPERATION, 0));
9236  }
9237  bool Verify(flatbuffers::Verifier &verifier) const {
9238  return VerifyTableStart(verifier) &&
9239  VerifyField<uint8_t>(verifier, VT_KEEPDIMS) &&
9240  VerifyOffset(verifier, VT_AXIS) &&
9241  verifier.VerifyVector(axis()) &&
9242  VerifyField<int8_t>(verifier, VT_REDUCEOPERATION) &&
9243  verifier.EndTable();
9244  }
9245 };
9246 
9248  typedef ReduceDescriptor Table;
9249  flatbuffers::FlatBufferBuilder &fbb_;
9250  flatbuffers::uoffset_t start_;
9251  void add_keepDims(bool keepDims) {
9252  fbb_.AddElement<uint8_t>(ReduceDescriptor::VT_KEEPDIMS, static_cast<uint8_t>(keepDims), 0);
9253  }
9254  void add_axis(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> axis) {
9255  fbb_.AddOffset(ReduceDescriptor::VT_AXIS, axis);
9256  }
9258  fbb_.AddElement<int8_t>(ReduceDescriptor::VT_REDUCEOPERATION, static_cast<int8_t>(reduceOperation), 0);
9259  }
9260  explicit ReduceDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9261  : fbb_(_fbb) {
9262  start_ = fbb_.StartTable();
9263  }
9265  flatbuffers::Offset<ReduceDescriptor> Finish() {
9266  const auto end = fbb_.EndTable(start_);
9267  auto o = flatbuffers::Offset<ReduceDescriptor>(end);
9268  return o;
9269  }
9270 };
9271 
9272 inline flatbuffers::Offset<ReduceDescriptor> CreateReduceDescriptor(
9273  flatbuffers::FlatBufferBuilder &_fbb,
9274  bool keepDims = false,
9275  flatbuffers::Offset<flatbuffers::Vector<uint32_t>> axis = 0,
9277  ReduceDescriptorBuilder builder_(_fbb);
9278  builder_.add_axis(axis);
9279  builder_.add_reduceOperation(reduceOperation);
9280  builder_.add_keepDims(keepDims);
9281  return builder_.Finish();
9282 }
9283 
9284 inline flatbuffers::Offset<ReduceDescriptor> CreateReduceDescriptorDirect(
9285  flatbuffers::FlatBufferBuilder &_fbb,
9286  bool keepDims = false,
9287  const std::vector<uint32_t> *axis = nullptr,
9289  auto axis__ = axis ? _fbb.CreateVector<uint32_t>(*axis) : 0;
9291  _fbb,
9292  keepDims,
9293  axis__,
9294  reduceOperation);
9295 }
9296 
9297 struct AnyLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9299  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9301  VT_LAYER = 6
9302  };
9304  return static_cast<armnnSerializer::Layer>(GetField<uint8_t>(VT_LAYER_TYPE, 0));
9305  }
9306  const void *layer() const {
9307  return GetPointer<const void *>(VT_LAYER);
9308  }
9309  template<typename T> const T *layer_as() const;
9310  const armnnSerializer::ActivationLayer *layer_as_ActivationLayer() const {
9311  return layer_type() == armnnSerializer::Layer_ActivationLayer ? static_cast<const armnnSerializer::ActivationLayer *>(layer()) : nullptr;
9312  }
9313  const armnnSerializer::AdditionLayer *layer_as_AdditionLayer() const {
9314  return layer_type() == armnnSerializer::Layer_AdditionLayer ? static_cast<const armnnSerializer::AdditionLayer *>(layer()) : nullptr;
9315  }
9316  const armnnSerializer::BatchToSpaceNdLayer *layer_as_BatchToSpaceNdLayer() const {
9317  return layer_type() == armnnSerializer::Layer_BatchToSpaceNdLayer ? static_cast<const armnnSerializer::BatchToSpaceNdLayer *>(layer()) : nullptr;
9318  }
9319  const armnnSerializer::BatchNormalizationLayer *layer_as_BatchNormalizationLayer() const {
9320  return layer_type() == armnnSerializer::Layer_BatchNormalizationLayer ? static_cast<const armnnSerializer::BatchNormalizationLayer *>(layer()) : nullptr;
9321  }
9322  const armnnSerializer::ConstantLayer *layer_as_ConstantLayer() const {
9323  return layer_type() == armnnSerializer::Layer_ConstantLayer ? static_cast<const armnnSerializer::ConstantLayer *>(layer()) : nullptr;
9324  }
9325  const armnnSerializer::Convolution2dLayer *layer_as_Convolution2dLayer() const {
9326  return layer_type() == armnnSerializer::Layer_Convolution2dLayer ? static_cast<const armnnSerializer::Convolution2dLayer *>(layer()) : nullptr;
9327  }
9328  const armnnSerializer::DepthwiseConvolution2dLayer *layer_as_DepthwiseConvolution2dLayer() const {
9329  return layer_type() == armnnSerializer::Layer_DepthwiseConvolution2dLayer ? static_cast<const armnnSerializer::DepthwiseConvolution2dLayer *>(layer()) : nullptr;
9330  }
9331  const armnnSerializer::FullyConnectedLayer *layer_as_FullyConnectedLayer() const {
9332  return layer_type() == armnnSerializer::Layer_FullyConnectedLayer ? static_cast<const armnnSerializer::FullyConnectedLayer *>(layer()) : nullptr;
9333  }
9334  const armnnSerializer::InputLayer *layer_as_InputLayer() const {
9335  return layer_type() == armnnSerializer::Layer_InputLayer ? static_cast<const armnnSerializer::InputLayer *>(layer()) : nullptr;
9336  }
9337  const armnnSerializer::MultiplicationLayer *layer_as_MultiplicationLayer() const {
9338  return layer_type() == armnnSerializer::Layer_MultiplicationLayer ? static_cast<const armnnSerializer::MultiplicationLayer *>(layer()) : nullptr;
9339  }
9340  const armnnSerializer::OutputLayer *layer_as_OutputLayer() const {
9341  return layer_type() == armnnSerializer::Layer_OutputLayer ? static_cast<const armnnSerializer::OutputLayer *>(layer()) : nullptr;
9342  }
9343  const armnnSerializer::PermuteLayer *layer_as_PermuteLayer() const {
9344  return layer_type() == armnnSerializer::Layer_PermuteLayer ? static_cast<const armnnSerializer::PermuteLayer *>(layer()) : nullptr;
9345  }
9346  const armnnSerializer::Pooling2dLayer *layer_as_Pooling2dLayer() const {
9347  return layer_type() == armnnSerializer::Layer_Pooling2dLayer ? static_cast<const armnnSerializer::Pooling2dLayer *>(layer()) : nullptr;
9348  }
9349  const armnnSerializer::ReshapeLayer *layer_as_ReshapeLayer() const {
9350  return layer_type() == armnnSerializer::Layer_ReshapeLayer ? static_cast<const armnnSerializer::ReshapeLayer *>(layer()) : nullptr;
9351  }
9352  const armnnSerializer::SoftmaxLayer *layer_as_SoftmaxLayer() const {
9353  return layer_type() == armnnSerializer::Layer_SoftmaxLayer ? static_cast<const armnnSerializer::SoftmaxLayer *>(layer()) : nullptr;
9354  }
9355  const armnnSerializer::SpaceToBatchNdLayer *layer_as_SpaceToBatchNdLayer() const {
9356  return layer_type() == armnnSerializer::Layer_SpaceToBatchNdLayer ? static_cast<const armnnSerializer::SpaceToBatchNdLayer *>(layer()) : nullptr;
9357  }
9358  const armnnSerializer::DivisionLayer *layer_as_DivisionLayer() const {
9359  return layer_type() == armnnSerializer::Layer_DivisionLayer ? static_cast<const armnnSerializer::DivisionLayer *>(layer()) : nullptr;
9360  }
9361  const armnnSerializer::MinimumLayer *layer_as_MinimumLayer() const {
9362  return layer_type() == armnnSerializer::Layer_MinimumLayer ? static_cast<const armnnSerializer::MinimumLayer *>(layer()) : nullptr;
9363  }
9364  const armnnSerializer::EqualLayer *layer_as_EqualLayer() const {
9365  return layer_type() == armnnSerializer::Layer_EqualLayer ? static_cast<const armnnSerializer::EqualLayer *>(layer()) : nullptr;
9366  }
9367  const armnnSerializer::MaximumLayer *layer_as_MaximumLayer() const {
9368  return layer_type() == armnnSerializer::Layer_MaximumLayer ? static_cast<const armnnSerializer::MaximumLayer *>(layer()) : nullptr;
9369  }
9370  const armnnSerializer::NormalizationLayer *layer_as_NormalizationLayer() const {
9371  return layer_type() == armnnSerializer::Layer_NormalizationLayer ? static_cast<const armnnSerializer::NormalizationLayer *>(layer()) : nullptr;
9372  }
9373  const armnnSerializer::PadLayer *layer_as_PadLayer() const {
9374  return layer_type() == armnnSerializer::Layer_PadLayer ? static_cast<const armnnSerializer::PadLayer *>(layer()) : nullptr;
9375  }
9376  const armnnSerializer::RsqrtLayer *layer_as_RsqrtLayer() const {
9377  return layer_type() == armnnSerializer::Layer_RsqrtLayer ? static_cast<const armnnSerializer::RsqrtLayer *>(layer()) : nullptr;
9378  }
9379  const armnnSerializer::FloorLayer *layer_as_FloorLayer() const {
9380  return layer_type() == armnnSerializer::Layer_FloorLayer ? static_cast<const armnnSerializer::FloorLayer *>(layer()) : nullptr;
9381  }
9382  const armnnSerializer::GreaterLayer *layer_as_GreaterLayer() const {
9383  return layer_type() == armnnSerializer::Layer_GreaterLayer ? static_cast<const armnnSerializer::GreaterLayer *>(layer()) : nullptr;
9384  }
9385  const armnnSerializer::ResizeBilinearLayer *layer_as_ResizeBilinearLayer() const {
9386  return layer_type() == armnnSerializer::Layer_ResizeBilinearLayer ? static_cast<const armnnSerializer::ResizeBilinearLayer *>(layer()) : nullptr;
9387  }
9388  const armnnSerializer::SubtractionLayer *layer_as_SubtractionLayer() const {
9389  return layer_type() == armnnSerializer::Layer_SubtractionLayer ? static_cast<const armnnSerializer::SubtractionLayer *>(layer()) : nullptr;
9390  }
9391  const armnnSerializer::StridedSliceLayer *layer_as_StridedSliceLayer() const {
9392  return layer_type() == armnnSerializer::Layer_StridedSliceLayer ? static_cast<const armnnSerializer::StridedSliceLayer *>(layer()) : nullptr;
9393  }
9394  const armnnSerializer::GatherLayer *layer_as_GatherLayer() const {
9395  return layer_type() == armnnSerializer::Layer_GatherLayer ? static_cast<const armnnSerializer::GatherLayer *>(layer()) : nullptr;
9396  }
9397  const armnnSerializer::MeanLayer *layer_as_MeanLayer() const {
9398  return layer_type() == armnnSerializer::Layer_MeanLayer ? static_cast<const armnnSerializer::MeanLayer *>(layer()) : nullptr;
9399  }
9401  return layer_type() == armnnSerializer::Layer_MergerLayer ? static_cast<const armnnSerializer::MergerLayer *>(layer()) : nullptr;
9402  }
9403  const armnnSerializer::L2NormalizationLayer *layer_as_L2NormalizationLayer() const {
9404  return layer_type() == armnnSerializer::Layer_L2NormalizationLayer ? static_cast<const armnnSerializer::L2NormalizationLayer *>(layer()) : nullptr;
9405  }
9406  const armnnSerializer::SplitterLayer *layer_as_SplitterLayer() const {
9407  return layer_type() == armnnSerializer::Layer_SplitterLayer ? static_cast<const armnnSerializer::SplitterLayer *>(layer()) : nullptr;
9408  }
9409  const armnnSerializer::DetectionPostProcessLayer *layer_as_DetectionPostProcessLayer() const {
9410  return layer_type() == armnnSerializer::Layer_DetectionPostProcessLayer ? static_cast<const armnnSerializer::DetectionPostProcessLayer *>(layer()) : nullptr;
9411  }
9412  const armnnSerializer::LstmLayer *layer_as_LstmLayer() const {
9413  return layer_type() == armnnSerializer::Layer_LstmLayer ? static_cast<const armnnSerializer::LstmLayer *>(layer()) : nullptr;
9414  }
9415  const armnnSerializer::QuantizedLstmLayer *layer_as_QuantizedLstmLayer() const {
9416  return layer_type() == armnnSerializer::Layer_QuantizedLstmLayer ? static_cast<const armnnSerializer::QuantizedLstmLayer *>(layer()) : nullptr;
9417  }
9418  const armnnSerializer::QuantizeLayer *layer_as_QuantizeLayer() const {
9419  return layer_type() == armnnSerializer::Layer_QuantizeLayer ? static_cast<const armnnSerializer::QuantizeLayer *>(layer()) : nullptr;
9420  }
9421  const armnnSerializer::DequantizeLayer *layer_as_DequantizeLayer() const {
9422  return layer_type() == armnnSerializer::Layer_DequantizeLayer ? static_cast<const armnnSerializer::DequantizeLayer *>(layer()) : nullptr;
9423  }
9424  const armnnSerializer::MergeLayer *layer_as_MergeLayer() const {
9425  return layer_type() == armnnSerializer::Layer_MergeLayer ? static_cast<const armnnSerializer::MergeLayer *>(layer()) : nullptr;
9426  }
9427  const armnnSerializer::SwitchLayer *layer_as_SwitchLayer() const {
9428  return layer_type() == armnnSerializer::Layer_SwitchLayer ? static_cast<const armnnSerializer::SwitchLayer *>(layer()) : nullptr;
9429  }
9430  const armnnSerializer::ConcatLayer *layer_as_ConcatLayer() const {
9431  return layer_type() == armnnSerializer::Layer_ConcatLayer ? static_cast<const armnnSerializer::ConcatLayer *>(layer()) : nullptr;
9432  }
9433  const armnnSerializer::SpaceToDepthLayer *layer_as_SpaceToDepthLayer() const {
9434  return layer_type() == armnnSerializer::Layer_SpaceToDepthLayer ? static_cast<const armnnSerializer::SpaceToDepthLayer *>(layer()) : nullptr;
9435  }
9436  const armnnSerializer::PreluLayer *layer_as_PreluLayer() const {
9437  return layer_type() == armnnSerializer::Layer_PreluLayer ? static_cast<const armnnSerializer::PreluLayer *>(layer()) : nullptr;
9438  }
9439  const armnnSerializer::TransposeConvolution2dLayer *layer_as_TransposeConvolution2dLayer() const {
9440  return layer_type() == armnnSerializer::Layer_TransposeConvolution2dLayer ? static_cast<const armnnSerializer::TransposeConvolution2dLayer *>(layer()) : nullptr;
9441  }
9442  const armnnSerializer::ResizeLayer *layer_as_ResizeLayer() const {
9443  return layer_type() == armnnSerializer::Layer_ResizeLayer ? static_cast<const armnnSerializer::ResizeLayer *>(layer()) : nullptr;
9444  }
9445  const armnnSerializer::StackLayer *layer_as_StackLayer() const {
9446  return layer_type() == armnnSerializer::Layer_StackLayer ? static_cast<const armnnSerializer::StackLayer *>(layer()) : nullptr;
9447  }
9448  const armnnSerializer::AbsLayer *layer_as_AbsLayer() const {
9449  return layer_type() == armnnSerializer::Layer_AbsLayer ? static_cast<const armnnSerializer::AbsLayer *>(layer()) : nullptr;
9450  }
9451  const armnnSerializer::ArgMinMaxLayer *layer_as_ArgMinMaxLayer() const {
9452  return layer_type() == armnnSerializer::Layer_ArgMinMaxLayer ? static_cast<const armnnSerializer::ArgMinMaxLayer *>(layer()) : nullptr;
9453  }
9454  const armnnSerializer::SliceLayer *layer_as_SliceLayer() const {
9455  return layer_type() == armnnSerializer::Layer_SliceLayer ? static_cast<const armnnSerializer::SliceLayer *>(layer()) : nullptr;
9456  }
9457  const armnnSerializer::DepthToSpaceLayer *layer_as_DepthToSpaceLayer() const {
9458  return layer_type() == armnnSerializer::Layer_DepthToSpaceLayer ? static_cast<const armnnSerializer::DepthToSpaceLayer *>(layer()) : nullptr;
9459  }
9460  const armnnSerializer::InstanceNormalizationLayer *layer_as_InstanceNormalizationLayer() const {
9461  return layer_type() == armnnSerializer::Layer_InstanceNormalizationLayer ? static_cast<const armnnSerializer::InstanceNormalizationLayer *>(layer()) : nullptr;
9462  }
9463  const armnnSerializer::LogSoftmaxLayer *layer_as_LogSoftmaxLayer() const {
9464  return layer_type() == armnnSerializer::Layer_LogSoftmaxLayer ? static_cast<const armnnSerializer::LogSoftmaxLayer *>(layer()) : nullptr;
9465  }
9466  const armnnSerializer::ComparisonLayer *layer_as_ComparisonLayer() const {
9467  return layer_type() == armnnSerializer::Layer_ComparisonLayer ? static_cast<const armnnSerializer::ComparisonLayer *>(layer()) : nullptr;
9468  }
9469  const armnnSerializer::StandInLayer *layer_as_StandInLayer() const {
9470  return layer_type() == armnnSerializer::Layer_StandInLayer ? static_cast<const armnnSerializer::StandInLayer *>(layer()) : nullptr;
9471  }
9472  const armnnSerializer::ElementwiseUnaryLayer *layer_as_ElementwiseUnaryLayer() const {
9473  return layer_type() == armnnSerializer::Layer_ElementwiseUnaryLayer ? static_cast<const armnnSerializer::ElementwiseUnaryLayer *>(layer()) : nullptr;
9474  }
9475  const armnnSerializer::TransposeLayer *layer_as_TransposeLayer() const {
9476  return layer_type() == armnnSerializer::Layer_TransposeLayer ? static_cast<const armnnSerializer::TransposeLayer *>(layer()) : nullptr;
9477  }
9478  const armnnSerializer::QLstmLayer *layer_as_QLstmLayer() const {
9479  return layer_type() == armnnSerializer::Layer_QLstmLayer ? static_cast<const armnnSerializer::QLstmLayer *>(layer()) : nullptr;
9480  }
9481  const armnnSerializer::FillLayer *layer_as_FillLayer() const {
9482  return layer_type() == armnnSerializer::Layer_FillLayer ? static_cast<const armnnSerializer::FillLayer *>(layer()) : nullptr;
9483  }
9484  const armnnSerializer::RankLayer *layer_as_RankLayer() const {
9485  return layer_type() == armnnSerializer::Layer_RankLayer ? static_cast<const armnnSerializer::RankLayer *>(layer()) : nullptr;
9486  }
9487  const armnnSerializer::LogicalBinaryLayer *layer_as_LogicalBinaryLayer() const {
9488  return layer_type() == armnnSerializer::Layer_LogicalBinaryLayer ? static_cast<const armnnSerializer::LogicalBinaryLayer *>(layer()) : nullptr;
9489  }
9490  const armnnSerializer::ReduceLayer *layer_as_ReduceLayer() const {
9491  return layer_type() == armnnSerializer::Layer_ReduceLayer ? static_cast<const armnnSerializer::ReduceLayer *>(layer()) : nullptr;
9492  }
9493  bool Verify(flatbuffers::Verifier &verifier) const {
9494  return VerifyTableStart(verifier) &&
9495  VerifyField<uint8_t>(verifier, VT_LAYER_TYPE) &&
9496  VerifyOffset(verifier, VT_LAYER) &&
9497  VerifyLayer(verifier, layer(), layer_type()) &&
9498  verifier.EndTable();
9499  }
9500 };
9501 
9502 template<> inline const armnnSerializer::ActivationLayer *AnyLayer::layer_as<armnnSerializer::ActivationLayer>() const {
9503  return layer_as_ActivationLayer();
9504 }
9505 
9506 template<> inline const armnnSerializer::AdditionLayer *AnyLayer::layer_as<armnnSerializer::AdditionLayer>() const {
9507  return layer_as_AdditionLayer();
9508 }
9509 
9510 template<> inline const armnnSerializer::BatchToSpaceNdLayer *AnyLayer::layer_as<armnnSerializer::BatchToSpaceNdLayer>() const {
9511  return layer_as_BatchToSpaceNdLayer();
9512 }
9513 
9514 template<> inline const armnnSerializer::BatchNormalizationLayer *AnyLayer::layer_as<armnnSerializer::BatchNormalizationLayer>() const {
9515  return layer_as_BatchNormalizationLayer();
9516 }
9517 
9518 template<> inline const armnnSerializer::ConstantLayer *AnyLayer::layer_as<armnnSerializer::ConstantLayer>() const {
9519  return layer_as_ConstantLayer();
9520 }
9521 
9522 template<> inline const armnnSerializer::Convolution2dLayer *AnyLayer::layer_as<armnnSerializer::Convolution2dLayer>() const {
9523  return layer_as_Convolution2dLayer();
9524 }
9525 
9526 template<> inline const armnnSerializer::DepthwiseConvolution2dLayer *AnyLayer::layer_as<armnnSerializer::DepthwiseConvolution2dLayer>() const {
9527  return layer_as_DepthwiseConvolution2dLayer();
9528 }
9529 
9530 template<> inline const armnnSerializer::FullyConnectedLayer *AnyLayer::layer_as<armnnSerializer::FullyConnectedLayer>() const {
9531  return layer_as_FullyConnectedLayer();
9532 }
9533 
9534 template<> inline const armnnSerializer::InputLayer *AnyLayer::layer_as<armnnSerializer::InputLayer>() const {
9535  return layer_as_InputLayer();
9536 }
9537 
9538 template<> inline const armnnSerializer::MultiplicationLayer *AnyLayer::layer_as<armnnSerializer::MultiplicationLayer>() const {
9539  return layer_as_MultiplicationLayer();
9540 }
9541 
9542 template<> inline const armnnSerializer::OutputLayer *AnyLayer::layer_as<armnnSerializer::OutputLayer>() const {
9543  return layer_as_OutputLayer();
9544 }
9545 
9546 template<> inline const armnnSerializer::PermuteLayer *AnyLayer::layer_as<armnnSerializer::PermuteLayer>() const {
9547  return layer_as_PermuteLayer();
9548 }
9549 
9550 template<> inline const armnnSerializer::Pooling2dLayer *AnyLayer::layer_as<armnnSerializer::Pooling2dLayer>() const {
9551  return layer_as_Pooling2dLayer();
9552 }
9553 
9554 template<> inline const armnnSerializer::ReshapeLayer *AnyLayer::layer_as<armnnSerializer::ReshapeLayer>() const {
9555  return layer_as_ReshapeLayer();
9556 }
9557 
9558 template<> inline const armnnSerializer::SoftmaxLayer *AnyLayer::layer_as<armnnSerializer::SoftmaxLayer>() const {
9559  return layer_as_SoftmaxLayer();
9560 }
9561 
9562 template<> inline const armnnSerializer::SpaceToBatchNdLayer *AnyLayer::layer_as<armnnSerializer::SpaceToBatchNdLayer>() const {
9563  return layer_as_SpaceToBatchNdLayer();
9564 }
9565 
9566 template<> inline const armnnSerializer::DivisionLayer *AnyLayer::layer_as<armnnSerializer::DivisionLayer>() const {
9567  return layer_as_DivisionLayer();
9568 }
9569 
9570 template<> inline const armnnSerializer::MinimumLayer *AnyLayer::layer_as<armnnSerializer::MinimumLayer>() const {
9571  return layer_as_MinimumLayer();
9572 }
9573 
9574 template<> inline const armnnSerializer::EqualLayer *AnyLayer::layer_as<armnnSerializer::EqualLayer>() const {
9575  return layer_as_EqualLayer();
9576 }
9577 
9578 template<> inline const armnnSerializer::MaximumLayer *AnyLayer::layer_as<armnnSerializer::MaximumLayer>() const {
9579  return layer_as_MaximumLayer();
9580 }
9581 
9582 template<> inline const armnnSerializer::NormalizationLayer *AnyLayer::layer_as<armnnSerializer::NormalizationLayer>() const {
9583  return layer_as_NormalizationLayer();
9584 }
9585 
9586 template<> inline const armnnSerializer::PadLayer *AnyLayer::layer_as<armnnSerializer::PadLayer>() const {
9587  return layer_as_PadLayer();
9588 }
9589 
9590 template<> inline const armnnSerializer::RsqrtLayer *AnyLayer::layer_as<armnnSerializer::RsqrtLayer>() const {
9591  return layer_as_RsqrtLayer();
9592 }
9593 
9594 template<> inline const armnnSerializer::FloorLayer *AnyLayer::layer_as<armnnSerializer::FloorLayer>() const {
9595  return layer_as_FloorLayer();
9596 }
9597 
9598 template<> inline const armnnSerializer::GreaterLayer *AnyLayer::layer_as<armnnSerializer::GreaterLayer>() const {
9599  return layer_as_GreaterLayer();
9600 }
9601 
9602 template<> inline const armnnSerializer::ResizeBilinearLayer *AnyLayer::layer_as<armnnSerializer::ResizeBilinearLayer>() const {
9603  return layer_as_ResizeBilinearLayer();
9604 }
9605 
9606 template<> inline const armnnSerializer::SubtractionLayer *AnyLayer::layer_as<armnnSerializer::SubtractionLayer>() const {
9607  return layer_as_SubtractionLayer();
9608 }
9609 
9610 template<> inline const armnnSerializer::StridedSliceLayer *AnyLayer::layer_as<armnnSerializer::StridedSliceLayer>() const {
9611  return layer_as_StridedSliceLayer();
9612 }
9613 
9614 template<> inline const armnnSerializer::GatherLayer *AnyLayer::layer_as<armnnSerializer::GatherLayer>() const {
9615  return layer_as_GatherLayer();
9616 }
9617 
9618 template<> inline const armnnSerializer::MeanLayer *AnyLayer::layer_as<armnnSerializer::MeanLayer>() const {
9619  return layer_as_MeanLayer();
9620 }
9621 
9622 template<> inline const armnnSerializer::MergerLayer *AnyLayer::layer_as<armnnSerializer::MergerLayer>() const {
9623  return layer_as_MergerLayer();
9624 }
9625 
9626 template<> inline const armnnSerializer::L2NormalizationLayer *AnyLayer::layer_as<armnnSerializer::L2NormalizationLayer>() const {
9627  return layer_as_L2NormalizationLayer();
9628 }
9629 
9630 template<> inline const armnnSerializer::SplitterLayer *AnyLayer::layer_as<armnnSerializer::SplitterLayer>() const {
9631  return layer_as_SplitterLayer();
9632 }
9633 
9634 template<> inline const armnnSerializer::DetectionPostProcessLayer *AnyLayer::layer_as<armnnSerializer::DetectionPostProcessLayer>() const {
9635  return layer_as_DetectionPostProcessLayer();
9636 }
9637 
9638 template<> inline const armnnSerializer::LstmLayer *AnyLayer::layer_as<armnnSerializer::LstmLayer>() const {
9639  return layer_as_LstmLayer();
9640 }
9641 
9642 template<> inline const armnnSerializer::QuantizedLstmLayer *AnyLayer::layer_as<armnnSerializer::QuantizedLstmLayer>() const {
9643  return layer_as_QuantizedLstmLayer();
9644 }
9645 
9646 template<> inline const armnnSerializer::QuantizeLayer *AnyLayer::layer_as<armnnSerializer::QuantizeLayer>() const {
9647  return layer_as_QuantizeLayer();
9648 }
9649 
9650 template<> inline const armnnSerializer::DequantizeLayer *AnyLayer::layer_as<armnnSerializer::DequantizeLayer>() const {
9651  return layer_as_DequantizeLayer();
9652 }
9653 
9654 template<> inline const armnnSerializer::MergeLayer *AnyLayer::layer_as<armnnSerializer::MergeLayer>() const {
9655  return layer_as_MergeLayer();
9656 }
9657 
9658 template<> inline const armnnSerializer::SwitchLayer *AnyLayer::layer_as<armnnSerializer::SwitchLayer>() const {
9659  return layer_as_SwitchLayer();
9660 }
9661 
9662 template<> inline const armnnSerializer::ConcatLayer *AnyLayer::layer_as<armnnSerializer::ConcatLayer>() const {
9663  return layer_as_ConcatLayer();
9664 }
9665 
9666 template<> inline const armnnSerializer::SpaceToDepthLayer *AnyLayer::layer_as<armnnSerializer::SpaceToDepthLayer>() const {
9667  return layer_as_SpaceToDepthLayer();
9668 }
9669 
9670 template<> inline const armnnSerializer::PreluLayer *AnyLayer::layer_as<armnnSerializer::PreluLayer>() const {
9671  return layer_as_PreluLayer();
9672 }
9673 
9674 template<> inline const armnnSerializer::TransposeConvolution2dLayer *AnyLayer::layer_as<armnnSerializer::TransposeConvolution2dLayer>() const {
9675  return layer_as_TransposeConvolution2dLayer();
9676 }
9677 
9678 template<> inline const armnnSerializer::ResizeLayer *AnyLayer::layer_as<armnnSerializer::ResizeLayer>() const {
9679  return layer_as_ResizeLayer();
9680 }
9681 
9682 template<> inline const armnnSerializer::StackLayer *AnyLayer::layer_as<armnnSerializer::StackLayer>() const {
9683  return layer_as_StackLayer();
9684 }
9685 
9686 template<> inline const armnnSerializer::AbsLayer *AnyLayer::layer_as<armnnSerializer::AbsLayer>() const {
9687  return layer_as_AbsLayer();
9688 }
9689 
9690 template<> inline const armnnSerializer::ArgMinMaxLayer *AnyLayer::layer_as<armnnSerializer::ArgMinMaxLayer>() const {
9691  return layer_as_ArgMinMaxLayer();
9692 }
9693 
9694 template<> inline const armnnSerializer::SliceLayer *AnyLayer::layer_as<armnnSerializer::SliceLayer>() const {
9695  return layer_as_SliceLayer();
9696 }
9697 
9698 template<> inline const armnnSerializer::DepthToSpaceLayer *AnyLayer::layer_as<armnnSerializer::DepthToSpaceLayer>() const {
9699  return layer_as_DepthToSpaceLayer();
9700 }
9701 
9702 template<> inline const armnnSerializer::InstanceNormalizationLayer *AnyLayer::layer_as<armnnSerializer::InstanceNormalizationLayer>() const {
9703  return layer_as_InstanceNormalizationLayer();
9704 }
9705 
9706 template<> inline const armnnSerializer::LogSoftmaxLayer *AnyLayer::layer_as<armnnSerializer::LogSoftmaxLayer>() const {
9707  return layer_as_LogSoftmaxLayer();
9708 }
9709 
9710 template<> inline const armnnSerializer::ComparisonLayer *AnyLayer::layer_as<armnnSerializer::ComparisonLayer>() const {
9711  return layer_as_ComparisonLayer();
9712 }
9713 
9714 template<> inline const armnnSerializer::StandInLayer *AnyLayer::layer_as<armnnSerializer::StandInLayer>() const {
9715  return layer_as_StandInLayer();
9716 }
9717 
9718 template<> inline const armnnSerializer::ElementwiseUnaryLayer *AnyLayer::layer_as<armnnSerializer::ElementwiseUnaryLayer>() const {
9719  return layer_as_ElementwiseUnaryLayer();
9720 }
9721 
9722 template<> inline const armnnSerializer::TransposeLayer *AnyLayer::layer_as<armnnSerializer::TransposeLayer>() const {
9723  return layer_as_TransposeLayer();
9724 }
9725 
9726 template<> inline const armnnSerializer::QLstmLayer *AnyLayer::layer_as<armnnSerializer::QLstmLayer>() const {
9727  return layer_as_QLstmLayer();
9728 }
9729 
9730 template<> inline const armnnSerializer::FillLayer *AnyLayer::layer_as<armnnSerializer::FillLayer>() const {
9731  return layer_as_FillLayer();
9732 }
9733 
9734 template<> inline const armnnSerializer::RankLayer *AnyLayer::layer_as<armnnSerializer::RankLayer>() const {
9735  return layer_as_RankLayer();
9736 }
9737 
9738 template<> inline const armnnSerializer::LogicalBinaryLayer *AnyLayer::layer_as<armnnSerializer::LogicalBinaryLayer>() const {
9739  return layer_as_LogicalBinaryLayer();
9740 }
9741 
9742 template<> inline const armnnSerializer::ReduceLayer *AnyLayer::layer_as<armnnSerializer::ReduceLayer>() const {
9743  return layer_as_ReduceLayer();
9744 }
9745 
9747  typedef AnyLayer Table;
9748  flatbuffers::FlatBufferBuilder &fbb_;
9749  flatbuffers::uoffset_t start_;
9751  fbb_.AddElement<uint8_t>(AnyLayer::VT_LAYER_TYPE, static_cast<uint8_t>(layer_type), 0);
9752  }
9753  void add_layer(flatbuffers::Offset<void> layer) {
9754  fbb_.AddOffset(AnyLayer::VT_LAYER, layer);
9755  }
9756  explicit AnyLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9757  : fbb_(_fbb) {
9758  start_ = fbb_.StartTable();
9759  }
9760  AnyLayerBuilder &operator=(const AnyLayerBuilder &);
9761  flatbuffers::Offset<AnyLayer> Finish() {
9762  const auto end = fbb_.EndTable(start_);
9763  auto o = flatbuffers::Offset<AnyLayer>(end);
9764  return o;
9765  }
9766 };
9767 
9768 inline flatbuffers::Offset<AnyLayer> CreateAnyLayer(
9769  flatbuffers::FlatBufferBuilder &_fbb,
9771  flatbuffers::Offset<void> layer = 0) {
9772  AnyLayerBuilder builder_(_fbb);
9773  builder_.add_layer(layer);
9774  builder_.add_layer_type(layer_type);
9775  return builder_.Finish();
9776 }
9777 
9778 struct FeatureCompatibilityVersions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9780  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9781  VT_BINDINGIDSSCHEME = 4
9782  };
9783  uint32_t bindingIdsScheme() const {
9784  return GetField<uint32_t>(VT_BINDINGIDSSCHEME, 0);
9785  }
9786  bool Verify(flatbuffers::Verifier &verifier) const {
9787  return VerifyTableStart(verifier) &&
9788  VerifyField<uint32_t>(verifier, VT_BINDINGIDSSCHEME) &&
9789  verifier.EndTable();
9790  }
9791 };
9792 
9794  typedef FeatureCompatibilityVersions Table;
9795  flatbuffers::FlatBufferBuilder &fbb_;
9796  flatbuffers::uoffset_t start_;
9797  void add_bindingIdsScheme(uint32_t bindingIdsScheme) {
9798  fbb_.AddElement<uint32_t>(FeatureCompatibilityVersions::VT_BINDINGIDSSCHEME, bindingIdsScheme, 0);
9799  }
9800  explicit FeatureCompatibilityVersionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9801  : fbb_(_fbb) {
9802  start_ = fbb_.StartTable();
9803  }
9805  flatbuffers::Offset<FeatureCompatibilityVersions> Finish() {
9806  const auto end = fbb_.EndTable(start_);
9807  auto o = flatbuffers::Offset<FeatureCompatibilityVersions>(end);
9808  return o;
9809  }
9810 };
9811 
9812 inline flatbuffers::Offset<FeatureCompatibilityVersions> CreateFeatureCompatibilityVersions(
9813  flatbuffers::FlatBufferBuilder &_fbb,
9814  uint32_t bindingIdsScheme = 0) {
9815  FeatureCompatibilityVersionsBuilder builder_(_fbb);
9816  builder_.add_bindingIdsScheme(bindingIdsScheme);
9817  return builder_.Finish();
9818 }
9819 
9820 struct SerializedGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9822  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9826  VT_FEATUREVERSIONS = 10
9827  };
9828  const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::AnyLayer>> *layers() const {
9829  return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::AnyLayer>> *>(VT_LAYERS);
9830  }
9831  const flatbuffers::Vector<int32_t> *inputIds() const {
9832  return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_INPUTIDS);
9833  }
9834  const flatbuffers::Vector<int32_t> *outputIds() const {
9835  return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUTIDS);
9836  }
9837  const armnnSerializer::FeatureCompatibilityVersions *featureVersions() const {
9838  return GetPointer<const armnnSerializer::FeatureCompatibilityVersions *>(VT_FEATUREVERSIONS);
9839  }
9840  bool Verify(flatbuffers::Verifier &verifier) const {
9841  return VerifyTableStart(verifier) &&
9842  VerifyOffset(verifier, VT_LAYERS) &&
9843  verifier.VerifyVector(layers()) &&
9844  verifier.VerifyVectorOfTables(layers()) &&
9845  VerifyOffset(verifier, VT_INPUTIDS) &&
9846  verifier.VerifyVector(inputIds()) &&
9847  VerifyOffset(verifier, VT_OUTPUTIDS) &&
9848  verifier.VerifyVector(outputIds()) &&
9849  VerifyOffset(verifier, VT_FEATUREVERSIONS) &&
9850  verifier.VerifyTable(featureVersions()) &&
9851  verifier.EndTable();
9852  }
9853 };
9854 
9856  typedef SerializedGraph Table;
9857  flatbuffers::FlatBufferBuilder &fbb_;
9858  flatbuffers::uoffset_t start_;
9859  void add_layers(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::AnyLayer>>> layers) {
9860  fbb_.AddOffset(SerializedGraph::VT_LAYERS, layers);
9861  }
9862  void add_inputIds(flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputIds) {
9863  fbb_.AddOffset(SerializedGraph::VT_INPUTIDS, inputIds);
9864  }
9865  void add_outputIds(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputIds) {
9866  fbb_.AddOffset(SerializedGraph::VT_OUTPUTIDS, outputIds);
9867  }
9868  void add_featureVersions(flatbuffers::Offset<armnnSerializer::FeatureCompatibilityVersions> featureVersions) {
9869  fbb_.AddOffset(SerializedGraph::VT_FEATUREVERSIONS, featureVersions);
9870  }
9871  explicit SerializedGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9872  : fbb_(_fbb) {
9873  start_ = fbb_.StartTable();
9874  }
9875  SerializedGraphBuilder &operator=(const SerializedGraphBuilder &);
9876  flatbuffers::Offset<SerializedGraph> Finish() {
9877  const auto end = fbb_.EndTable(start_);
9878  auto o = flatbuffers::Offset<SerializedGraph>(end);
9879  return o;
9880  }
9881 };
9882 
9883 inline flatbuffers::Offset<SerializedGraph> CreateSerializedGraph(
9884  flatbuffers::FlatBufferBuilder &_fbb,
9885  flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::AnyLayer>>> layers = 0,
9886  flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputIds = 0,
9887  flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputIds = 0,
9888  flatbuffers::Offset<armnnSerializer::FeatureCompatibilityVersions> featureVersions = 0) {
9889  SerializedGraphBuilder builder_(_fbb);
9890  builder_.add_featureVersions(featureVersions);
9891  builder_.add_outputIds(outputIds);
9892  builder_.add_inputIds(inputIds);
9893  builder_.add_layers(layers);
9894  return builder_.Finish();
9895 }
9896 
9897 inline flatbuffers::Offset<SerializedGraph> CreateSerializedGraphDirect(
9898  flatbuffers::FlatBufferBuilder &_fbb,
9899  const std::vector<flatbuffers::Offset<armnnSerializer::AnyLayer>> *layers = nullptr,
9900  const std::vector<int32_t> *inputIds = nullptr,
9901  const std::vector<int32_t> *outputIds = nullptr,
9902  flatbuffers::Offset<armnnSerializer::FeatureCompatibilityVersions> featureVersions = 0) {
9903  auto layers__ = layers ? _fbb.CreateVector<flatbuffers::Offset<armnnSerializer::AnyLayer>>(*layers) : 0;
9904  auto inputIds__ = inputIds ? _fbb.CreateVector<int32_t>(*inputIds) : 0;
9905  auto outputIds__ = outputIds ? _fbb.CreateVector<int32_t>(*outputIds) : 0;
9907  _fbb,
9908  layers__,
9909  inputIds__,
9910  outputIds__,
9911  featureVersions);
9912 }
9913 
9914 inline bool VerifyConstTensorData(flatbuffers::Verifier &verifier, const void *obj, ConstTensorData type) {
9915  switch (type) {
9916  case ConstTensorData_NONE: {
9917  return true;
9918  }
9919  case ConstTensorData_ByteData: {
9920  auto ptr = reinterpret_cast<const armnnSerializer::ByteData *>(obj);
9921  return verifier.VerifyTable(ptr);
9922  }
9924  auto ptr = reinterpret_cast<const armnnSerializer::ShortData *>(obj);
9925  return verifier.VerifyTable(ptr);
9926  }
9927  case ConstTensorData_IntData: {
9928  auto ptr = reinterpret_cast<const armnnSerializer::IntData *>(obj);
9929  return verifier.VerifyTable(ptr);
9930  }
9931  case ConstTensorData_LongData: {
9932  auto ptr = reinterpret_cast<const armnnSerializer::LongData *>(obj);
9933  return verifier.VerifyTable(ptr);
9934  }
9935  default: return true;
9936  }
9937 }
9938 
9939 inline bool VerifyConstTensorDataVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
9940  if (!values || !types) return !values && !types;
9941  if (values->size() != types->size()) return false;
9942  for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
9943  if (!VerifyConstTensorData(
9944  verifier, values->Get(i), types->GetEnum<ConstTensorData>(i))) {
9945  return false;
9946  }
9947  }
9948  return true;
9949 }
9950 
9951 inline bool VerifyLayer(flatbuffers::Verifier &verifier, const void *obj, Layer type) {
9952  switch (type) {
9953  case Layer_NONE: {
9954  return true;
9955  }
9956  case Layer_ActivationLayer: {
9957  auto ptr = reinterpret_cast<const armnnSerializer::ActivationLayer *>(obj);
9958  return verifier.VerifyTable(ptr);
9959  }
9960  case Layer_AdditionLayer: {
9961  auto ptr = reinterpret_cast<const armnnSerializer::AdditionLayer *>(obj);
9962  return verifier.VerifyTable(ptr);
9963  }
9965  auto ptr = reinterpret_cast<const armnnSerializer::BatchToSpaceNdLayer *>(obj);
9966  return verifier.VerifyTable(ptr);
9967  }
9969  auto ptr = reinterpret_cast<const armnnSerializer::BatchNormalizationLayer *>(obj);
9970  return verifier.VerifyTable(ptr);
9971  }
9972  case Layer_ConstantLayer: {
9973  auto ptr = reinterpret_cast<const armnnSerializer::ConstantLayer *>(obj);
9974  return verifier.VerifyTable(ptr);
9975  }
9976  case Layer_Convolution2dLayer: {
9977  auto ptr = reinterpret_cast<const armnnSerializer::Convolution2dLayer *>(obj);
9978  return verifier.VerifyTable(ptr);
9979  }
9981  auto ptr = reinterpret_cast<const armnnSerializer::DepthwiseConvolution2dLayer *>(obj);
9982  return verifier.VerifyTable(ptr);
9983  }
9985  auto ptr = reinterpret_cast<const armnnSerializer::FullyConnectedLayer *>(obj);
9986  return verifier.VerifyTable(ptr);
9987  }
9988  case Layer_InputLayer: {
9989  auto ptr = reinterpret_cast<const armnnSerializer::InputLayer *>(obj);
9990  return verifier.VerifyTable(ptr);
9991  }
9993  auto ptr = reinterpret_cast<const armnnSerializer::MultiplicationLayer *>(obj);
9994  return verifier.VerifyTable(ptr);
9995  }
9996  case Layer_OutputLayer: {
9997  auto ptr = reinterpret_cast<const armnnSerializer::OutputLayer *>(obj);
9998  return verifier.VerifyTable(ptr);
9999  }
10000  case Layer_PermuteLayer: {
10001  auto ptr = reinterpret_cast<const armnnSerializer::PermuteLayer *>(obj);
10002  return verifier.VerifyTable(ptr);
10003  }
10004  case Layer_Pooling2dLayer: {
10005  auto ptr = reinterpret_cast<const armnnSerializer::Pooling2dLayer *>(obj);
10006  return verifier.VerifyTable(ptr);
10007  }
10008  case Layer_ReshapeLayer: {
10009  auto ptr = reinterpret_cast<const armnnSerializer::ReshapeLayer *>(obj);
10010  return verifier.VerifyTable(ptr);
10011  }
10012  case Layer_SoftmaxLayer: {
10013  auto ptr = reinterpret_cast<const armnnSerializer::SoftmaxLayer *>(obj);
10014  return verifier.VerifyTable(ptr);
10015  }
10017  auto ptr = reinterpret_cast<const armnnSerializer::SpaceToBatchNdLayer *>(obj);
10018  return verifier.VerifyTable(ptr);
10019  }
10020  case Layer_DivisionLayer: {
10021  auto ptr = reinterpret_cast<const armnnSerializer::DivisionLayer *>(obj);
10022  return verifier.VerifyTable(ptr);
10023  }
10024  case Layer_MinimumLayer: {
10025  auto ptr = reinterpret_cast<const armnnSerializer::MinimumLayer *>(obj);
10026  return verifier.VerifyTable(ptr);
10027  }
10028  case Layer_EqualLayer: {
10029  auto ptr = reinterpret_cast<const armnnSerializer::EqualLayer *>(obj);
10030  return verifier.VerifyTable(ptr);
10031  }
10032  case Layer_MaximumLayer: {
10033  auto ptr = reinterpret_cast<const armnnSerializer::MaximumLayer *>(obj);
10034  return verifier.VerifyTable(ptr);
10035  }
10036  case Layer_NormalizationLayer: {
10037  auto ptr = reinterpret_cast<const armnnSerializer::NormalizationLayer *>(obj);
10038  return verifier.VerifyTable(ptr);
10039  }
10040  case Layer_PadLayer: {
10041  auto ptr = reinterpret_cast<const armnnSerializer::PadLayer *>(obj);
10042  return verifier.VerifyTable(ptr);
10043  }
10044  case Layer_RsqrtLayer: {
10045  auto ptr = reinterpret_cast<const armnnSerializer::RsqrtLayer *>(obj);
10046  return verifier.VerifyTable(ptr);
10047  }
10048  case Layer_FloorLayer: {
10049  auto ptr = reinterpret_cast<const armnnSerializer::FloorLayer *>(obj);
10050  return verifier.VerifyTable(ptr);
10051  }
10052  case Layer_GreaterLayer: {
10053  auto ptr = reinterpret_cast<const armnnSerializer::GreaterLayer *>(obj);
10054  return verifier.VerifyTable(ptr);
10055  }
10057  auto ptr = reinterpret_cast<const armnnSerializer::ResizeBilinearLayer *>(obj);
10058  return verifier.VerifyTable(ptr);
10059  }
10060  case Layer_SubtractionLayer: {
10061  auto ptr = reinterpret_cast<const armnnSerializer::SubtractionLayer *>(obj);
10062  return verifier.VerifyTable(ptr);
10063  }
10064  case Layer_StridedSliceLayer: {
10065  auto ptr = reinterpret_cast<const armnnSerializer::StridedSliceLayer *>(obj);
10066  return verifier.VerifyTable(ptr);
10067  }
10068  case Layer_GatherLayer: {
10069  auto ptr = reinterpret_cast<const armnnSerializer::GatherLayer *>(obj);
10070  return verifier.VerifyTable(ptr);
10071  }
10072  case Layer_MeanLayer: {
10073  auto ptr = reinterpret_cast<const armnnSerializer::MeanLayer *>(obj);
10074  return verifier.VerifyTable(ptr);
10075  }
10076  case Layer_MergerLayer: {
10077  auto ptr = reinterpret_cast<const armnnSerializer::MergerLayer *>(obj);
10078  return verifier.VerifyTable(ptr);
10079  }
10081  auto ptr = reinterpret_cast<const armnnSerializer::L2NormalizationLayer *>(obj);
10082  return verifier.VerifyTable(ptr);
10083  }
10084  case Layer_SplitterLayer: {
10085  auto ptr = reinterpret_cast<const armnnSerializer::SplitterLayer *>(obj);
10086  return verifier.VerifyTable(ptr);
10087  }
10089  auto ptr = reinterpret_cast<const armnnSerializer::DetectionPostProcessLayer *>(obj);
10090  return verifier.VerifyTable(ptr);
10091  }
10092  case Layer_LstmLayer: {
10093  auto ptr = reinterpret_cast<const armnnSerializer::LstmLayer *>(obj);
10094  return verifier.VerifyTable(ptr);
10095  }
10096  case Layer_QuantizedLstmLayer: {
10097  auto ptr = reinterpret_cast<const armnnSerializer::QuantizedLstmLayer *>(obj);
10098  return verifier.VerifyTable(ptr);
10099  }
10100  case Layer_QuantizeLayer: {
10101  auto ptr = reinterpret_cast<const armnnSerializer::QuantizeLayer *>(obj);
10102  return verifier.VerifyTable(ptr);
10103  }
10104  case Layer_DequantizeLayer: {
10105  auto ptr = reinterpret_cast<const armnnSerializer::DequantizeLayer *>(obj);
10106  return verifier.VerifyTable(ptr);
10107  }
10108  case Layer_MergeLayer: {
10109  auto ptr = reinterpret_cast<const armnnSerializer::MergeLayer *>(obj);
10110  return verifier.VerifyTable(ptr);
10111  }
10112  case Layer_SwitchLayer: {
10113  auto ptr = reinterpret_cast<const armnnSerializer::SwitchLayer *>(obj);
10114  return verifier.VerifyTable(ptr);
10115  }
10116  case Layer_ConcatLayer: {
10117  auto ptr = reinterpret_cast<const armnnSerializer::ConcatLayer *>(obj);
10118  return verifier.VerifyTable(ptr);
10119  }
10120  case Layer_SpaceToDepthLayer: {
10121  auto ptr = reinterpret_cast<const armnnSerializer::SpaceToDepthLayer *>(obj);
10122  return verifier.VerifyTable(ptr);
10123  }
10124  case Layer_PreluLayer: {
10125  auto ptr = reinterpret_cast<const armnnSerializer::PreluLayer *>(obj);
10126  return verifier.VerifyTable(ptr);
10127  }
10129  auto ptr = reinterpret_cast<const armnnSerializer::TransposeConvolution2dLayer *>(obj);
10130  return verifier.VerifyTable(ptr);
10131  }
10132  case Layer_ResizeLayer: {
10133  auto ptr = reinterpret_cast<const armnnSerializer::ResizeLayer *>(obj);
10134  return verifier.VerifyTable(ptr);
10135  }
10136  case Layer_StackLayer: {
10137  auto ptr = reinterpret_cast<const armnnSerializer::StackLayer *>(obj);
10138  return verifier.VerifyTable(ptr);
10139  }
10140  case Layer_AbsLayer: {
10141  auto ptr = reinterpret_cast<const armnnSerializer::AbsLayer *>(obj);
10142  return verifier.VerifyTable(ptr);
10143  }
10144  case Layer_ArgMinMaxLayer: {
10145  auto ptr = reinterpret_cast<const armnnSerializer::ArgMinMaxLayer *>(obj);
10146  return verifier.VerifyTable(ptr);
10147  }
10148  case Layer_SliceLayer: {
10149  auto ptr = reinterpret_cast<const armnnSerializer::SliceLayer *>(obj);
10150  return verifier.VerifyTable(ptr);
10151  }
10152  case Layer_DepthToSpaceLayer: {
10153  auto ptr = reinterpret_cast<const armnnSerializer::DepthToSpaceLayer *>(obj);
10154  return verifier.VerifyTable(ptr);
10155  }
10157  auto ptr = reinterpret_cast<const armnnSerializer::InstanceNormalizationLayer *>(obj);
10158  return verifier.VerifyTable(ptr);
10159  }
10160  case Layer_LogSoftmaxLayer: {
10161  auto ptr = reinterpret_cast<const armnnSerializer::LogSoftmaxLayer *>(obj);
10162  return verifier.VerifyTable(ptr);
10163  }
10164  case Layer_ComparisonLayer: {
10165  auto ptr = reinterpret_cast<const armnnSerializer::ComparisonLayer *>(obj);
10166  return verifier.VerifyTable(ptr);
10167  }
10168  case Layer_StandInLayer: {
10169  auto ptr = reinterpret_cast<const armnnSerializer::StandInLayer *>(obj);
10170  return verifier.VerifyTable(ptr);
10171  }
10173  auto ptr = reinterpret_cast<const armnnSerializer::ElementwiseUnaryLayer *>(obj);
10174  return verifier.VerifyTable(ptr);
10175  }
10176  case Layer_TransposeLayer: {
10177  auto ptr = reinterpret_cast<const armnnSerializer::TransposeLayer *>(obj);
10178  return verifier.VerifyTable(ptr);
10179  }
10180  case Layer_QLstmLayer: {
10181  auto ptr = reinterpret_cast<const armnnSerializer::QLstmLayer *>(obj);
10182  return verifier.VerifyTable(ptr);
10183  }
10184  case Layer_FillLayer: {
10185  auto ptr = reinterpret_cast<const armnnSerializer::FillLayer *>(obj);
10186  return verifier.VerifyTable(ptr);
10187  }
10188  case Layer_RankLayer: {
10189  auto ptr = reinterpret_cast<const armnnSerializer::RankLayer *>(obj);
10190  return verifier.VerifyTable(ptr);
10191  }
10192  case Layer_LogicalBinaryLayer: {
10193  auto ptr = reinterpret_cast<const armnnSerializer::LogicalBinaryLayer *>(obj);
10194  return verifier.VerifyTable(ptr);
10195  }
10196  case Layer_ReduceLayer: {
10197  auto ptr = reinterpret_cast<const armnnSerializer::ReduceLayer *>(obj);
10198  return verifier.VerifyTable(ptr);
10199  }
10200  default: return true;
10201  }
10202 }
10203 
10204 inline bool VerifyLayerVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
10205  if (!values || !types) return !values && !types;
10206  if (values->size() != types->size()) return false;
10207  for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
10208  if (!VerifyLayer(
10209  verifier, values->Get(i), types->GetEnum<Layer>(i))) {
10210  return false;
10211  }
10212  }
10213  return true;
10214 }
10215 
10216 inline const armnnSerializer::SerializedGraph *GetSerializedGraph(const void *buf) {
10217  return flatbuffers::GetRoot<armnnSerializer::SerializedGraph>(buf);
10218 }
10219 
10220 inline const armnnSerializer::SerializedGraph *GetSizePrefixedSerializedGraph(const void *buf) {
10221  return flatbuffers::GetSizePrefixedRoot<armnnSerializer::SerializedGraph>(buf);
10222 }
10223 
10224 inline const char *SerializedGraphIdentifier() {
10225  return "ARMN";
10226 }
10227 
10228 inline bool SerializedGraphBufferHasIdentifier(const void *buf) {
10229  return flatbuffers::BufferHasIdentifier(
10230  buf, SerializedGraphIdentifier());
10231 }
10232 
10234  flatbuffers::Verifier &verifier) {
10235  return verifier.VerifyBuffer<armnnSerializer::SerializedGraph>(SerializedGraphIdentifier());
10236 }
10237 
10239  flatbuffers::Verifier &verifier) {
10240  return verifier.VerifySizePrefixedBuffer<armnnSerializer::SerializedGraph>(SerializedGraphIdentifier());
10241 }
10242 
10243 inline const char *SerializedGraphExtension() {
10244  return "armnn";
10245 }
10246 
10248  flatbuffers::FlatBufferBuilder &fbb,
10249  flatbuffers::Offset<armnnSerializer::SerializedGraph> root) {
10250  fbb.Finish(root, SerializedGraphIdentifier());
10251 }
10252 
10254  flatbuffers::FlatBufferBuilder &fbb,
10255  flatbuffers::Offset<armnnSerializer::SerializedGraph> root) {
10256  fbb.FinishSizePrefixed(root, SerializedGraphIdentifier());
10257 }
10258 
10259 } // namespace armnnSerializer
10260 
10261 #endif // FLATBUFFERS_GENERATED_ARMNNSCHEMA_ARMNNSERIALIZER_H_
flatbuffers::Offset< LayerBase > CreateLayerBaseDirect(flatbuffers::FlatBufferBuilder &_fbb, uint32_t index=0, const char *layerName=nullptr, armnnSerializer::LayerType layerType=armnnSerializer::LayerType_Addition, const std::vector< flatbuffers::Offset< armnnSerializer::InputSlot >> *inputSlots=nullptr, const std::vector< flatbuffers::Offset< armnnSerializer::OutputSlot >> *outputSlots=nullptr)
const armnnSerializer::ConstTensor * weights() const
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
flatbuffers::Offset< MeanLayer > Finish()
flatbuffers::Offset< TensorInfo > Finish()
const armnnSerializer::RankLayer * layer_as_RankLayer() const
LogSoftmaxDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_poolType(armnnSerializer::PoolingAlgorithm poolType)
flatbuffers::Offset< DepthToSpaceDescriptor > Finish()
void add_descriptor(flatbuffers::Offset< armnnSerializer::NormalizationDescriptor > descriptor)
flatbuffers::Offset< DepthToSpaceLayer > Finish()
const armnnSerializer::ConstTensor * inputToOutputWeights() const
ConstantLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_anchors(flatbuffers::Offset< armnnSerializer::ConstTensor > anchors)
const armnnSerializer::AdditionLayer * layer_as_AdditionLayer() const
ReduceDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< SplitterLayer > Finish()
flatbuffers::Offset< LongData > CreateLongData(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< int64_t >> data=0)
void add_scaleW(float scaleW)
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
ElementwiseUnaryLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
VT_ARGMINMAXFUNCTION
flatbuffers::Offset< LongData > Finish()
void add_recurrentToInputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToInputWeights)
flatbuffers::Offset< ElementwiseUnaryDescriptor > Finish()
const armnnSerializer::MaximumLayer * layer_as_MaximumLayer() const
ElementwiseUnaryDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_descriptor(flatbuffers::Offset< armnnSerializer::ResizeBilinearDescriptor > descriptor)
flatbuffers::Offset< FullyConnectedDescriptor > CreateFullyConnectedDescriptor(flatbuffers::FlatBufferBuilder &_fbb, bool biasEnabled=false, bool transposeWeightsMatrix=false)
QuantizedLstmLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_outputLayerNormWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > outputLayerNormWeights)
flatbuffers::Offset< ReshapeDescriptor > CreateReshapeDescriptor(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> targetShape=0)
void add_forgetLayerNormWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > forgetLayerNormWeights)
const armnnSerializer::SliceLayer * layer_as_SliceLayer() const
flatbuffers::FlatBufferBuilder & fbb_
SubtractionLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
RsqrtLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< ReduceLayer > CreateReduceLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::ReduceDescriptor > descriptor=0)
void add_descriptor(flatbuffers::Offset< armnnSerializer::SpaceToBatchNdDescriptor > descriptor)
const armnnSerializer::ConcatLayer * layer_as_ConcatLayer() const
void add_info(flatbuffers::Offset< armnnSerializer::TensorInfo > info)
flatbuffers::Offset< SerializedGraph > CreateSerializedGraphDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< flatbuffers::Offset< armnnSerializer::AnyLayer >> *layers=nullptr, const std::vector< int32_t > *inputIds=nullptr, const std::vector< int32_t > *outputIds=nullptr, flatbuffers::Offset< armnnSerializer::FeatureCompatibilityVersions > featureVersions=0)
const char * EnumNameUnaryOperation(UnaryOperation e)
flatbuffers::Offset< PermuteLayer > Finish()
const armnnSerializer::ConstTensor * inputGateBias() const
const armnnSerializer::NormalizationLayer * layer_as_NormalizationLayer() const
void add_layerNormEnabled(bool layerNormEnabled)
BatchToSpaceNdLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::FillDescriptor * descriptor() const
flatbuffers::FlatBufferBuilder & fbb_
void add_maxClassesPerDetection(uint32_t maxClassesPerDetection)
const armnnSerializer::PermuteLayer * layer_as_PermuteLayer() const
flatbuffers::Offset< OutputSlot > CreateOutputSlot(flatbuffers::FlatBufferBuilder &_fbb, uint32_t index=0, flatbuffers::Offset< armnnSerializer::TensorInfo > tensorInfo=0)
flatbuffers::Offset< QLstmDescriptor > Finish()
armnnSerializer::NormalizationAlgorithmMethod normMethodType() const
flatbuffers::Offset< DepthwiseConvolution2dDescriptor > CreateDepthwiseConvolution2dDescriptor(flatbuffers::FlatBufferBuilder &_fbb, uint32_t padLeft=0, uint32_t padRight=0, uint32_t padTop=0, uint32_t padBottom=0, uint32_t strideX=0, uint32_t strideY=0, uint32_t dilationX=1, uint32_t dilationY=1, bool biasEnabled=false, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NCHW)
void add_data_type(armnnSerializer::ConstTensorData data_type)
MergerLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::QLstmDescriptor * descriptor() const
SliceDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::ConstTensor * recurrentToForgetWeights() const
ConcatLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const char *const * EnumNamesLogicalBinaryOperation()
ElementwiseUnaryDescriptorBuilder Builder
const armnnSerializer::ComparisonDescriptor * descriptor() const
const armnnSerializer::FeatureCompatibilityVersions * featureVersions() const
armnnSerializer::DataType dataType() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::FlatBufferBuilder & fbb_
armnnSerializer::LogicalBinaryOperation operation() const
const char *const * EnumNamesReduceOperation()
AdditionLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
VT_CELLTOFORGETWEIGHTS
const armnnSerializer::RsqrtLayer * layer_as_RsqrtLayer() const
void add_descriptor(flatbuffers::Offset< armnnSerializer::SliceDescriptor > descriptor)
LstmLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_descriptor(flatbuffers::Offset< armnnSerializer::TransposeDescriptor > descriptor)
flatbuffers::Offset< ActivationLayer > Finish()
BatchNormalizationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
bool VerifyLayerVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector< flatbuffers::Offset< void >> *values, const flatbuffers::Vector< uint8_t > *types)
void add_descriptor(flatbuffers::Offset< armnnSerializer::BatchToSpaceNdDescriptor > descriptor)
const UnaryOperation(& EnumValuesUnaryOperation())[6]
TransposeConvolution2dLayerBuilder Builder
const armnnSerializer::ElementwiseUnaryDescriptor * descriptor() const
void add_descriptor(flatbuffers::Offset< armnnSerializer::GatherDescriptor > descriptor)
flatbuffers::Offset< TransposeConvolution2dLayer > Finish()
armnnSerializer::LayerType layerType() const
const armnnSerializer::ConstTensor * outputLayerNormWeights() const
const armnnSerializer::ConstTensor * cellLayerNormWeights() const
void add_quantizationScale(float quantizationScale)
flatbuffers::Offset< MaximumLayer > Finish()
flatbuffers::Offset< MergerLayer > CreateMergerLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::OriginsDescriptor > descriptor=0)
flatbuffers::Offset< AbsLayer > CreateAbsLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
flatbuffers::Offset< LstmLayer > CreateLstmLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::LstmDescriptor > descriptor=0, flatbuffers::Offset< armnnSerializer::LstmInputParams > inputParams=0)
flatbuffers::Offset< PermuteDescriptor > Finish()
flatbuffers::Offset< L2NormalizationLayer > CreateL2NormalizationLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::L2NormalizationDescriptor > descriptor=0)
flatbuffers::FlatBufferBuilder & fbb_
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::FlatBufferBuilder & fbb_
const armnnSerializer::Convolution2dLayer * layer_as_Convolution2dLayer() const
void add_recurrentToCellWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToCellWeights)
const flatbuffers::Vector< int16_t > * data() const
const flatbuffers::Vector< uint32_t > * blockShape() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_method(armnnSerializer::ResizeMethod method)
flatbuffers::Offset< TransposeConvolution2dDescriptor > CreateTransposeConvolution2dDescriptor(flatbuffers::FlatBufferBuilder &_fbb, uint32_t padLeft=0, uint32_t padRight=0, uint32_t padTop=0, uint32_t padBottom=0, uint32_t strideX=0, uint32_t strideY=0, bool biasEnabled=false, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NCHW)
flatbuffers::Offset< GatherLayer > Finish()
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const flatbuffers::Vector< uint32_t > * dimMappings() const
bool VerifyLayer(flatbuffers::Verifier &verifier, const void *obj, Layer type)
SpaceToBatchNdLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const flatbuffers::Vector< int32_t > * end() const
flatbuffers::Offset< LogSoftmaxLayer > Finish()
void add_weights(flatbuffers::Offset< armnnSerializer::ConstTensor > weights)
void add_biases(flatbuffers::Offset< armnnSerializer::ConstTensor > biases)
void add_descriptor(flatbuffers::Offset< armnnSerializer::FullyConnectedDescriptor > descriptor)
unsigned int Offset(const TensorShape &shape, unsigned int batch, unsigned int height, unsigned int width, unsigned int channels, const DataLayoutIndexed &dataLayout)
flatbuffers::FlatBufferBuilder & fbb_
flatbuffers::Offset< ResizeDescriptor > CreateResizeDescriptor(flatbuffers::FlatBufferBuilder &_fbb, uint32_t targetHeight=0, uint32_t targetWidth=0, armnnSerializer::ResizeMethod method=armnnSerializer::ResizeMethod_NearestNeighbor, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC, bool alignCorners=false, bool halfPixelCenters=false)
flatbuffers::Offset< FillLayer > CreateFillLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::FillDescriptor > descriptor=0)
const char *const * EnumNamesResizeMethod()
flatbuffers::FlatBufferBuilder & fbb_
SpaceToBatchNdDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const char *const * EnumNamesDataLayout()
flatbuffers::Offset< ShortData > CreateShortDataDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< int16_t > *data=nullptr)
flatbuffers::Offset< IntData > CreateIntDataDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< int32_t > *data=nullptr)
void add_normMethodType(armnnSerializer::NormalizationAlgorithmMethod normMethodType)
const char *const * EnumNamesActivationFunction()
void add_inputToForgetWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputToForgetWeights)
void add_descriptor(flatbuffers::Offset< armnnSerializer::PadDescriptor > descriptor)
void add_halfPixelCenters(bool halfPixelCenters)
void add_peepholeEnabled(bool peepholeEnabled)
flatbuffers::FlatBufferBuilder & fbb_
ArgMinMaxDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_quantizationOffset(int32_t quantizationOffset)
flatbuffers::Offset< StackDescriptor > CreateStackDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, uint32_t axis=0, uint32_t numInputs=0, const std::vector< uint32_t > *inputShape=nullptr)
void add_inputToCellWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputToCellWeights)
flatbuffers::Offset< SoftmaxDescriptor > CreateSoftmaxDescriptor(flatbuffers::FlatBufferBuilder &_fbb, float beta=0.0f)
void add_connection(const armnnSerializer::Connection *connection)
flatbuffers::Offset< LogicalBinaryDescriptor > Finish()
void add_numClasses(uint32_t numClasses)
armnnSerializer::ReduceOperation reduceOperation() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< DequantizeLayer > Finish()
ViewsDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< LongData > CreateLongDataDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< int64_t > *data=nullptr)
void add_descriptor(flatbuffers::Offset< armnnSerializer::ActivationDescriptor > descriptor)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
SwitchLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_viewSizes(flatbuffers::Offset< flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::UintVector >>> viewSizes)
VT_INPUTTOOUTPUTWEIGHTS
void add_projectionEnabled(bool projectionEnabled)
void add_begin(flatbuffers::Offset< flatbuffers::Vector< int32_t >> begin)
const armnnSerializer::ByteData * data_as_ByteData() const
DetectionPostProcessLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::ElementwiseUnaryLayer * layer_as_ElementwiseUnaryLayer() const
VT_INPUTTOCELLWEIGHTS
void add_descriptor(flatbuffers::Offset< armnnSerializer::LogicalBinaryDescriptor > descriptor)
const armnnSerializer::ConstTensor * gamma() const
flatbuffers::Offset< GatherLayer > CreateGatherLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::GatherDescriptor > descriptor=0)
Pooling2dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_descriptor(flatbuffers::Offset< armnnSerializer::ElementwiseUnaryDescriptor > descriptor)
const armnnSerializer::SpaceToBatchNdDescriptor * descriptor() const
const armnnSerializer::PadDescriptor * descriptor() const
DivisionLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_descriptor(flatbuffers::Offset< armnnSerializer::StackDescriptor > descriptor)
const armnnSerializer::ReduceDescriptor * descriptor() const
VT_RECURRENTTOINPUTWEIGHTS
flatbuffers::Offset< RankLayer > CreateRankLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
const armnnSerializer::ConstTensor * mean() const
const armnnSerializer::SwitchLayer * layer_as_SwitchLayer() const
flatbuffers::Offset< StackLayer > Finish()
NormalizationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< TransposeLayer > CreateTransposeLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::TransposeDescriptor > descriptor=0)
TransposeConvolution2dDescriptorBuilder Builder
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const armnnSerializer::ReshapeLayer * layer_as_ReshapeLayer() const
DequantizeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_base(flatbuffers::Offset< armnnSerializer::BindableLayerBase > base)
flatbuffers::FlatBufferBuilder & fbb_
flatbuffers::FlatBufferBuilder & fbb_
QuantizedLstmInputParamsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
VT_CELLTOOUTPUTWEIGHTS
SoftmaxLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::FlatBufferBuilder & fbb_
const char * EnumNamePoolingAlgorithm(PoolingAlgorithm e)
BatchNormalizationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< SpaceToDepthDescriptor > Finish()
flatbuffers::Offset< ComparisonLayer > CreateComparisonLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::ComparisonDescriptor > descriptor=0)
flatbuffers::Offset< SpaceToBatchNdLayer > Finish()
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< SwitchLayer > Finish()
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const char * EnumNameConstTensorData(ConstTensorData e)
void add_descriptor(flatbuffers::Offset< armnnSerializer::StridedSliceDescriptor > descriptor)
void add_padList(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> padList)
flatbuffers::Offset< AdditionLayer > Finish()
MaximumLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const char * EnumNameReduceOperation(ReduceOperation e)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_transposeWeightsMatrix(bool transposeWeightsMatrix)
const armnnSerializer::ConstTensor * inputLayerNormWeights() const
PreluLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::ResizeBilinearLayer * layer_as_ResizeBilinearLayer() const
flatbuffers::Offset< ConstTensor > CreateConstTensor(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::TensorInfo > info=0, armnnSerializer::ConstTensorData data_type=armnnSerializer::ConstTensorData_NONE, flatbuffers::Offset< void > data=0)
void add_crops(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> crops)
flatbuffers::Offset< QuantizeLayer > CreateQuantizeLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
void add_recurrentToForgetWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToForgetWeights)
const armnnSerializer::DivisionLayer * layer_as_DivisionLayer() const
const armnnSerializer::TransposeDescriptor * descriptor() const
flatbuffers::Offset< LstmInputParams > Finish()
const flatbuffers::Vector< int32_t > * begin() const
const armnnSerializer::Pooling2dLayer * layer_as_Pooling2dLayer() const
MeanDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const PaddingMethod(& EnumValuesPaddingMethod())[2]
const DataType(& EnumValuesDataType())[10]
InputLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< InputSlot > CreateInputSlot(flatbuffers::FlatBufferBuilder &_fbb, uint32_t index=0, const armnnSerializer::Connection *connection=0)
flatbuffers::FlatBufferBuilder & fbb_
ResizeBilinearLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< SpaceToDepthDescriptor > CreateSpaceToDepthDescriptor(flatbuffers::FlatBufferBuilder &_fbb, uint32_t blockSize=0, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC)
void add_inputLayerNormWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputLayerNormWeights)
flatbuffers::FlatBufferBuilder & fbb_
armnnSerializer::NormalizationAlgorithmChannel normChannelType() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_recurrentToOutputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToOutputWeights)
flatbuffers::Offset< SerializedGraph > Finish()
void FinishSerializedGraphBuffer(flatbuffers::FlatBufferBuilder &fbb, flatbuffers::Offset< armnnSerializer::SerializedGraph > root)
flatbuffers::Offset< QuantizedLstmLayer > CreateQuantizedLstmLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::QuantizedLstmInputParams > inputParams=0)
VT_CELLTOINPUTWEIGHTS
flatbuffers::FlatBufferBuilder & fbb_
QLstmLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::FlatBufferBuilder & fbb_
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< TransposeDescriptor > CreateTransposeDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< uint32_t > *dimMappings=nullptr)
flatbuffers::Offset< ResizeBilinearDescriptor > Finish()
flatbuffers::Offset< TransposeDescriptor > CreateTransposeDescriptor(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> dimMappings=0)
DepthwiseConvolution2dLayerBuilder Builder
const flatbuffers::Vector< int8_t > * data() const
TensorInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_hiddenStateZeroPoint(int32_t hiddenStateZeroPoint)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const armnnSerializer::LogSoftmaxLayer * layer_as_LogSoftmaxLayer() const
VT_INPUTTOFORGETWEIGHTS
flatbuffers::FlatBufferBuilder & fbb_
flatbuffers::FlatBufferBuilder & fbb_
armnnSerializer::ComparisonOperation operation() const
void add_cellIntermediateScale(float cellIntermediateScale)
const armnnSerializer::ResizeLayer * layer_as_ResizeLayer() const
void add_dimensionality(uint32_t dimensionality)
const armnnSerializer::ComparisonLayer * layer_as_ComparisonLayer() const
flatbuffers::Offset< DetectionPostProcessDescriptor > CreateDetectionPostProcessDescriptor(flatbuffers::FlatBufferBuilder &_fbb, uint32_t maxDetections=0, uint32_t maxClassesPerDetection=0, uint32_t detectionsPerClass=0, float nmsScoreThreshold=0.0f, float nmsIouThreshold=0.0f, uint32_t numClasses=0, bool useRegularNms=false, float scaleX=0.0f, float scaleY=0.0f, float scaleW=0.0f, float scaleH=0.0f)
flatbuffers::Offset< InstanceNormalizationLayer > Finish()
flatbuffers::FlatBufferBuilder & fbb_
const OutputShapeRounding(& EnumValuesOutputShapeRounding())[2]
const armnnSerializer::SerializedGraph * GetSerializedGraph(const void *buf)
const char *const * EnumNamesLayerType()
void add_cellBias(flatbuffers::Offset< armnnSerializer::ConstTensor > cellBias)
void add_data(flatbuffers::Offset< flatbuffers::Vector< int64_t >> data)
const armnnSerializer::LogicalBinaryDescriptor * descriptor() const
flatbuffers::Offset< AnyLayer > CreateAnyLayer(flatbuffers::FlatBufferBuilder &_fbb, armnnSerializer::Layer layer_type=armnnSerializer::Layer_NONE, flatbuffers::Offset< void > layer=0)
GatherDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
MeanLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< OutputLayer > Finish()
void add_projectionBias(flatbuffers::Offset< armnnSerializer::ConstTensor > projectionBias)
flatbuffers::Offset< DepthwiseConvolution2dLayer > CreateDepthwiseConvolution2dLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::DepthwiseConvolution2dDescriptor > descriptor=0, flatbuffers::Offset< armnnSerializer::ConstTensor > weights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > biases=0)
const char * EnumNameLayer(Layer e)
flatbuffers::Offset< MergeLayer > CreateMergeLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
flatbuffers::Offset< SliceLayer > Finish()
const armnnSerializer::FloorLayer * layer_as_FloorLayer() const
BatchNormalizationDescriptorBuilder Builder
L2NormalizationDescriptorBuilder Builder
VT_PROJECTIONENABLED
void add_recurrentToOutputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToOutputWeights)
flatbuffers::FlatBufferBuilder & fbb_
const LayerType(& EnumValuesLayerType())[61]
StackDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_cellToInputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > cellToInputWeights)
const armnnSerializer::MultiplicationLayer * layer_as_MultiplicationLayer() const
StridedSliceLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
VT_QUANTIZATIONSCALES
const armnnSerializer::TensorInfo * info() const
const armnnSerializer::SoftmaxDescriptor * descriptor() const
EqualLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::FlatBufferBuilder & fbb_
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_activationFunction(armnnSerializer::ActivationFunction activationFunction)
flatbuffers::Offset< SoftmaxLayer > Finish()
const flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::OutputSlot > > * outputSlots() const
flatbuffers::Offset< ActivationDescriptor > Finish()
VT_MAXCLASSESPERDETECTION
bool VerifyConstTensorData(flatbuffers::Verifier &verifier, const void *obj, ConstTensorData type)
const flatbuffers::Vector< uint32_t > * targetShape() const
flatbuffers::Offset< QLstmInputParams > CreateQLstmInputParams(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::ConstTensor > inputToForgetWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputToCellWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputToOutputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToForgetWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToCellWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToOutputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > forgetGateBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > cellBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > outputGateBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputToInputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToInputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputGateBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > projectionWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > projectionBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > cellToInputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > cellToForgetWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > cellToOutputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputLayerNormWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > forgetLayerNormWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > cellLayerNormWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > outputLayerNormWeights=0)
flatbuffers::Offset< ResizeLayer > Finish()
const armnnSerializer::ConstTensor * cellToForgetWeights() const
ResizeBilinearDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< ReshapeDescriptor > Finish()
const flatbuffers::Vector< uint32_t > * axis() const
InputSlotBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< ShortData > Finish()
void add_inputSlots(flatbuffers::Offset< flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::InputSlot >>> inputSlots)
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
void add_input(flatbuffers::Offset< armnnSerializer::ConstTensor > input)
const armnnSerializer::LayerBase * base() const
bool Verify(flatbuffers::Verifier &verifier) const
const ReduceOperation(& EnumValuesReduceOperation())[4]
flatbuffers::FlatBufferBuilder & fbb_
VT_QUANTIZATIONSCALE
flatbuffers::Offset< ConstantLayer > Finish()
VT_RECURRENTTOOUTPUTWEIGHTS
flatbuffers::Offset< SpaceToBatchNdDescriptor > CreateSpaceToBatchNdDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< uint32_t > *blockShape=nullptr, const std::vector< uint32_t > *padList=nullptr, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC)
flatbuffers::FlatBufferBuilder & fbb_
const armnnSerializer::BindableLayerBase * base() const
const char *const * EnumNamesOutputShapeRounding()
flatbuffers::Offset< ElementwiseUnaryLayer > Finish()
flatbuffers::FlatBufferBuilder & fbb_
flatbuffers::Offset< ComparisonLayer > Finish()
flatbuffers::Offset< TransposeConvolution2dLayer > CreateTransposeConvolution2dLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::TransposeConvolution2dDescriptor > descriptor=0, flatbuffers::Offset< armnnSerializer::ConstTensor > weights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > biases=0)
flatbuffers::Offset< MinimumLayer > Finish()
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
const armnnSerializer::ActivationLayer * layer_as_ActivationLayer() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const armnnSerializer::DequantizeLayer * layer_as_DequantizeLayer() const
Pooling2dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::FlatBufferBuilder & fbb_
void add_data(flatbuffers::Offset< flatbuffers::Vector< int32_t >> data)
flatbuffers::Offset< TensorInfo > CreateTensorInfo(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> dimensions=0, armnnSerializer::DataType dataType=armnnSerializer::DataType_Float16, float quantizationScale=1.0f, int32_t quantizationOffset=0, flatbuffers::Offset< flatbuffers::Vector< float >> quantizationScales=0, uint32_t quantizationDim=0, uint32_t dimensionality=1, flatbuffers::Offset< flatbuffers::Vector< uint8_t >> dimensionSpecificity=0)
const ArgMinMaxFunction(& EnumValuesArgMinMaxFunction())[2]
const armnnSerializer::StandInLayer * layer_as_StandInLayer() const
flatbuffers::Offset< PreluLayer > CreatePreluLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
void add_outputIntermediateScale(float outputIntermediateScale)
IntDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_inputToOutputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputToOutputWeights)
const armnnSerializer::BatchToSpaceNdLayer * layer_as_BatchToSpaceNdLayer() const
flatbuffers::Offset< StandInDescriptor > Finish()
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
flatbuffers::Offset< StandInDescriptor > CreateStandInDescriptor(flatbuffers::FlatBufferBuilder &_fbb, uint32_t numInputs=0, uint32_t numOutputs=0)
const armnnSerializer::ConstTensor * variance() const
flatbuffers::Offset< NormalizationLayer > Finish()
flatbuffers::Offset< PreluLayer > Finish()
FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Connection FLATBUFFERS_FINAL_CLASS
void add_dimMappings(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> dimMappings)
flatbuffers::Offset< ByteData > Finish()
TransposeConvolution2dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< TransposeLayer > Finish()
flatbuffers::Offset< GreaterLayer > Finish()
void add_descriptor(flatbuffers::Offset< armnnSerializer::ReduceDescriptor > descriptor)
flatbuffers::FlatBufferBuilder & fbb_
void add_quantizationScales(flatbuffers::Offset< flatbuffers::Vector< float >> quantizationScales)
flatbuffers::Offset< QLstmLayer > Finish()
void add_cellLayerNormWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > cellLayerNormWeights)
const armnnSerializer::ArgMinMaxLayer * layer_as_ArgMinMaxLayer() const
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
flatbuffers::Offset< MultiplicationLayer > CreateMultiplicationLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
SpaceToDepthDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< DepthToSpaceLayer > CreateDepthToSpaceLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::DepthToSpaceDescriptor > descriptor=0)
void add_outputGateBias(flatbuffers::Offset< armnnSerializer::ConstTensor > outputGateBias)
flatbuffers::Offset< InstanceNormalizationLayer > CreateInstanceNormalizationLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::InstanceNormalizationDescriptor > descriptor=0)
flatbuffers::Offset< ReduceLayer > Finish()
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::FlatBufferBuilder & fbb_
const armnnSerializer::DepthwiseConvolution2dDescriptor * descriptor() const
flatbuffers::Offset< SliceLayer > CreateSliceLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::SliceDescriptor > descriptor=0)
armnnSerializer::UnaryOperation operation() const
void add_end(flatbuffers::Offset< flatbuffers::Vector< int32_t >> end)
void add_cellBias(flatbuffers::Offset< armnnSerializer::ConstTensor > cellBias)
void add_biases(flatbuffers::Offset< armnnSerializer::ConstTensor > biases)
VT_CLIPPINGTHRESPROJ
void add_recurrentToOutputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToOutputWeights)
flatbuffers::FlatBufferBuilder & fbb_
void add_axis(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> axis)
flatbuffers::Offset< Convolution2dDescriptor > CreateConvolution2dDescriptor(flatbuffers::FlatBufferBuilder &_fbb, uint32_t padLeft=0, uint32_t padRight=0, uint32_t padTop=0, uint32_t padBottom=0, uint32_t strideX=0, uint32_t strideY=0, uint32_t dilationX=1, uint32_t dilationY=1, bool biasEnabled=false, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NCHW)
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
flatbuffers::Offset< BatchNormalizationDescriptor > Finish()
flatbuffers::FlatBufferBuilder & fbb_
const char *const * EnumNamesLayer()
void add_biases(flatbuffers::Offset< armnnSerializer::ConstTensor > biases)
flatbuffers::Offset< InputLayer > CreateInputLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::BindableLayerBase > base=0)
void add_axis(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> axis)
const armnnSerializer::NormalizationDescriptor * descriptor() const
void add_scaleY(float scaleY)
void add_dataType(armnnSerializer::DataType dataType)
const char * SerializedGraphIdentifier()
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< MultiplicationLayer > Finish()
const DataLayout(& EnumValuesDataLayout())[2]
const armnnSerializer::LstmDescriptor * descriptor() const
flatbuffers::Offset< ShortData > CreateShortData(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< int16_t >> data=0)
void add_outputSlots(flatbuffers::Offset< flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::OutputSlot >>> outputSlots)
flatbuffers::Offset< ConcatLayer > CreateConcatLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::OriginsDescriptor > descriptor=0)
flatbuffers::Offset< FillDescriptor > Finish()
flatbuffers::Offset< IntData > Finish()
const armnnSerializer::ConstTensor * biases() const
Convolution2dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
ComparisonDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const flatbuffers::Vector< uint8_t > * dimensionSpecificity() const
flatbuffers::Offset< LstmDescriptor > Finish()
flatbuffers::Offset< TensorInfo > CreateTensorInfoDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< uint32_t > *dimensions=nullptr, armnnSerializer::DataType dataType=armnnSerializer::DataType_Float16, float quantizationScale=1.0f, int32_t quantizationOffset=0, const std::vector< float > *quantizationScales=nullptr, uint32_t quantizationDim=0, uint32_t dimensionality=1, const std::vector< uint8_t > *dimensionSpecificity=nullptr)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const armnnSerializer::ReduceLayer * layer_as_ReduceLayer() const
VT_RECURRENTTOFORGETWEIGHTS
void add_stride(flatbuffers::Offset< flatbuffers::Vector< int32_t >> stride)
VT_QUANTIZATIONOFFSET
bool VerifySizePrefixedSerializedGraphBuffer(flatbuffers::Verifier &verifier)
flatbuffers::Offset< SubtractionLayer > CreateSubtractionLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
void add_descriptor(flatbuffers::Offset< armnnSerializer::SoftmaxDescriptor > descriptor)
flatbuffers::Offset< EqualLayer > Finish()
flatbuffers::Offset< BindableLayerBase > CreateBindableLayerBase(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, int32_t layerBindingId=0)
flatbuffers::FlatBufferBuilder & fbb_
flatbuffers::Offset< NormalizationDescriptor > Finish()
QLstmDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const flatbuffers::String * layerName() const
flatbuffers::FlatBufferBuilder & fbb_
armnnSerializer::DataLayout dataLayout() const
void add_projectionWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > projectionWeights)
const armnnSerializer::TransposeConvolution2dLayer * layer_as_TransposeConvolution2dLayer() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::FlatBufferBuilder & fbb_
void add_normChannelType(armnnSerializer::NormalizationAlgorithmChannel normChannelType)
flatbuffers::Offset< ArgMinMaxLayer > CreateArgMinMaxLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::ArgMinMaxDescriptor > descriptor=0)
void add_descriptor(flatbuffers::Offset< armnnSerializer::ReshapeDescriptor > descriptor)
const armnnSerializer::BatchToSpaceNdDescriptor * descriptor() const
void add_blockShape(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> blockShape)
const armnnSerializer::BatchNormalizationLayer * layer_as_BatchNormalizationLayer() const
const flatbuffers::Vector< uint32_t > * size() const
flatbuffers::Offset< DepthwiseConvolution2dDescriptor > Finish()
const armnnSerializer::ConstTensor * projectionBias() const
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
const armnnSerializer::GreaterLayer * layer_as_GreaterLayer() const
flatbuffers::Offset< LayerBase > Finish()
const flatbuffers::Vector< int32_t > * inputIds() const
flatbuffers::Offset< AbsLayer > Finish()
void add_maxDetections(uint32_t maxDetections)
void add_inputIds(flatbuffers::Offset< flatbuffers::Vector< int32_t >> inputIds)
armnnSerializer::ActivationFunction activationFunction() const
const armnnSerializer::ConstTensor * cellToInputWeights() const
void add_inputIntermediateScale(float inputIntermediateScale)
void add_dimMappings(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> dimMappings)
VT_NMSSCORETHRESHOLD
FullyConnectedLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< QLstmDescriptor > CreateQLstmDescriptor(flatbuffers::FlatBufferBuilder &_fbb, bool cifgEnabled=true, bool peepholeEnabled=false, bool projectionEnabled=false, bool layerNormEnabled=false, float cellClip=0.0f, float projectionClip=0.0f, float inputIntermediateScale=0.0f, float forgetIntermediateScale=0.0f, float cellIntermediateScale=0.0f, float outputIntermediateScale=0.0f, int32_t hiddenStateZeroPoint=0, float hiddenStateScale=0.0f)
flatbuffers::FlatBufferBuilder & fbb_
NormalizationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< GreaterLayer > CreateGreaterLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
void add_clippingThresProj(float clippingThresProj)
flatbuffers::Offset< SpaceToDepthLayer > Finish()
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_descriptor(flatbuffers::Offset< armnnSerializer::Pooling2dDescriptor > descriptor)
void add_inputParams(flatbuffers::Offset< armnnSerializer::QuantizedLstmInputParams > inputParams)
const armnnSerializer::StridedSliceLayer * layer_as_StridedSliceLayer() const
void add_forgetIntermediateScale(float forgetIntermediateScale)
flatbuffers::Offset< ReshapeLayer > CreateReshapeLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::ReshapeDescriptor > descriptor=0)
const char * EnumNameActivationFunction(ActivationFunction e)
void add_inputParams(flatbuffers::Offset< armnnSerializer::QLstmInputParams > inputParams)
flatbuffers::Offset< MeanDescriptor > CreateMeanDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< uint32_t > *axis=nullptr, bool keepDims=false)
armnnSerializer::OutputShapeRounding outputShapeRounding() const
flatbuffers::Offset< ArgMinMaxDescriptor > CreateArgMinMaxDescriptor(flatbuffers::FlatBufferBuilder &_fbb, armnnSerializer::ArgMinMaxFunction argMinMaxFunction=armnnSerializer::ArgMinMaxFunction_Min, int32_t axis=0)
flatbuffers::FlatBufferBuilder & fbb_
void add_forgetGateBias(flatbuffers::Offset< armnnSerializer::ConstTensor > forgetGateBias)
const armnnSerializer::MergerLayer * layer_as_MergerLayer() const
flatbuffers::Offset< AdditionLayer > CreateAdditionLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
FullyConnectedDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_begin(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> begin)
const armnnSerializer::BatchNormalizationDescriptor * descriptor() const
ConcatLayer MergerLayer
Definition: MergerLayer.hpp:9
flatbuffers::Offset< L2NormalizationDescriptor > CreateL2NormalizationDescriptor(flatbuffers::FlatBufferBuilder &_fbb, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NCHW, float eps=1e-12f)
MultiplicationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
SliceLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const char * EnumNameNormalizationAlgorithmMethod(NormalizationAlgorithmMethod e)
const armnnSerializer::ResizeDescriptor * descriptor() const
void add_biases(flatbuffers::Offset< armnnSerializer::ConstTensor > biases)
flatbuffers::FlatBufferBuilder & fbb_
flatbuffers::Offset< MinimumLayer > CreateMinimumLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
const char *const * EnumNamesDataType()
void add_clippingThresCell(float clippingThresCell)
void add_cellToOutputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > cellToOutputWeights)
flatbuffers::Offset< ByteData > CreateByteData(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< int8_t >> data=0)
flatbuffers::Offset< RsqrtLayer > Finish()
const armnnSerializer::ActivationDescriptor * descriptor() const
VT_ACTIVATIONFUNCTION
const armnnSerializer::ConstTensor * inputToInputWeights() const
const armnnSerializer::ConstantLayer * layer_as_ConstantLayer() const
flatbuffers::Offset< DepthToSpaceDescriptor > CreateDepthToSpaceDescriptor(flatbuffers::FlatBufferBuilder &_fbb, uint32_t blockSize=0, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC)
void add_padList(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> padList)
VT_DETECTIONSPERCLASS
DetectionPostProcessDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::DepthToSpaceDescriptor * descriptor() const
const armnnSerializer::ConstTensor * projectionWeights() const
FillDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< LstmInputParams > CreateLstmInputParams(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::ConstTensor > inputToForgetWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputToCellWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputToOutputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToForgetWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToCellWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToOutputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > forgetGateBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > cellBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > outputGateBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputToInputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToInputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > cellToInputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputGateBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > projectionWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > projectionBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > cellToForgetWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > cellToOutputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputLayerNormWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > forgetLayerNormWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > cellLayerNormWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > outputLayerNormWeights=0)
const LogicalBinaryOperation(& EnumValuesLogicalBinaryOperation())[2]
const flatbuffers::Vector< int32_t > * stride() const
flatbuffers::uoffset_t start_
const ResizeMethod(& EnumValuesResizeMethod())[2]
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
PermuteDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_variance(flatbuffers::Offset< armnnSerializer::ConstTensor > variance)
flatbuffers::Offset< LayerBase > CreateLayerBase(flatbuffers::FlatBufferBuilder &_fbb, uint32_t index=0, flatbuffers::Offset< flatbuffers::String > layerName=0, armnnSerializer::LayerType layerType=armnnSerializer::LayerType_Addition, flatbuffers::Offset< flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::InputSlot >>> inputSlots=0, flatbuffers::Offset< flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::OutputSlot >>> outputSlots=0)
void add_descriptor(flatbuffers::Offset< armnnSerializer::L2NormalizationDescriptor > descriptor)
const char *const * EnumNamesConstTensorData()
void add_argMinMaxFunction(armnnSerializer::ArgMinMaxFunction argMinMaxFunction)
flatbuffers::Offset< QuantizeLayer > Finish()
const ActivationFunction(& EnumValuesActivationFunction())[12]
const armnnSerializer::QuantizedLstmInputParams * inputParams() const
flatbuffers::Offset< QLstmInputParams > Finish()
flatbuffers::Offset< LogSoftmaxDescriptor > Finish()
const char *const * EnumNamesNormalizationAlgorithmMethod()
MergeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::InstanceNormalizationLayer * layer_as_InstanceNormalizationLayer() const
void add_outputLayerNormWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > outputLayerNormWeights)
const armnnSerializer::QuantizedLstmLayer * layer_as_QuantizedLstmLayer() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< QuantizedLstmInputParams > CreateQuantizedLstmInputParams(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::ConstTensor > inputToInputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputToForgetWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputToCellWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputToOutputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToInputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToForgetWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToCellWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToOutputWeights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > inputGateBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > forgetGateBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > cellBias=0, flatbuffers::Offset< armnnSerializer::ConstTensor > outputGateBias=0)
flatbuffers::Offset< ReduceDescriptor > CreateReduceDescriptor(flatbuffers::FlatBufferBuilder &_fbb, bool keepDims=false, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> axis=0, armnnSerializer::ReduceOperation reduceOperation=armnnSerializer::ReduceOperation_Sum)
flatbuffers::Offset< StackDescriptor > CreateStackDescriptor(flatbuffers::FlatBufferBuilder &_fbb, uint32_t axis=0, uint32_t numInputs=0, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> inputShape=0)
flatbuffers::Offset< BatchToSpaceNdDescriptor > CreateBatchToSpaceNdDescriptor(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> blockShape=0, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> crops=0, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC)
const flatbuffers::Vector< uint32_t > * dimensions() const
VT_HIDDENSTATEZEROPOINT
const armnnSerializer::ReshapeDescriptor * descriptor() const
flatbuffers::Offset< PadDescriptor > CreatePadDescriptor(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> padList=0, float padValue=0.0f)
void add_cellLayerNormWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > cellLayerNormWeights)
void add_inputShape(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> inputShape)
LogicalBinaryLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
QuantizeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_forgetGateBias(flatbuffers::Offset< armnnSerializer::ConstTensor > forgetGateBias)
LayerBaseBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< ResizeDescriptor > Finish()
VT_CELLLAYERNORMWEIGHTS
DepthwiseConvolution2dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_cellToOutputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > cellToOutputWeights)
void add_inputToInputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputToInputWeights)
flatbuffers::Offset< SplitterLayer > CreateSplitterLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::ViewsDescriptor > descriptor=0)
flatbuffers::FlatBufferBuilder & fbb_
flatbuffers::FlatBufferBuilder & fbb_
void add_viewOrigins(flatbuffers::Offset< flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::UintVector >>> viewOrigins)
void add_gamma(flatbuffers::Offset< armnnSerializer::ConstTensor > gamma)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_projectionBias(flatbuffers::Offset< armnnSerializer::ConstTensor > projectionBias)
OriginsDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
SerializedGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< OutputLayer > CreateOutputLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::BindableLayerBase > base=0)
void add_descriptor(flatbuffers::Offset< armnnSerializer::InstanceNormalizationDescriptor > descriptor)
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
flatbuffers::Offset< BatchToSpaceNdLayer > Finish()
flatbuffers::Offset< SoftmaxLayer > CreateSoftmaxLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::SoftmaxDescriptor > descriptor=0)
void add_descriptor(flatbuffers::Offset< armnnSerializer::LogSoftmaxDescriptor > descriptor)
flatbuffers::Offset< FillDescriptor > CreateFillDescriptor(flatbuffers::FlatBufferBuilder &_fbb, float value=0.0f)
flatbuffers::Offset< ConstTensor > Finish()
flatbuffers::FlatBufferBuilder & fbb_
armnnSerializer::ResizeMethod method() const
const flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::UintVector > > * viewOrigins() const
FeatureCompatibilityVersionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_descriptor(flatbuffers::Offset< armnnSerializer::TransposeConvolution2dDescriptor > descriptor)
flatbuffers::Offset< StridedSliceLayer > CreateStridedSliceLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::StridedSliceDescriptor > descriptor=0)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< LogSoftmaxDescriptor > CreateLogSoftmaxDescriptor(flatbuffers::FlatBufferBuilder &_fbb, float beta=1.0f, int32_t axis=-1)
flatbuffers::Offset< SoftmaxDescriptor > Finish()
flatbuffers::FlatBufferBuilder & fbb_
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::FlatBufferBuilder & fbb_
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const armnnSerializer::PadLayer * layer_as_PadLayer() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< SliceDescriptor > CreateSliceDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< uint32_t > *begin=nullptr, const std::vector< uint32_t > *size=nullptr)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
OutputSlotBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_descriptor(flatbuffers::Offset< armnnSerializer::FillDescriptor > descriptor)
const char *const * EnumNamesNormalizationAlgorithmChannel()
DepthToSpaceLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const ComparisonOperation(& EnumValuesComparisonOperation())[6]
flatbuffers::Offset< RsqrtLayer > CreateRsqrtLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
LstmInputParamsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_data(flatbuffers::Offset< flatbuffers::Vector< int8_t >> data)
const flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::UintVector > > * viewSizes() const
const armnnSerializer::DepthwiseConvolution2dLayer * layer_as_DepthwiseConvolution2dLayer() const
flatbuffers::Offset< FullyConnectedLayer > Finish()
void add_descriptor(flatbuffers::Offset< armnnSerializer::ComparisonDescriptor > descriptor)
flatbuffers::Offset< MeanLayer > CreateMeanLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::MeanDescriptor > descriptor=0)
flatbuffers::Offset< L2NormalizationLayer > Finish()
StridedSliceDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
DepthToSpaceDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
VT_FORGETINTERMEDIATESCALE
const flatbuffers::Vector< uint32_t > * inputShape() const
flatbuffers::Offset< DetectionPostProcessLayer > Finish()
void add_blockShape(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> blockShape)
const armnnSerializer::L2NormalizationDescriptor * descriptor() const
flatbuffers::Offset< ActivationLayer > CreateActivationLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::ActivationDescriptor > descriptor=0)
flatbuffers::Offset< SpaceToDepthLayer > CreateSpaceToDepthLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::SpaceToDepthDescriptor > descriptor=0)
flatbuffers::Offset< SliceDescriptor > CreateSliceDescriptor(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> begin=0, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> size=0)
const armnnSerializer::OriginsDescriptor * origins() const
VT_CLIPPINGTHRESCELL
TransposeConvolution2dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
LstmDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_inputGateBias(flatbuffers::Offset< armnnSerializer::ConstTensor > inputGateBias)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_inputLayerNormWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputLayerNormWeights)
flatbuffers::Offset< BatchNormalizationLayer > CreateBatchNormalizationLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::BatchNormalizationDescriptor > descriptor=0, flatbuffers::Offset< armnnSerializer::ConstTensor > mean=0, flatbuffers::Offset< armnnSerializer::ConstTensor > variance=0, flatbuffers::Offset< armnnSerializer::ConstTensor > beta=0, flatbuffers::Offset< armnnSerializer::ConstTensor > gamma=0)
void add_inputToOutputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputToOutputWeights)
DepthwiseConvolution2dDescriptorBuilder Builder
flatbuffers::Offset< BatchNormalizationDescriptor > CreateBatchNormalizationDescriptor(flatbuffers::FlatBufferBuilder &_fbb, float eps=0.0f, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC)
const flatbuffers::Vector< int32_t > * outputIds() const
flatbuffers::Offset< Pooling2dLayer > Finish()
flatbuffers::Offset< QuantizedLstmInputParams > Finish()
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< GatherDescriptor > CreateGatherDescriptor(flatbuffers::FlatBufferBuilder &_fbb, int32_t axis=0)
const armnnSerializer::FullyConnectedLayer * layer_as_FullyConnectedLayer() const
flatbuffers::Offset< FillLayer > Finish()
flatbuffers::Offset< ActivationDescriptor > CreateActivationDescriptor(flatbuffers::FlatBufferBuilder &_fbb, armnnSerializer::ActivationFunction activationFunction=armnnSerializer::ActivationFunction_Sigmoid, float a=0.0f, float b=0.0f)
void add_descriptor(flatbuffers::Offset< armnnSerializer::ViewsDescriptor > descriptor)
const armnnSerializer::StridedSliceDescriptor * descriptor() const
flatbuffers::Offset< NormalizationLayer > CreateNormalizationLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::NormalizationDescriptor > descriptor=0)
flatbuffers::Offset< OriginsDescriptor > Finish()
L2NormalizationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
ReshapeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
FeatureCompatibilityVersionsBuilder Builder
flatbuffers::Offset< AnyLayer > Finish()
const char *const * EnumNamesComparisonOperation()
flatbuffers::FlatBufferBuilder & fbb_
flatbuffers::Offset< ViewsDescriptor > CreateViewsDescriptor(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::OriginsDescriptor > origins=0, flatbuffers::Offset< flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::UintVector >>> viewSizes=0)
flatbuffers::Offset< PermuteDescriptor > CreatePermuteDescriptor(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> dimMappings=0)
void add_recurrentToInputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToInputWeights)
const armnnSerializer::TensorInfo * tensorInfo() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< SubtractionLayer > Finish()
flatbuffers::Offset< MeanDescriptor > CreateMeanDescriptor(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> axis=0, bool keepDims=false)
void add_cellToInputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > cellToInputWeights)
flatbuffers::FlatBufferBuilder & fbb_
flatbuffers::FlatBufferBuilder & fbb_
flatbuffers::Offset< StandInLayer > CreateStandInLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::StandInDescriptor > descriptor=0)
const armnnSerializer::Pooling2dDescriptor * descriptor() const
flatbuffers::FlatBufferBuilder & fbb_
const char * EnumNameResizeMethod(ResizeMethod e)
const armnnSerializer::ConstTensor * forgetGateBias() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_scaleX(float scaleX)
DetectionPostProcessDescriptorBuilder Builder
flatbuffers::FlatBufferBuilder & fbb_
flatbuffers::Offset< ReduceDescriptor > Finish()
const armnnSerializer::Convolution2dDescriptor * descriptor() const
void add_descriptor(flatbuffers::Offset< armnnSerializer::ResizeDescriptor > descriptor)
void add_outputIds(flatbuffers::Offset< flatbuffers::Vector< int32_t >> outputIds)
void add_operation(armnnSerializer::LogicalBinaryOperation operation)
void add_mean(flatbuffers::Offset< armnnSerializer::ConstTensor > mean)
flatbuffers::Offset< UintVector > Finish()
const armnnSerializer::IntData * data_as_IntData() const
flatbuffers::Offset< StandInLayer > Finish()
flatbuffers::FlatBufferBuilder & fbb_
const armnnSerializer::LogicalBinaryLayer * layer_as_LogicalBinaryLayer() const
GreaterLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::ConstTensor * cellToOutputWeights() const
flatbuffers::Offset< StridedSliceDescriptor > Finish()
const armnnSerializer::ConstTensor * inputToForgetWeights() const
flatbuffers::Offset< DetectionPostProcessDescriptor > Finish()
flatbuffers::Offset< SwitchLayer > CreateSwitchLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
const armnnSerializer::InputLayer * layer_as_InputLayer() const
flatbuffers::FlatBufferBuilder & fbb_
VT_RECURRENTTOCELLWEIGHTS
const NormalizationAlgorithmMethod(& EnumValuesNormalizationAlgorithmMethod())[2]
flatbuffers::Offset< UintVector > CreateUintVectorDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< uint32_t > *data=nullptr)
flatbuffers::Offset< ResizeBilinearDescriptor > CreateResizeBilinearDescriptor(flatbuffers::FlatBufferBuilder &_fbb, uint32_t targetWidth=0, uint32_t targetHeight=0, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC, bool alignCorners=false, bool halfPixelCenters=false)
const ConstTensorData(& EnumValuesConstTensorData())[5]
const armnnSerializer::QLstmInputParams * inputParams() const
void add_layerName(flatbuffers::Offset< flatbuffers::String > layerName)
const armnnSerializer::GatherLayer * layer_as_GatherLayer() const
L2NormalizationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< ElementwiseUnaryDescriptor > CreateElementwiseUnaryDescriptor(flatbuffers::FlatBufferBuilder &_fbb, armnnSerializer::UnaryOperation operation=armnnSerializer::UnaryOperation_Abs)
void add_size(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> size)
void add_forgetLayerNormWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > forgetLayerNormWeights)
flatbuffers::Offset< ReshapeDescriptor > CreateReshapeDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< uint32_t > *targetShape=nullptr)
const armnnSerializer::SplitterLayer * layer_as_SplitterLayer() const
void add_nmsScoreThreshold(float nmsScoreThreshold)
flatbuffers::Offset< BatchNormalizationLayer > Finish()
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
ActivationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::FlatBufferBuilder & fbb_
const char * EnumNameArgMinMaxFunction(ArgMinMaxFunction e)
void add_inputToForgetWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputToForgetWeights)
flatbuffers::FlatBufferBuilder & fbb_
void add_inputToInputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputToInputWeights)
flatbuffers::Offset< Convolution2dDescriptor > Finish()
const armnnSerializer::QLstmLayer * layer_as_QLstmLayer() const
void add_useRegularNms(bool useRegularNms)
const armnnSerializer::SpaceToBatchNdLayer * layer_as_SpaceToBatchNdLayer() const
void add_descriptor(flatbuffers::Offset< armnnSerializer::QLstmDescriptor > descriptor)
flatbuffers::Offset< TransposeConvolution2dDescriptor > Finish()
const PoolingAlgorithm(& EnumValuesPoolingAlgorithm())[3]
flatbuffers::Offset< PadLayer > CreatePadLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::PadDescriptor > descriptor=0)
flatbuffers::Offset< FloorLayer > CreateFloorLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
void add_descriptor(flatbuffers::Offset< armnnSerializer::DepthwiseConvolution2dDescriptor > descriptor)
flatbuffers::Offset< DivisionLayer > Finish()
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_projectionEnabled(bool projectionEnabled)
DetectionPostProcessLayerBuilder Builder
flatbuffers::Offset< NormalizationDescriptor > CreateNormalizationDescriptor(flatbuffers::FlatBufferBuilder &_fbb, armnnSerializer::NormalizationAlgorithmChannel normChannelType=armnnSerializer::NormalizationAlgorithmChannel_Across, armnnSerializer::NormalizationAlgorithmMethod normMethodType=armnnSerializer::NormalizationAlgorithmMethod_LocalBrightness, uint32_t normSize=0, float alpha=0.0f, float beta=0.0f, float k=0.0f, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NCHW)
RankLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::PermuteDescriptor * descriptor() const
const armnnSerializer::ConstTensor * recurrentToCellWeights() const
flatbuffers::Offset< InputSlot > Finish()
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
FillLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< Pooling2dDescriptor > CreatePooling2dDescriptor(flatbuffers::FlatBufferBuilder &_fbb, armnnSerializer::PoolingAlgorithm poolType=armnnSerializer::PoolingAlgorithm_Max, uint32_t padLeft=0, uint32_t padRight=0, uint32_t padTop=0, uint32_t padBottom=0, uint32_t poolWidth=0, uint32_t poolHeight=0, uint32_t strideX=0, uint32_t strideY=0, armnnSerializer::OutputShapeRounding outputShapeRounding=armnnSerializer::OutputShapeRounding_Floor, armnnSerializer::PaddingMethod paddingMethod=armnnSerializer::PaddingMethod_IgnoreValue, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC)
void add_descriptor(flatbuffers::Offset< armnnSerializer::DepthToSpaceDescriptor > descriptor)
SoftmaxDescriptor LogSoftmaxDescriptor
A LogSoftmaxDescriptor for the LogSoftmaxLayer.
flatbuffers::Offset< EqualLayer > CreateEqualLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
VT_CELLINTERMEDIATESCALE
LogicalBinaryDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_quantizationDim(uint32_t quantizationDim)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_inputToCellWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputToCellWeights)
const armnnSerializer::ConstTensor * recurrentToInputWeights() const
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
flatbuffers::Offset< ConstantLayer > CreateConstantLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::ConstTensor > input=0)
flatbuffers::Offset< StackDescriptor > Finish()
flatbuffers::Offset< FullyConnectedDescriptor > Finish()
const armnnSerializer::LstmLayer * layer_as_LstmLayer() const
const armnnSerializer::MeanLayer * layer_as_MeanLayer() const
void add_weights(flatbuffers::Offset< armnnSerializer::ConstTensor > weights)
InstanceNormalizationLayerBuilder Builder
flatbuffers::Offset< UintVector > CreateUintVector(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> data=0)
flatbuffers::Offset< StackLayer > CreateStackLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::StackDescriptor > descriptor=0)
TransposeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_descriptor(flatbuffers::Offset< armnnSerializer::DetectionPostProcessDescriptor > descriptor)
ReshapeDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
ResizeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::FlatBufferBuilder & fbb_
const armnnSerializer::FillLayer * layer_as_FillLayer() const
flatbuffers::Offset< ReshapeLayer > Finish()
UintVectorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
LongDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::FlatBufferBuilder & fbb_
void add_descriptor(flatbuffers::Offset< armnnSerializer::OriginsDescriptor > descriptor)
flatbuffers::Offset< ViewsDescriptor > Finish()
ArgMinMaxLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_recurrentToForgetWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToForgetWeights)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
TransposeDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::FlatBufferBuilder & fbb_
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
StandInDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::PreluLayer * layer_as_PreluLayer() const
ByteDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< StridedSliceLayer > Finish()
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_layerNormEnabled(bool layerNormEnabled)
flatbuffers::FlatBufferBuilder & fbb_
const armnnSerializer::MeanDescriptor * descriptor() const
flatbuffers::Offset< Convolution2dLayer > CreateConvolution2dLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::Convolution2dDescriptor > descriptor=0, flatbuffers::Offset< armnnSerializer::ConstTensor > weights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > biases=0)
const armnnSerializer::SpaceToDepthLayer * layer_as_SpaceToDepthLayer() const
flatbuffers::Offset< DepthwiseConvolution2dLayer > Finish()
void add_descriptor(flatbuffers::Offset< armnnSerializer::ArgMinMaxDescriptor > descriptor)
const armnnSerializer::SoftmaxLayer * layer_as_SoftmaxLayer() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const armnnSerializer::OutputLayer * layer_as_OutputLayer() const
const armnnSerializer::LstmInputParams * inputParams() const
flatbuffers::Offset< LogicalBinaryLayer > Finish()
flatbuffers::Offset< FloorLayer > Finish()
flatbuffers::Offset< Pooling2dLayer > CreatePooling2dLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::Pooling2dDescriptor > descriptor=0)
const armnnSerializer::ConstTensor * forgetLayerNormWeights() const
void add_scaleH(float scaleH)
const armnnSerializer::QuantizeLayer * layer_as_QuantizeLayer() const
VT_OUTPUTSHAPEROUNDING
flatbuffers::Offset< FeatureCompatibilityVersions > Finish()
flatbuffers::Offset< MergerLayer > Finish()
flatbuffers::Offset< SpaceToBatchNdLayer > CreateSpaceToBatchNdLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::SpaceToBatchNdDescriptor > descriptor=0)
void add_outputGateBias(flatbuffers::Offset< armnnSerializer::ConstTensor > outputGateBias)
void add_descriptor(flatbuffers::Offset< armnnSerializer::Convolution2dDescriptor > descriptor)
ConstTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const flatbuffers::Vector< uint32_t > * crops() const
const armnnSerializer::DetectionPostProcessLayer * layer_as_DetectionPostProcessLayer() const
const armnnSerializer::FullyConnectedDescriptor * descriptor() const
void add_recurrentToForgetWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToForgetWeights)
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
void add_detectionsPerClass(uint32_t detectionsPerClass)
flatbuffers::FlatBufferBuilder & fbb_
const armnnSerializer::ConstTensor * cellBias() const
Convolution2dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_operation(armnnSerializer::ComparisonOperation operation)
bool VerifyConstTensorDataVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector< flatbuffers::Offset< void >> *values, const flatbuffers::Vector< uint8_t > *types)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
armnnSerializer::ArgMinMaxFunction argMinMaxFunction() const
InstanceNormalizationDescriptorBuilder Builder
const armnnSerializer::StackDescriptor * descriptor() const
flatbuffers::Offset< BatchToSpaceNdDescriptor > CreateBatchToSpaceNdDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< uint32_t > *blockShape=nullptr, const std::vector< uint32_t > *crops=nullptr, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC)
const armnnSerializer::ConstTensor * anchors() const
void add_descriptor(flatbuffers::Offset< armnnSerializer::LstmDescriptor > descriptor)
flatbuffers::Offset< ComparisonDescriptor > CreateComparisonDescriptor(flatbuffers::FlatBufferBuilder &_fbb, armnnSerializer::ComparisonOperation operation=armnnSerializer::ComparisonOperation_Equal)
flatbuffers::Offset< BatchToSpaceNdDescriptor > Finish()
void add_forgetGateBias(flatbuffers::Offset< armnnSerializer::ConstTensor > forgetGateBias)
const armnnSerializer::SpaceToDepthDescriptor * descriptor() const
flatbuffers::Offset< BindableLayerBase > Finish()
InstanceNormalizationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< MaximumLayer > CreateMaximumLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
flatbuffers::FlatBufferBuilder & fbb_
const char * EnumNameComparisonOperation(ComparisonOperation e)
const armnnSerializer::ConstTensor * recurrentToOutputWeights() const
void add_nmsIouThreshold(float nmsIouThreshold)
void add_recurrentToInputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToInputWeights)
flatbuffers::Offset< LstmLayer > Finish()
const char *const * EnumNamesArgMinMaxFunction()
const Layer(& EnumValuesLayer())[62]
const armnnSerializer::StandInDescriptor * descriptor() const
AbsLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
SplitterLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_base(flatbuffers::Offset< armnnSerializer::BindableLayerBase > base)
const flatbuffers::Vector< float > * quantizationScales() const
flatbuffers::Offset< ByteData > CreateByteDataDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< int8_t > *data=nullptr)
const armnnSerializer::EqualLayer * layer_as_EqualLayer() const
DepthwiseConvolution2dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< InstanceNormalizationDescriptor > CreateInstanceNormalizationDescriptor(flatbuffers::FlatBufferBuilder &_fbb, float gamma=0.0f, float beta=0.0f, float eps=0.0f, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC)
void add_dimensions(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> dimensions)
ActivationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const char *const * EnumNamesPoolingAlgorithm()
AnyLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::OriginsDescriptor * descriptor() const
const armnnSerializer::ShortData * data_as_ShortData() const
BindableLayerBaseBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::AbsLayer * layer_as_AbsLayer() const
flatbuffers::Offset< ArgMinMaxLayer > Finish()
flatbuffers::Offset< MeanDescriptor > Finish()
const armnnSerializer::TransposeConvolution2dDescriptor * descriptor() const
const armnnSerializer::ConstTensor * inputToCellWeights() const
const flatbuffers::Vector< int32_t > * data() const
ReduceLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::MergeLayer * layer_as_MergeLayer() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
VT_INPUTINTERMEDIATESCALE
const armnnSerializer::ViewsDescriptor * descriptor() const
void add_layer_type(armnnSerializer::Layer layer_type)
StackLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
LogSoftmaxLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::FlatBufferBuilder & fbb_
flatbuffers::Offset< IntData > CreateIntData(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< int32_t >> data=0)
void add_inputToInputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputToInputWeights)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const armnnSerializer::SliceDescriptor * descriptor() const
void add_targetShape(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> targetShape)
flatbuffers::Offset< ArgMinMaxDescriptor > Finish()
void add_hiddenStateScale(float hiddenStateScale)
void add_layer(flatbuffers::Offset< void > layer)
StandInLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_outputGateBias(flatbuffers::Offset< armnnSerializer::ConstTensor > outputGateBias)
flatbuffers::Offset< InputLayer > Finish()
flatbuffers::Offset< ConcatLayer > Finish()
flatbuffers::Offset< ResizeLayer > CreateResizeLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::ResizeDescriptor > descriptor=0)
armnnSerializer::PoolingAlgorithm poolType() const
flatbuffers::FlatBufferBuilder & fbb_
void add_paddingMethod(armnnSerializer::PaddingMethod paddingMethod)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< FullyConnectedLayer > CreateFullyConnectedLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::FullyConnectedDescriptor > descriptor=0, flatbuffers::Offset< armnnSerializer::ConstTensor > weights=0, flatbuffers::Offset< armnnSerializer::ConstTensor > biases=0)
flatbuffers::Offset< Convolution2dLayer > Finish()
const NormalizationAlgorithmChannel(& EnumValuesNormalizationAlgorithmChannel())[2]
const char * EnumNameLogicalBinaryOperation(LogicalBinaryOperation e)
GatherLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
ComparisonLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_dataLayout(armnnSerializer::DataLayout dataLayout)
flatbuffers::Offset< DequantizeLayer > CreateDequantizeLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
BatchToSpaceNdDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_projectionWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > projectionWeights)
flatbuffers::FlatBufferBuilder & fbb_
void add_inputToCellWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputToCellWeights)
flatbuffers::Offset< ResizeBilinearLayer > CreateResizeBilinearLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::ResizeBilinearDescriptor > descriptor=0)
flatbuffers::Offset< InstanceNormalizationDescriptor > Finish()
flatbuffers::Offset< PadLayer > Finish()
void add_layerType(armnnSerializer::LayerType layerType)
void add_tensorInfo(flatbuffers::Offset< armnnSerializer::TensorInfo > tensorInfo)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_weights(flatbuffers::Offset< armnnSerializer::ConstTensor > weights)
void FinishSizePrefixedSerializedGraphBuffer(flatbuffers::FlatBufferBuilder &fbb, flatbuffers::Offset< armnnSerializer::SerializedGraph > root)
flatbuffers::Offset< ViewsDescriptor > CreateViewsDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::OriginsDescriptor > origins=0, const std::vector< flatbuffers::Offset< armnnSerializer::UintVector >> *viewSizes=nullptr)
void add_cellToForgetWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > cellToForgetWeights)
flatbuffers::Offset< PadDescriptor > Finish()
flatbuffers::Offset< OutputSlot > Finish()
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< OriginsDescriptor > CreateOriginsDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, uint32_t concatAxis=0, uint32_t numViews=0, uint32_t numDimensions=0, const std::vector< flatbuffers::Offset< armnnSerializer::UintVector >> *viewOrigins=nullptr)
const char * EnumNameDataType(DataType e)
DetectionPostProcessDescriptor Table
const char * EnumNamePaddingMethod(PaddingMethod e)
void add_featureVersions(flatbuffers::Offset< armnnSerializer::FeatureCompatibilityVersions > featureVersions)
flatbuffers::Offset< DetectionPostProcessLayer > CreateDetectionPostProcessLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::DetectionPostProcessDescriptor > descriptor=0, flatbuffers::Offset< armnnSerializer::ConstTensor > anchors=0)
const flatbuffers::Vector< int64_t > * data() const
void add_data(flatbuffers::Offset< flatbuffers::Vector< int16_t >> data)
flatbuffers::FlatBufferBuilder & fbb_
PadDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< StridedSliceDescriptor > CreateStridedSliceDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< int32_t > *begin=nullptr, const std::vector< int32_t > *end=nullptr, const std::vector< int32_t > *stride=nullptr, int32_t beginMask=0, int32_t endMask=0, int32_t shrinkAxisMask=0, int32_t ellipsisMask=0, int32_t newAxisMask=0, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC)
flatbuffers::Offset< Pooling2dDescriptor > Finish()
SoftmaxDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_descriptor(flatbuffers::Offset< armnnSerializer::MeanDescriptor > descriptor)
void add_inputGateBias(flatbuffers::Offset< armnnSerializer::ConstTensor > inputGateBias)
void add_reduceOperation(armnnSerializer::ReduceOperation reduceOperation)
flatbuffers::Offset< SpaceToBatchNdDescriptor > Finish()
void add_cellBias(flatbuffers::Offset< armnnSerializer::ConstTensor > cellBias)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< FeatureCompatibilityVersions > CreateFeatureCompatibilityVersions(flatbuffers::FlatBufferBuilder &_fbb, uint32_t bindingIdsScheme=0)
void add_inputGateBias(flatbuffers::Offset< armnnSerializer::ConstTensor > inputGateBias)
flatbuffers::Offset< ComparisonDescriptor > Finish()
flatbuffers::Offset< QuantizedLstmLayer > Finish()
void add_data(flatbuffers::Offset< void > data)
const char * EnumNameOutputShapeRounding(OutputShapeRounding e)
const armnnSerializer::ConstTensor * beta() const
ResizeDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::FlatBufferBuilder & fbb_
const char * EnumNameNormalizationAlgorithmChannel(NormalizationAlgorithmChannel e)
flatbuffers::Offset< BatchToSpaceNdLayer > CreateBatchToSpaceNdLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::BatchToSpaceNdDescriptor > descriptor=0)
void add_operation(armnnSerializer::UnaryOperation operation)
bool VerifySerializedGraphBuffer(flatbuffers::Verifier &verifier)
VT_PROJECTIONWEIGHTS
flatbuffers::Offset< SliceDescriptor > Finish()
const flatbuffers::Vector< uint32_t > * begin() const
bool SerializedGraphBufferHasIdentifier(const void *buf)
const armnnSerializer::ResizeBilinearDescriptor * descriptor() const
const armnnSerializer::LongData * data_as_LongData() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const armnnSerializer::SubtractionLayer * layer_as_SubtractionLayer() const
flatbuffers::uoffset_t start_
const armnnSerializer::StackLayer * layer_as_StackLayer() const
flatbuffers::Offset< LogSoftmaxLayer > CreateLogSoftmaxLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::LogSoftmaxDescriptor > descriptor=0)
flatbuffers::FlatBufferBuilder & fbb_
void add_recurrentToCellWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToCellWeights)
void add_beta(flatbuffers::Offset< armnnSerializer::ConstTensor > beta)
const armnnSerializer::LogSoftmaxDescriptor * descriptor() const
flatbuffers::Offset< PadDescriptor > CreatePadDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< uint32_t > *padList=nullptr, float padValue=0.0f)
armnnSerializer::ConstTensorData data_type() const
void add_descriptor(flatbuffers::Offset< armnnSerializer::PermuteDescriptor > descriptor)
flatbuffers::Offset< StridedSliceDescriptor > CreateStridedSliceDescriptor(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< int32_t >> begin=0, flatbuffers::Offset< flatbuffers::Vector< int32_t >> end=0, flatbuffers::Offset< flatbuffers::Vector< int32_t >> stride=0, int32_t beginMask=0, int32_t endMask=0, int32_t shrinkAxisMask=0, int32_t ellipsisMask=0, int32_t newAxisMask=0, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC)
flatbuffers::Offset< OriginsDescriptor > CreateOriginsDescriptor(flatbuffers::FlatBufferBuilder &_fbb, uint32_t concatAxis=0, uint32_t numViews=0, uint32_t numDimensions=0, flatbuffers::Offset< flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::UintVector >>> viewOrigins=0)
flatbuffers::Offset< QLstmLayer > CreateQLstmLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::QLstmDescriptor > descriptor=0, flatbuffers::Offset< armnnSerializer::QLstmInputParams > inputParams=0)
void add_activationFunc(uint32_t activationFunc)
flatbuffers::Offset< RankLayer > Finish()
flatbuffers::Offset< ReduceDescriptor > CreateReduceDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, bool keepDims=false, const std::vector< uint32_t > *axis=nullptr, armnnSerializer::ReduceOperation reduceOperation=armnnSerializer::ReduceOperation_Sum)
flatbuffers::FlatBufferBuilder & fbb_
const armnnSerializer::ConstTensor * outputGateBias() const
flatbuffers::Offset< LstmDescriptor > CreateLstmDescriptor(flatbuffers::FlatBufferBuilder &_fbb, uint32_t activationFunc=0, float clippingThresCell=0.0f, float clippingThresProj=0.0f, bool cifgEnabled=true, bool peepholeEnabled=false, bool projectionEnabled=false, bool layerNormEnabled=false)
void add_inputToForgetWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputToForgetWeights)
void add_cellToForgetWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > cellToForgetWeights)
const flatbuffers::Vector< uint32_t > * data() const
flatbuffers::Offset< L2NormalizationDescriptor > Finish()
const char * SerializedGraphExtension()
const flatbuffers::Vector< uint32_t > * padList() const
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
flatbuffers::Offset< ElementwiseUnaryLayer > CreateElementwiseUnaryLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::ElementwiseUnaryDescriptor > descriptor=0)
FLATBUFFERS_STRUCT_END(Connection, 8)
flatbuffers::Offset< PermuteLayer > CreatePermuteLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::PermuteDescriptor > descriptor=0)
void add_outputShapeRounding(armnnSerializer::OutputShapeRounding outputShapeRounding)
const armnnSerializer::L2NormalizationLayer * layer_as_L2NormalizationLayer() const
flatbuffers::Offset< GatherDescriptor > Finish()
FloorLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::FlatBufferBuilder & fbb_
void add_descriptor(flatbuffers::Offset< armnnSerializer::BatchNormalizationDescriptor > descriptor)
void add_inputToOutputWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > inputToOutputWeights)
QLstmInputParamsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_weights(flatbuffers::Offset< armnnSerializer::ConstTensor > weights)
const armnnSerializer::ArgMinMaxDescriptor * descriptor() const
ShortDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const char *const * EnumNamesUnaryOperation()
void add_inputParams(flatbuffers::Offset< armnnSerializer::LstmInputParams > inputParams)
flatbuffers::Offset< SpaceToBatchNdDescriptor > CreateSpaceToBatchNdDescriptor(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> blockShape=0, flatbuffers::Offset< flatbuffers::Vector< uint32_t >> padList=0, armnnSerializer::DataLayout dataLayout=armnnSerializer::DataLayout_NHWC)
const char * EnumNameLayerType(LayerType e)
InstanceNormalizationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
const armnnSerializer::SerializedGraph * GetSizePrefixedSerializedGraph(const void *buf)
flatbuffers::Offset< PermuteDescriptor > CreatePermuteDescriptorDirect(flatbuffers::FlatBufferBuilder &_fbb, const std::vector< uint32_t > *dimMappings=nullptr)
VT_INPUTLAYERNORMWEIGHTS
void add_origins(flatbuffers::Offset< armnnSerializer::OriginsDescriptor > origins)
const armnnSerializer::TransposeLayer * layer_as_TransposeLayer() const
const armnnSerializer::InstanceNormalizationDescriptor * descriptor() const
flatbuffers::FlatBufferBuilder & fbb_
PermuteLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
flatbuffers::Offset< MergeLayer > Finish()
flatbuffers::Offset< SerializedGraph > CreateSerializedGraph(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::AnyLayer >>> layers=0, flatbuffers::Offset< flatbuffers::Vector< int32_t >> inputIds=0, flatbuffers::Offset< flatbuffers::Vector< int32_t >> outputIds=0, flatbuffers::Offset< armnnSerializer::FeatureCompatibilityVersions > featureVersions=0)
void add_recurrentToCellWeights(flatbuffers::Offset< armnnSerializer::ConstTensor > recurrentToCellWeights)
void add_dimensionSpecificity(flatbuffers::Offset< flatbuffers::Vector< uint8_t >> dimensionSpecificity)
flatbuffers::Offset< TransposeDescriptor > Finish()
void add_descriptor(flatbuffers::Offset< armnnSerializer::SpaceToDepthDescriptor > descriptor)
const char *const * EnumNamesPaddingMethod()
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
DetectionPostProcessLayer Table
flatbuffers::Offset< ResizeBilinearLayer > Finish()
void add_descriptor(flatbuffers::Offset< armnnSerializer::OriginsDescriptor > descriptor)
OutputLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
const flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::AnyLayer > > * layers() const
const char * EnumNameDataLayout(DataLayout e)
VT_FORGETLAYERNORMWEIGHTS
SpaceToDepthDescriptor DepthToSpaceDescriptor
A DepthToSpaceDescriptor for the DepthToSpaceLayer.
flatbuffers::Offset< LogicalBinaryDescriptor > CreateLogicalBinaryDescriptor(flatbuffers::FlatBufferBuilder &_fbb, armnnSerializer::LogicalBinaryOperation operation=armnnSerializer::LogicalBinaryOperation_LogicalAnd)
VT_INPUTTOINPUTWEIGHTS
VT_OUTPUTINTERMEDIATESCALE
flatbuffers::Offset< DivisionLayer > CreateDivisionLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0)
armnnSerializer::PaddingMethod paddingMethod() const
MinimumLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
SpaceToDepthLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_layers(flatbuffers::Offset< flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::AnyLayer >>> layers)
const flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::InputSlot > > * inputSlots() const
flatbuffers::Offset< LogicalBinaryLayer > CreateLogicalBinaryLayer(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< armnnSerializer::LayerBase > base=0, flatbuffers::Offset< armnnSerializer::LogicalBinaryDescriptor > descriptor=0)
const armnnSerializer::DetectionPostProcessDescriptor * descriptor() const
const armnnSerializer::ConstTensor * input() const
const armnnSerializer::MinimumLayer * layer_as_MinimumLayer() const
const armnnSerializer::DepthToSpaceLayer * layer_as_DepthToSpaceLayer() const
const armnnSerializer::GatherDescriptor * descriptor() const
const armnnSerializer::Connection * connection() const
flatbuffers::FlatBufferBuilder & fbb_
void add_descriptor(flatbuffers::Offset< armnnSerializer::StandInDescriptor > descriptor)
std::vector< float > anchors({ 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 10.5f, 1.0f, 1.0f, 0.5f, 10.5f, 1.0f, 1.0f, 0.5f, 100.5f, 1.0f, 1.0f })
void add_base(flatbuffers::Offset< armnnSerializer::LayerBase > base)
PadLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
void add_data(flatbuffers::Offset< flatbuffers::Vector< uint32_t >> data)