blob: 76a6460c85922d960d94d7df5a34963b0f778128 [file] [log] [blame]
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001//
Colm Donelan800b2812021-02-12 12:43:35 +00002// Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
Sadik Armagan97bf84f2021-01-13 15:06:38 +00003// SPDX-License-Identifier: MIT
4//
5// automatically generated by the FlatBuffers compiler, do not modify
6
Keith Davis3ae3f972021-05-21 16:33:48 +01007
Sadik Armagan97bf84f2021-01-13 15:06:38 +00008#ifndef FLATBUFFERS_GENERATED_ARMNNSCHEMA_ARMNNSERIALIZER_H_
9#define FLATBUFFERS_GENERATED_ARMNNSCHEMA_ARMNNSERIALIZER_H_
10
11#include "flatbuffers/flatbuffers.h"
12
13namespace armnnSerializer {
14
15struct TensorInfo;
16struct TensorInfoBuilder;
17
18struct Connection;
19
20struct ByteData;
21struct ByteDataBuilder;
22
23struct ShortData;
24struct ShortDataBuilder;
25
26struct IntData;
27struct IntDataBuilder;
28
29struct LongData;
30struct LongDataBuilder;
31
32struct ConstTensor;
33struct ConstTensorBuilder;
34
35struct InputSlot;
36struct InputSlotBuilder;
37
38struct OutputSlot;
39struct OutputSlotBuilder;
40
41struct LayerBase;
42struct LayerBaseBuilder;
43
44struct BindableLayerBase;
45struct BindableLayerBaseBuilder;
46
47struct AbsLayer;
48struct AbsLayerBuilder;
49
50struct ActivationLayer;
51struct ActivationLayerBuilder;
52
53struct ActivationDescriptor;
54struct ActivationDescriptorBuilder;
55
56struct AdditionLayer;
57struct AdditionLayerBuilder;
58
59struct ArgMinMaxLayer;
60struct ArgMinMaxLayerBuilder;
61
62struct ArgMinMaxDescriptor;
63struct ArgMinMaxDescriptorBuilder;
64
mathad01b392e982021-04-07 12:07:30 +010065struct CastLayer;
66struct CastLayerBuilder;
67
Simon Obute51f67772021-09-03 15:50:13 +010068struct ChannelShuffleLayer;
69struct ChannelShuffleLayerBuilder;
70
71struct ChannelShuffleDescriptor;
72struct ChannelShuffleDescriptorBuilder;
73
Sadik Armagan97bf84f2021-01-13 15:06:38 +000074struct ComparisonDescriptor;
75struct ComparisonDescriptorBuilder;
76
77struct ComparisonLayer;
78struct ComparisonLayerBuilder;
79
80struct ConstantLayer;
81struct ConstantLayerBuilder;
82
83struct Convolution2dLayer;
84struct Convolution2dLayerBuilder;
85
86struct Convolution2dDescriptor;
87struct Convolution2dDescriptorBuilder;
88
Matthew Sloyanb63a3112021-09-08 13:05:51 +010089struct Convolution3dLayer;
90struct Convolution3dLayerBuilder;
91
92struct Convolution3dDescriptor;
93struct Convolution3dDescriptorBuilder;
94
Sadik Armagan97bf84f2021-01-13 15:06:38 +000095struct DepthToSpaceLayer;
96struct DepthToSpaceLayerBuilder;
97
98struct DepthToSpaceDescriptor;
99struct DepthToSpaceDescriptorBuilder;
100
101struct DivisionLayer;
102struct DivisionLayerBuilder;
103
104struct ElementwiseUnaryDescriptor;
105struct ElementwiseUnaryDescriptorBuilder;
106
107struct ElementwiseUnaryLayer;
108struct ElementwiseUnaryLayerBuilder;
109
110struct EqualLayer;
111struct EqualLayerBuilder;
112
113struct FillLayer;
114struct FillLayerBuilder;
115
116struct FillDescriptor;
117struct FillDescriptorBuilder;
118
119struct FloorLayer;
120struct FloorLayerBuilder;
121
122struct FullyConnectedLayer;
123struct FullyConnectedLayerBuilder;
124
125struct FullyConnectedDescriptor;
126struct FullyConnectedDescriptorBuilder;
127
128struct GatherLayer;
129struct GatherLayerBuilder;
130
131struct GatherDescriptor;
132struct GatherDescriptorBuilder;
133
134struct GreaterLayer;
135struct GreaterLayerBuilder;
136
137struct InputLayer;
138struct InputLayerBuilder;
139
140struct InstanceNormalizationLayer;
141struct InstanceNormalizationLayerBuilder;
142
143struct InstanceNormalizationDescriptor;
144struct InstanceNormalizationDescriptorBuilder;
145
146struct LogSoftmaxLayer;
147struct LogSoftmaxLayerBuilder;
148
149struct LogSoftmaxDescriptor;
150struct LogSoftmaxDescriptorBuilder;
151
152struct L2NormalizationLayer;
153struct L2NormalizationLayerBuilder;
154
155struct L2NormalizationDescriptor;
156struct L2NormalizationDescriptorBuilder;
157
158struct LogicalBinaryDescriptor;
159struct LogicalBinaryDescriptorBuilder;
160
161struct LogicalBinaryLayer;
162struct LogicalBinaryLayerBuilder;
163
164struct MinimumLayer;
165struct MinimumLayerBuilder;
166
167struct MaximumLayer;
168struct MaximumLayerBuilder;
169
170struct MultiplicationLayer;
171struct MultiplicationLayerBuilder;
172
173struct Pooling2dLayer;
174struct Pooling2dLayerBuilder;
175
Tamas Nyirid998a1c2021-11-05 14:55:33 +0000176struct Pooling3dLayer;
177struct Pooling3dLayerBuilder;
178
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000179struct Pooling2dDescriptor;
180struct Pooling2dDescriptorBuilder;
181
Tamas Nyirid998a1c2021-11-05 14:55:33 +0000182struct Pooling3dDescriptor;
183struct Pooling3dDescriptorBuilder;
184
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000185struct QuantizeLayer;
186struct QuantizeLayerBuilder;
187
188struct SoftmaxLayer;
189struct SoftmaxLayerBuilder;
190
191struct SoftmaxDescriptor;
192struct SoftmaxDescriptorBuilder;
193
194struct DepthwiseConvolution2dLayer;
195struct DepthwiseConvolution2dLayerBuilder;
196
197struct DepthwiseConvolution2dDescriptor;
198struct DepthwiseConvolution2dDescriptorBuilder;
199
200struct OutputLayer;
201struct OutputLayerBuilder;
202
203struct ReshapeLayer;
204struct ReshapeLayerBuilder;
205
206struct ReshapeDescriptor;
207struct ReshapeDescriptorBuilder;
208
209struct PermuteLayer;
210struct PermuteLayerBuilder;
211
212struct PermuteDescriptor;
213struct PermuteDescriptorBuilder;
214
Keith Davis3ae3f972021-05-21 16:33:48 +0100215struct ShapeLayer;
216struct ShapeLayerBuilder;
217
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000218struct SpaceToBatchNdLayer;
219struct SpaceToBatchNdLayerBuilder;
220
221struct SpaceToBatchNdDescriptor;
222struct SpaceToBatchNdDescriptorBuilder;
223
224struct SpaceToDepthLayer;
225struct SpaceToDepthLayerBuilder;
226
227struct SpaceToDepthDescriptor;
228struct SpaceToDepthDescriptorBuilder;
229
230struct SubtractionLayer;
231struct SubtractionLayerBuilder;
232
233struct BatchToSpaceNdLayer;
234struct BatchToSpaceNdLayerBuilder;
235
236struct BatchToSpaceNdDescriptor;
237struct BatchToSpaceNdDescriptorBuilder;
238
239struct NormalizationLayer;
240struct NormalizationLayerBuilder;
241
242struct NormalizationDescriptor;
243struct NormalizationDescriptorBuilder;
244
245struct MeanLayer;
246struct MeanLayerBuilder;
247
248struct MeanDescriptor;
249struct MeanDescriptorBuilder;
250
251struct PadLayer;
252struct PadLayerBuilder;
253
254struct PadDescriptor;
255struct PadDescriptorBuilder;
256
257struct RsqrtLayer;
258struct RsqrtLayerBuilder;
259
260struct BatchNormalizationLayer;
261struct BatchNormalizationLayerBuilder;
262
263struct BatchNormalizationDescriptor;
264struct BatchNormalizationDescriptorBuilder;
265
266struct ResizeBilinearLayer;
267struct ResizeBilinearLayerBuilder;
268
269struct ResizeBilinearDescriptor;
270struct ResizeBilinearDescriptorBuilder;
271
272struct SliceLayer;
273struct SliceLayerBuilder;
274
275struct SliceDescriptor;
276struct SliceDescriptorBuilder;
277
278struct StridedSliceLayer;
279struct StridedSliceLayerBuilder;
280
281struct StridedSliceDescriptor;
282struct StridedSliceDescriptorBuilder;
283
284struct ConcatLayer;
285struct ConcatLayerBuilder;
286
287struct MergerLayer;
288struct MergerLayerBuilder;
289
290struct UintVector;
291struct UintVectorBuilder;
292
293struct OriginsDescriptor;
294struct OriginsDescriptorBuilder;
295
296struct ViewsDescriptor;
297struct ViewsDescriptorBuilder;
298
299struct SplitterLayer;
300struct SplitterLayerBuilder;
301
302struct DetectionPostProcessLayer;
303struct DetectionPostProcessLayerBuilder;
304
305struct DetectionPostProcessDescriptor;
306struct DetectionPostProcessDescriptorBuilder;
307
308struct LstmInputParams;
309struct LstmInputParamsBuilder;
310
311struct LstmDescriptor;
312struct LstmDescriptorBuilder;
313
314struct LstmLayer;
315struct LstmLayerBuilder;
316
317struct QLstmInputParams;
318struct QLstmInputParamsBuilder;
319
320struct QLstmDescriptor;
321struct QLstmDescriptorBuilder;
322
323struct QLstmLayer;
324struct QLstmLayerBuilder;
325
326struct QuantizedLstmInputParams;
327struct QuantizedLstmInputParamsBuilder;
328
329struct QuantizedLstmLayer;
330struct QuantizedLstmLayerBuilder;
331
332struct DequantizeLayer;
333struct DequantizeLayerBuilder;
334
335struct MergeLayer;
336struct MergeLayerBuilder;
337
338struct SwitchLayer;
339struct SwitchLayerBuilder;
340
341struct PreluLayer;
342struct PreluLayerBuilder;
343
344struct TransposeConvolution2dLayer;
345struct TransposeConvolution2dLayerBuilder;
346
347struct TransposeConvolution2dDescriptor;
348struct TransposeConvolution2dDescriptorBuilder;
349
350struct TransposeLayer;
351struct TransposeLayerBuilder;
352
353struct TransposeDescriptor;
354struct TransposeDescriptorBuilder;
355
356struct ResizeLayer;
357struct ResizeLayerBuilder;
358
359struct ResizeDescriptor;
360struct ResizeDescriptorBuilder;
361
362struct StackLayer;
363struct StackLayerBuilder;
364
365struct StackDescriptor;
366struct StackDescriptorBuilder;
367
368struct StandInDescriptor;
369struct StandInDescriptorBuilder;
370
371struct StandInLayer;
372struct StandInLayerBuilder;
373
374struct RankLayer;
375struct RankLayerBuilder;
376
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000377struct ReduceLayer;
378struct ReduceLayerBuilder;
379
380struct ReduceDescriptor;
381struct ReduceDescriptorBuilder;
382
Narumol Prangnawarata0162e12021-07-23 14:47:49 +0100383struct UnidirectionalSequenceLstmDescriptor;
384struct UnidirectionalSequenceLstmDescriptorBuilder;
385
386struct UnidirectionalSequenceLstmLayer;
387struct UnidirectionalSequenceLstmLayerBuilder;
388
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000389struct AnyLayer;
390struct AnyLayerBuilder;
391
392struct FeatureCompatibilityVersions;
393struct FeatureCompatibilityVersionsBuilder;
394
395struct SerializedGraph;
396struct SerializedGraphBuilder;
397
398enum ActivationFunction {
399 ActivationFunction_Sigmoid = 0,
400 ActivationFunction_TanH = 1,
401 ActivationFunction_Linear = 2,
402 ActivationFunction_ReLu = 3,
403 ActivationFunction_BoundedReLu = 4,
404 ActivationFunction_SoftReLu = 5,
405 ActivationFunction_LeakyReLu = 6,
406 ActivationFunction_Abs = 7,
407 ActivationFunction_Sqrt = 8,
408 ActivationFunction_Square = 9,
409 ActivationFunction_Elu = 10,
410 ActivationFunction_HardSwish = 11,
411 ActivationFunction_MIN = ActivationFunction_Sigmoid,
412 ActivationFunction_MAX = ActivationFunction_HardSwish
413};
414
415inline const ActivationFunction (&EnumValuesActivationFunction())[12] {
416 static const ActivationFunction values[] = {
417 ActivationFunction_Sigmoid,
418 ActivationFunction_TanH,
419 ActivationFunction_Linear,
420 ActivationFunction_ReLu,
421 ActivationFunction_BoundedReLu,
422 ActivationFunction_SoftReLu,
423 ActivationFunction_LeakyReLu,
424 ActivationFunction_Abs,
425 ActivationFunction_Sqrt,
426 ActivationFunction_Square,
427 ActivationFunction_Elu,
428 ActivationFunction_HardSwish
429 };
430 return values;
431}
432
433inline const char * const *EnumNamesActivationFunction() {
434 static const char * const names[13] = {
435 "Sigmoid",
436 "TanH",
437 "Linear",
438 "ReLu",
439 "BoundedReLu",
440 "SoftReLu",
441 "LeakyReLu",
442 "Abs",
443 "Sqrt",
444 "Square",
445 "Elu",
446 "HardSwish",
447 nullptr
448 };
449 return names;
450}
451
452inline const char *EnumNameActivationFunction(ActivationFunction e) {
453 if (flatbuffers::IsOutRange(e, ActivationFunction_Sigmoid, ActivationFunction_HardSwish)) return "";
454 const size_t index = static_cast<size_t>(e);
455 return EnumNamesActivationFunction()[index];
456}
457
458enum ArgMinMaxFunction {
459 ArgMinMaxFunction_Min = 0,
460 ArgMinMaxFunction_Max = 1,
461 ArgMinMaxFunction_MIN = ArgMinMaxFunction_Min,
462 ArgMinMaxFunction_MAX = ArgMinMaxFunction_Max
463};
464
465inline const ArgMinMaxFunction (&EnumValuesArgMinMaxFunction())[2] {
466 static const ArgMinMaxFunction values[] = {
467 ArgMinMaxFunction_Min,
468 ArgMinMaxFunction_Max
469 };
470 return values;
471}
472
473inline const char * const *EnumNamesArgMinMaxFunction() {
474 static const char * const names[3] = {
475 "Min",
476 "Max",
477 nullptr
478 };
479 return names;
480}
481
482inline const char *EnumNameArgMinMaxFunction(ArgMinMaxFunction e) {
483 if (flatbuffers::IsOutRange(e, ArgMinMaxFunction_Min, ArgMinMaxFunction_Max)) return "";
484 const size_t index = static_cast<size_t>(e);
485 return EnumNamesArgMinMaxFunction()[index];
486}
487
488enum DataType {
489 DataType_Float16 = 0,
490 DataType_Float32 = 1,
491 DataType_QuantisedAsymm8 = 2,
492 DataType_Signed32 = 3,
493 DataType_Boolean = 4,
494 DataType_QuantisedSymm16 = 5,
495 DataType_QAsymmU8 = 6,
496 DataType_QSymmS16 = 7,
497 DataType_QAsymmS8 = 8,
498 DataType_QSymmS8 = 9,
Mike Kelly1f140f72021-04-06 12:25:55 +0100499 DataType_Signed64 = 10,
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000500 DataType_MIN = DataType_Float16,
Mike Kelly1f140f72021-04-06 12:25:55 +0100501 DataType_MAX = DataType_Signed64
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000502};
503
Mike Kelly1f140f72021-04-06 12:25:55 +0100504inline const DataType (&EnumValuesDataType())[11] {
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000505 static const DataType values[] = {
506 DataType_Float16,
507 DataType_Float32,
508 DataType_QuantisedAsymm8,
509 DataType_Signed32,
510 DataType_Boolean,
511 DataType_QuantisedSymm16,
512 DataType_QAsymmU8,
513 DataType_QSymmS16,
514 DataType_QAsymmS8,
Mike Kelly1f140f72021-04-06 12:25:55 +0100515 DataType_QSymmS8,
516 DataType_Signed64
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000517 };
518 return values;
519}
520
521inline const char * const *EnumNamesDataType() {
Mike Kelly1f140f72021-04-06 12:25:55 +0100522 static const char * const names[12] = {
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000523 "Float16",
524 "Float32",
525 "QuantisedAsymm8",
526 "Signed32",
527 "Boolean",
528 "QuantisedSymm16",
529 "QAsymmU8",
530 "QSymmS16",
531 "QAsymmS8",
532 "QSymmS8",
Mike Kelly1f140f72021-04-06 12:25:55 +0100533 "Signed64",
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000534 nullptr
535 };
536 return names;
537}
538
539inline const char *EnumNameDataType(DataType e) {
Mike Kelly1f140f72021-04-06 12:25:55 +0100540 if (flatbuffers::IsOutRange(e, DataType_Float16, DataType_Signed64)) return "";
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000541 const size_t index = static_cast<size_t>(e);
542 return EnumNamesDataType()[index];
543}
544
545enum DataLayout {
546 DataLayout_NHWC = 0,
547 DataLayout_NCHW = 1,
Matthew Sloyanb63a3112021-09-08 13:05:51 +0100548 DataLayout_NDHWC = 2,
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +0100549 DataLayout_NCDHW = 3,
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000550 DataLayout_MIN = DataLayout_NHWC,
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +0100551 DataLayout_MAX = DataLayout_NCDHW
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000552};
553
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +0100554inline const DataLayout (&EnumValuesDataLayout())[4] {
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000555 static const DataLayout values[] = {
556 DataLayout_NHWC,
Matthew Sloyanb63a3112021-09-08 13:05:51 +0100557 DataLayout_NCHW,
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +0100558 DataLayout_NDHWC,
559 DataLayout_NCDHW
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000560 };
561 return values;
562}
563
564inline const char * const *EnumNamesDataLayout() {
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +0100565 static const char * const names[5] = {
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000566 "NHWC",
567 "NCHW",
Matthew Sloyanb63a3112021-09-08 13:05:51 +0100568 "NDHWC",
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +0100569 "NCDHW",
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000570 nullptr
571 };
572 return names;
573}
574
575inline const char *EnumNameDataLayout(DataLayout e) {
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +0100576 if (flatbuffers::IsOutRange(e, DataLayout_NHWC, DataLayout_NCDHW)) return "";
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000577 const size_t index = static_cast<size_t>(e);
578 return EnumNamesDataLayout()[index];
579}
580
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000581enum ReduceOperation {
582 ReduceOperation_Sum = 0,
583 ReduceOperation_Max = 1,
584 ReduceOperation_Mean = 2,
585 ReduceOperation_Min = 3,
Teresa Charlin4e3e8312021-08-05 12:34:37 +0100586 ReduceOperation_Prod = 4,
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000587 ReduceOperation_MIN = ReduceOperation_Sum,
Teresa Charlin4e3e8312021-08-05 12:34:37 +0100588 ReduceOperation_MAX = ReduceOperation_Prod
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000589};
590
Teresa Charlin4e3e8312021-08-05 12:34:37 +0100591inline const ReduceOperation (&EnumValuesReduceOperation())[5] {
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000592 static const ReduceOperation values[] = {
593 ReduceOperation_Sum,
594 ReduceOperation_Max,
595 ReduceOperation_Mean,
Teresa Charlin4e3e8312021-08-05 12:34:37 +0100596 ReduceOperation_Min,
597 ReduceOperation_Prod
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000598 };
599 return values;
600}
601
602inline const char * const *EnumNamesReduceOperation() {
Teresa Charlin4e3e8312021-08-05 12:34:37 +0100603 static const char * const names[6] = {
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000604 "Sum",
605 "Max",
606 "Mean",
607 "Min",
Teresa Charlin4e3e8312021-08-05 12:34:37 +0100608 "Prod",
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000609 nullptr
610 };
611 return names;
612}
613
614inline const char *EnumNameReduceOperation(ReduceOperation e) {
Simon Obute51f67772021-09-03 15:50:13 +0100615 if (flatbuffers::IsOutRange(e, ReduceOperation_Sum, ReduceOperation_Prod)) return "";
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000616 const size_t index = static_cast<size_t>(e);
617 return EnumNamesReduceOperation()[index];
618}
619
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000620enum ResizeMethod {
621 ResizeMethod_NearestNeighbor = 0,
622 ResizeMethod_Bilinear = 1,
623 ResizeMethod_MIN = ResizeMethod_NearestNeighbor,
624 ResizeMethod_MAX = ResizeMethod_Bilinear
625};
626
627inline const ResizeMethod (&EnumValuesResizeMethod())[2] {
628 static const ResizeMethod values[] = {
629 ResizeMethod_NearestNeighbor,
630 ResizeMethod_Bilinear
631 };
632 return values;
633}
634
635inline const char * const *EnumNamesResizeMethod() {
636 static const char * const names[3] = {
637 "NearestNeighbor",
638 "Bilinear",
639 nullptr
640 };
641 return names;
642}
643
644inline const char *EnumNameResizeMethod(ResizeMethod e) {
645 if (flatbuffers::IsOutRange(e, ResizeMethod_NearestNeighbor, ResizeMethod_Bilinear)) return "";
646 const size_t index = static_cast<size_t>(e);
647 return EnumNamesResizeMethod()[index];
648}
649
650enum ConstTensorData {
651 ConstTensorData_NONE = 0,
652 ConstTensorData_ByteData = 1,
653 ConstTensorData_ShortData = 2,
654 ConstTensorData_IntData = 3,
655 ConstTensorData_LongData = 4,
656 ConstTensorData_MIN = ConstTensorData_NONE,
657 ConstTensorData_MAX = ConstTensorData_LongData
658};
659
660inline const ConstTensorData (&EnumValuesConstTensorData())[5] {
661 static const ConstTensorData values[] = {
662 ConstTensorData_NONE,
663 ConstTensorData_ByteData,
664 ConstTensorData_ShortData,
665 ConstTensorData_IntData,
666 ConstTensorData_LongData
667 };
668 return values;
669}
670
671inline const char * const *EnumNamesConstTensorData() {
672 static const char * const names[6] = {
673 "NONE",
674 "ByteData",
675 "ShortData",
676 "IntData",
677 "LongData",
678 nullptr
679 };
680 return names;
681}
682
683inline const char *EnumNameConstTensorData(ConstTensorData e) {
684 if (flatbuffers::IsOutRange(e, ConstTensorData_NONE, ConstTensorData_LongData)) return "";
685 const size_t index = static_cast<size_t>(e);
686 return EnumNamesConstTensorData()[index];
687}
688
689template<typename T> struct ConstTensorDataTraits {
690 static const ConstTensorData enum_value = ConstTensorData_NONE;
691};
692
693template<> struct ConstTensorDataTraits<armnnSerializer::ByteData> {
694 static const ConstTensorData enum_value = ConstTensorData_ByteData;
695};
696
697template<> struct ConstTensorDataTraits<armnnSerializer::ShortData> {
698 static const ConstTensorData enum_value = ConstTensorData_ShortData;
699};
700
701template<> struct ConstTensorDataTraits<armnnSerializer::IntData> {
702 static const ConstTensorData enum_value = ConstTensorData_IntData;
703};
704
705template<> struct ConstTensorDataTraits<armnnSerializer::LongData> {
706 static const ConstTensorData enum_value = ConstTensorData_LongData;
707};
708
709bool VerifyConstTensorData(flatbuffers::Verifier &verifier, const void *obj, ConstTensorData type);
710bool VerifyConstTensorDataVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
711
712enum LayerType {
713 LayerType_Addition = 0,
714 LayerType_Input = 1,
715 LayerType_Multiplication = 2,
716 LayerType_Output = 3,
717 LayerType_Pooling2d = 4,
718 LayerType_Reshape = 5,
719 LayerType_Softmax = 6,
720 LayerType_Convolution2d = 7,
721 LayerType_DepthwiseConvolution2d = 8,
722 LayerType_Activation = 9,
723 LayerType_Permute = 10,
724 LayerType_FullyConnected = 11,
725 LayerType_Constant = 12,
726 LayerType_SpaceToBatchNd = 13,
727 LayerType_BatchToSpaceNd = 14,
728 LayerType_Division = 15,
729 LayerType_Minimum = 16,
730 LayerType_Equal = 17,
731 LayerType_Maximum = 18,
732 LayerType_Normalization = 19,
733 LayerType_Pad = 20,
734 LayerType_Rsqrt = 21,
735 LayerType_Floor = 22,
736 LayerType_BatchNormalization = 23,
737 LayerType_Greater = 24,
738 LayerType_ResizeBilinear = 25,
739 LayerType_Subtraction = 26,
740 LayerType_StridedSlice = 27,
741 LayerType_Gather = 28,
742 LayerType_Mean = 29,
743 LayerType_Merger = 30,
744 LayerType_L2Normalization = 31,
745 LayerType_Splitter = 32,
746 LayerType_DetectionPostProcess = 33,
747 LayerType_Lstm = 34,
748 LayerType_Quantize = 35,
749 LayerType_Dequantize = 36,
750 LayerType_Merge = 37,
751 LayerType_Switch = 38,
752 LayerType_Concat = 39,
753 LayerType_SpaceToDepth = 40,
754 LayerType_Prelu = 41,
755 LayerType_TransposeConvolution2d = 42,
756 LayerType_Resize = 43,
757 LayerType_Stack = 44,
758 LayerType_QuantizedLstm = 45,
759 LayerType_Abs = 46,
760 LayerType_ArgMinMax = 47,
761 LayerType_Slice = 48,
762 LayerType_DepthToSpace = 49,
763 LayerType_InstanceNormalization = 50,
764 LayerType_LogSoftmax = 51,
765 LayerType_Comparison = 52,
766 LayerType_StandIn = 53,
767 LayerType_ElementwiseUnary = 54,
768 LayerType_Transpose = 55,
769 LayerType_QLstm = 56,
770 LayerType_Fill = 57,
771 LayerType_Rank = 58,
772 LayerType_LogicalBinary = 59,
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000773 LayerType_Reduce = 60,
mathad01b392e982021-04-07 12:07:30 +0100774 LayerType_Cast = 61,
Keith Davis3ae3f972021-05-21 16:33:48 +0100775 LayerType_Shape = 62,
Narumol Prangnawarata0162e12021-07-23 14:47:49 +0100776 LayerType_UnidirectionalSequenceLstm = 63,
Simon Obute51f67772021-09-03 15:50:13 +0100777 LayerType_ChannelShuffle = 64,
Matthew Sloyanb63a3112021-09-08 13:05:51 +0100778 LayerType_Convolution3d = 65,
Tamas Nyirid998a1c2021-11-05 14:55:33 +0000779 LayerType_Pooling3d = 66,
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000780 LayerType_MIN = LayerType_Addition,
Tamas Nyirid998a1c2021-11-05 14:55:33 +0000781 LayerType_MAX = LayerType_Pooling3d
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000782};
783
Tamas Nyirid998a1c2021-11-05 14:55:33 +0000784inline const LayerType (&EnumValuesLayerType())[67] {
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000785 static const LayerType values[] = {
786 LayerType_Addition,
787 LayerType_Input,
788 LayerType_Multiplication,
789 LayerType_Output,
790 LayerType_Pooling2d,
791 LayerType_Reshape,
792 LayerType_Softmax,
793 LayerType_Convolution2d,
794 LayerType_DepthwiseConvolution2d,
795 LayerType_Activation,
796 LayerType_Permute,
797 LayerType_FullyConnected,
798 LayerType_Constant,
799 LayerType_SpaceToBatchNd,
800 LayerType_BatchToSpaceNd,
801 LayerType_Division,
802 LayerType_Minimum,
803 LayerType_Equal,
804 LayerType_Maximum,
805 LayerType_Normalization,
806 LayerType_Pad,
807 LayerType_Rsqrt,
808 LayerType_Floor,
809 LayerType_BatchNormalization,
810 LayerType_Greater,
811 LayerType_ResizeBilinear,
812 LayerType_Subtraction,
813 LayerType_StridedSlice,
814 LayerType_Gather,
815 LayerType_Mean,
816 LayerType_Merger,
817 LayerType_L2Normalization,
818 LayerType_Splitter,
819 LayerType_DetectionPostProcess,
820 LayerType_Lstm,
821 LayerType_Quantize,
822 LayerType_Dequantize,
823 LayerType_Merge,
824 LayerType_Switch,
825 LayerType_Concat,
826 LayerType_SpaceToDepth,
827 LayerType_Prelu,
828 LayerType_TransposeConvolution2d,
829 LayerType_Resize,
830 LayerType_Stack,
831 LayerType_QuantizedLstm,
832 LayerType_Abs,
833 LayerType_ArgMinMax,
834 LayerType_Slice,
835 LayerType_DepthToSpace,
836 LayerType_InstanceNormalization,
837 LayerType_LogSoftmax,
838 LayerType_Comparison,
839 LayerType_StandIn,
840 LayerType_ElementwiseUnary,
841 LayerType_Transpose,
842 LayerType_QLstm,
843 LayerType_Fill,
844 LayerType_Rank,
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000845 LayerType_LogicalBinary,
mathad01b392e982021-04-07 12:07:30 +0100846 LayerType_Reduce,
Keith Davis3ae3f972021-05-21 16:33:48 +0100847 LayerType_Cast,
Narumol Prangnawarata0162e12021-07-23 14:47:49 +0100848 LayerType_Shape,
Simon Obute51f67772021-09-03 15:50:13 +0100849 LayerType_UnidirectionalSequenceLstm,
Matthew Sloyanb63a3112021-09-08 13:05:51 +0100850 LayerType_ChannelShuffle,
Tamas Nyirid998a1c2021-11-05 14:55:33 +0000851 LayerType_Convolution3d,
852 LayerType_Pooling3d
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000853 };
854 return values;
855}
856
857inline const char * const *EnumNamesLayerType() {
Tamas Nyirid998a1c2021-11-05 14:55:33 +0000858 static const char * const names[68] = {
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000859 "Addition",
860 "Input",
861 "Multiplication",
862 "Output",
863 "Pooling2d",
864 "Reshape",
865 "Softmax",
866 "Convolution2d",
867 "DepthwiseConvolution2d",
868 "Activation",
869 "Permute",
870 "FullyConnected",
871 "Constant",
872 "SpaceToBatchNd",
873 "BatchToSpaceNd",
874 "Division",
875 "Minimum",
876 "Equal",
877 "Maximum",
878 "Normalization",
879 "Pad",
880 "Rsqrt",
881 "Floor",
882 "BatchNormalization",
883 "Greater",
884 "ResizeBilinear",
885 "Subtraction",
886 "StridedSlice",
887 "Gather",
888 "Mean",
889 "Merger",
890 "L2Normalization",
891 "Splitter",
892 "DetectionPostProcess",
893 "Lstm",
894 "Quantize",
895 "Dequantize",
896 "Merge",
897 "Switch",
898 "Concat",
899 "SpaceToDepth",
900 "Prelu",
901 "TransposeConvolution2d",
902 "Resize",
903 "Stack",
904 "QuantizedLstm",
905 "Abs",
906 "ArgMinMax",
907 "Slice",
908 "DepthToSpace",
909 "InstanceNormalization",
910 "LogSoftmax",
911 "Comparison",
912 "StandIn",
913 "ElementwiseUnary",
914 "Transpose",
915 "QLstm",
916 "Fill",
917 "Rank",
918 "LogicalBinary",
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000919 "Reduce",
mathad01b392e982021-04-07 12:07:30 +0100920 "Cast",
Keith Davis3ae3f972021-05-21 16:33:48 +0100921 "Shape",
Narumol Prangnawarata0162e12021-07-23 14:47:49 +0100922 "UnidirectionalSequenceLstm",
Simon Obute51f67772021-09-03 15:50:13 +0100923 "ChannelShuffle",
Matthew Sloyanb63a3112021-09-08 13:05:51 +0100924 "Convolution3d",
Tamas Nyirid998a1c2021-11-05 14:55:33 +0000925 "Pooling3d",
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000926 nullptr
927 };
928 return names;
929}
930
931inline const char *EnumNameLayerType(LayerType e) {
Tamas Nyirid998a1c2021-11-05 14:55:33 +0000932 if (flatbuffers::IsOutRange(e, LayerType_Addition, LayerType_Pooling3d)) return "";
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000933 const size_t index = static_cast<size_t>(e);
934 return EnumNamesLayerType()[index];
935}
936
937enum ComparisonOperation {
938 ComparisonOperation_Equal = 0,
939 ComparisonOperation_Greater = 1,
940 ComparisonOperation_GreaterOrEqual = 2,
941 ComparisonOperation_Less = 3,
942 ComparisonOperation_LessOrEqual = 4,
943 ComparisonOperation_NotEqual = 5,
944 ComparisonOperation_MIN = ComparisonOperation_Equal,
945 ComparisonOperation_MAX = ComparisonOperation_NotEqual
946};
947
948inline const ComparisonOperation (&EnumValuesComparisonOperation())[6] {
949 static const ComparisonOperation values[] = {
950 ComparisonOperation_Equal,
951 ComparisonOperation_Greater,
952 ComparisonOperation_GreaterOrEqual,
953 ComparisonOperation_Less,
954 ComparisonOperation_LessOrEqual,
955 ComparisonOperation_NotEqual
956 };
957 return values;
958}
959
960inline const char * const *EnumNamesComparisonOperation() {
961 static const char * const names[7] = {
962 "Equal",
963 "Greater",
964 "GreaterOrEqual",
965 "Less",
966 "LessOrEqual",
967 "NotEqual",
968 nullptr
969 };
970 return names;
971}
972
973inline const char *EnumNameComparisonOperation(ComparisonOperation e) {
974 if (flatbuffers::IsOutRange(e, ComparisonOperation_Equal, ComparisonOperation_NotEqual)) return "";
975 const size_t index = static_cast<size_t>(e);
976 return EnumNamesComparisonOperation()[index];
977}
978
979enum UnaryOperation {
980 UnaryOperation_Abs = 0,
981 UnaryOperation_Rsqrt = 1,
982 UnaryOperation_Sqrt = 2,
983 UnaryOperation_Exp = 3,
984 UnaryOperation_Neg = 4,
985 UnaryOperation_LogicalNot = 5,
Teresa Charlin50de4fa2021-05-31 18:47:33 +0100986 UnaryOperation_Log = 6,
987 UnaryOperation_Sin = 7,
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000988 UnaryOperation_MIN = UnaryOperation_Abs,
Teresa Charlin50de4fa2021-05-31 18:47:33 +0100989 UnaryOperation_MAX = UnaryOperation_Sin
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000990};
991
Teresa Charlin50de4fa2021-05-31 18:47:33 +0100992inline const UnaryOperation (&EnumValuesUnaryOperation())[8] {
Sadik Armagan97bf84f2021-01-13 15:06:38 +0000993 static const UnaryOperation values[] = {
994 UnaryOperation_Abs,
995 UnaryOperation_Rsqrt,
996 UnaryOperation_Sqrt,
997 UnaryOperation_Exp,
998 UnaryOperation_Neg,
Teresa Charlin50de4fa2021-05-31 18:47:33 +0100999 UnaryOperation_LogicalNot,
1000 UnaryOperation_Log,
1001 UnaryOperation_Sin
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001002 };
1003 return values;
1004}
1005
1006inline const char * const *EnumNamesUnaryOperation() {
Teresa Charlin50de4fa2021-05-31 18:47:33 +01001007 static const char * const names[9] = {
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001008 "Abs",
1009 "Rsqrt",
1010 "Sqrt",
1011 "Exp",
1012 "Neg",
1013 "LogicalNot",
Teresa Charlin50de4fa2021-05-31 18:47:33 +01001014 "Log",
1015 "Sin",
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001016 nullptr
1017 };
1018 return names;
1019}
1020
1021inline const char *EnumNameUnaryOperation(UnaryOperation e) {
Teresa Charlin50de4fa2021-05-31 18:47:33 +01001022 if (flatbuffers::IsOutRange(e, UnaryOperation_Abs, UnaryOperation_Sin)) return "";
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001023 const size_t index = static_cast<size_t>(e);
1024 return EnumNamesUnaryOperation()[index];
1025}
1026
1027enum LogicalBinaryOperation {
1028 LogicalBinaryOperation_LogicalAnd = 0,
1029 LogicalBinaryOperation_LogicalOr = 1,
1030 LogicalBinaryOperation_MIN = LogicalBinaryOperation_LogicalAnd,
1031 LogicalBinaryOperation_MAX = LogicalBinaryOperation_LogicalOr
1032};
1033
1034inline const LogicalBinaryOperation (&EnumValuesLogicalBinaryOperation())[2] {
1035 static const LogicalBinaryOperation values[] = {
1036 LogicalBinaryOperation_LogicalAnd,
1037 LogicalBinaryOperation_LogicalOr
1038 };
1039 return values;
1040}
1041
1042inline const char * const *EnumNamesLogicalBinaryOperation() {
1043 static const char * const names[3] = {
1044 "LogicalAnd",
1045 "LogicalOr",
1046 nullptr
1047 };
1048 return names;
1049}
1050
1051inline const char *EnumNameLogicalBinaryOperation(LogicalBinaryOperation e) {
1052 if (flatbuffers::IsOutRange(e, LogicalBinaryOperation_LogicalAnd, LogicalBinaryOperation_LogicalOr)) return "";
1053 const size_t index = static_cast<size_t>(e);
1054 return EnumNamesLogicalBinaryOperation()[index];
1055}
1056
1057enum PoolingAlgorithm {
1058 PoolingAlgorithm_Max = 0,
1059 PoolingAlgorithm_Average = 1,
1060 PoolingAlgorithm_L2 = 2,
1061 PoolingAlgorithm_MIN = PoolingAlgorithm_Max,
1062 PoolingAlgorithm_MAX = PoolingAlgorithm_L2
1063};
1064
1065inline const PoolingAlgorithm (&EnumValuesPoolingAlgorithm())[3] {
1066 static const PoolingAlgorithm values[] = {
1067 PoolingAlgorithm_Max,
1068 PoolingAlgorithm_Average,
1069 PoolingAlgorithm_L2
1070 };
1071 return values;
1072}
1073
1074inline const char * const *EnumNamesPoolingAlgorithm() {
1075 static const char * const names[4] = {
1076 "Max",
1077 "Average",
1078 "L2",
1079 nullptr
1080 };
1081 return names;
1082}
1083
1084inline const char *EnumNamePoolingAlgorithm(PoolingAlgorithm e) {
1085 if (flatbuffers::IsOutRange(e, PoolingAlgorithm_Max, PoolingAlgorithm_L2)) return "";
1086 const size_t index = static_cast<size_t>(e);
1087 return EnumNamesPoolingAlgorithm()[index];
1088}
1089
1090enum OutputShapeRounding {
1091 OutputShapeRounding_Floor = 0,
1092 OutputShapeRounding_Ceiling = 1,
1093 OutputShapeRounding_MIN = OutputShapeRounding_Floor,
1094 OutputShapeRounding_MAX = OutputShapeRounding_Ceiling
1095};
1096
1097inline const OutputShapeRounding (&EnumValuesOutputShapeRounding())[2] {
1098 static const OutputShapeRounding values[] = {
1099 OutputShapeRounding_Floor,
1100 OutputShapeRounding_Ceiling
1101 };
1102 return values;
1103}
1104
1105inline const char * const *EnumNamesOutputShapeRounding() {
1106 static const char * const names[3] = {
1107 "Floor",
1108 "Ceiling",
1109 nullptr
1110 };
1111 return names;
1112}
1113
1114inline const char *EnumNameOutputShapeRounding(OutputShapeRounding e) {
1115 if (flatbuffers::IsOutRange(e, OutputShapeRounding_Floor, OutputShapeRounding_Ceiling)) return "";
1116 const size_t index = static_cast<size_t>(e);
1117 return EnumNamesOutputShapeRounding()[index];
1118}
1119
1120enum PaddingMethod {
1121 PaddingMethod_IgnoreValue = 0,
1122 PaddingMethod_Exclude = 1,
1123 PaddingMethod_MIN = PaddingMethod_IgnoreValue,
1124 PaddingMethod_MAX = PaddingMethod_Exclude
1125};
1126
1127inline const PaddingMethod (&EnumValuesPaddingMethod())[2] {
1128 static const PaddingMethod values[] = {
1129 PaddingMethod_IgnoreValue,
1130 PaddingMethod_Exclude
1131 };
1132 return values;
1133}
1134
1135inline const char * const *EnumNamesPaddingMethod() {
1136 static const char * const names[3] = {
1137 "IgnoreValue",
1138 "Exclude",
1139 nullptr
1140 };
1141 return names;
1142}
1143
1144inline const char *EnumNamePaddingMethod(PaddingMethod e) {
1145 if (flatbuffers::IsOutRange(e, PaddingMethod_IgnoreValue, PaddingMethod_Exclude)) return "";
1146 const size_t index = static_cast<size_t>(e);
1147 return EnumNamesPaddingMethod()[index];
1148}
1149
1150enum NormalizationAlgorithmChannel {
1151 NormalizationAlgorithmChannel_Across = 0,
1152 NormalizationAlgorithmChannel_Within = 1,
1153 NormalizationAlgorithmChannel_MIN = NormalizationAlgorithmChannel_Across,
1154 NormalizationAlgorithmChannel_MAX = NormalizationAlgorithmChannel_Within
1155};
1156
1157inline const NormalizationAlgorithmChannel (&EnumValuesNormalizationAlgorithmChannel())[2] {
1158 static const NormalizationAlgorithmChannel values[] = {
1159 NormalizationAlgorithmChannel_Across,
1160 NormalizationAlgorithmChannel_Within
1161 };
1162 return values;
1163}
1164
1165inline const char * const *EnumNamesNormalizationAlgorithmChannel() {
1166 static const char * const names[3] = {
1167 "Across",
1168 "Within",
1169 nullptr
1170 };
1171 return names;
1172}
1173
1174inline const char *EnumNameNormalizationAlgorithmChannel(NormalizationAlgorithmChannel e) {
1175 if (flatbuffers::IsOutRange(e, NormalizationAlgorithmChannel_Across, NormalizationAlgorithmChannel_Within)) return "";
1176 const size_t index = static_cast<size_t>(e);
1177 return EnumNamesNormalizationAlgorithmChannel()[index];
1178}
1179
1180enum NormalizationAlgorithmMethod {
1181 NormalizationAlgorithmMethod_LocalBrightness = 0,
1182 NormalizationAlgorithmMethod_LocalContrast = 1,
1183 NormalizationAlgorithmMethod_MIN = NormalizationAlgorithmMethod_LocalBrightness,
1184 NormalizationAlgorithmMethod_MAX = NormalizationAlgorithmMethod_LocalContrast
1185};
1186
1187inline const NormalizationAlgorithmMethod (&EnumValuesNormalizationAlgorithmMethod())[2] {
1188 static const NormalizationAlgorithmMethod values[] = {
1189 NormalizationAlgorithmMethod_LocalBrightness,
1190 NormalizationAlgorithmMethod_LocalContrast
1191 };
1192 return values;
1193}
1194
1195inline const char * const *EnumNamesNormalizationAlgorithmMethod() {
1196 static const char * const names[3] = {
1197 "LocalBrightness",
1198 "LocalContrast",
1199 nullptr
1200 };
1201 return names;
1202}
1203
1204inline const char *EnumNameNormalizationAlgorithmMethod(NormalizationAlgorithmMethod e) {
1205 if (flatbuffers::IsOutRange(e, NormalizationAlgorithmMethod_LocalBrightness, NormalizationAlgorithmMethod_LocalContrast)) return "";
1206 const size_t index = static_cast<size_t>(e);
1207 return EnumNamesNormalizationAlgorithmMethod()[index];
1208}
1209
Matthew Sloyan2e5d0b22021-10-21 14:05:31 +01001210enum PaddingMode {
1211 PaddingMode_Constant = 0,
1212 PaddingMode_Reflect = 1,
1213 PaddingMode_Symmetric = 2,
1214 PaddingMode_MIN = PaddingMode_Constant,
1215 PaddingMode_MAX = PaddingMode_Symmetric
1216};
1217
1218inline const PaddingMode (&EnumValuesPaddingMode())[3] {
1219 static const PaddingMode values[] = {
1220 PaddingMode_Constant,
1221 PaddingMode_Reflect,
1222 PaddingMode_Symmetric
1223 };
1224 return values;
1225}
1226
1227inline const char * const *EnumNamesPaddingMode() {
1228 static const char * const names[4] = {
1229 "Constant",
1230 "Reflect",
1231 "Symmetric",
1232 nullptr
1233 };
1234 return names;
1235}
1236
1237inline const char *EnumNamePaddingMode(PaddingMode e) {
1238 if (flatbuffers::IsOutRange(e, PaddingMode_Constant, PaddingMode_Symmetric)) return "";
1239 const size_t index = static_cast<size_t>(e);
1240 return EnumNamesPaddingMode()[index];
1241}
1242
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001243enum Layer {
1244 Layer_NONE = 0,
1245 Layer_ActivationLayer = 1,
1246 Layer_AdditionLayer = 2,
1247 Layer_BatchToSpaceNdLayer = 3,
1248 Layer_BatchNormalizationLayer = 4,
1249 Layer_ConstantLayer = 5,
1250 Layer_Convolution2dLayer = 6,
1251 Layer_DepthwiseConvolution2dLayer = 7,
1252 Layer_FullyConnectedLayer = 8,
1253 Layer_InputLayer = 9,
1254 Layer_MultiplicationLayer = 10,
1255 Layer_OutputLayer = 11,
1256 Layer_PermuteLayer = 12,
1257 Layer_Pooling2dLayer = 13,
1258 Layer_ReshapeLayer = 14,
1259 Layer_SoftmaxLayer = 15,
1260 Layer_SpaceToBatchNdLayer = 16,
1261 Layer_DivisionLayer = 17,
1262 Layer_MinimumLayer = 18,
1263 Layer_EqualLayer = 19,
1264 Layer_MaximumLayer = 20,
1265 Layer_NormalizationLayer = 21,
1266 Layer_PadLayer = 22,
1267 Layer_RsqrtLayer = 23,
1268 Layer_FloorLayer = 24,
1269 Layer_GreaterLayer = 25,
1270 Layer_ResizeBilinearLayer = 26,
1271 Layer_SubtractionLayer = 27,
1272 Layer_StridedSliceLayer = 28,
1273 Layer_GatherLayer = 29,
1274 Layer_MeanLayer = 30,
1275 Layer_MergerLayer = 31,
1276 Layer_L2NormalizationLayer = 32,
1277 Layer_SplitterLayer = 33,
1278 Layer_DetectionPostProcessLayer = 34,
1279 Layer_LstmLayer = 35,
1280 Layer_QuantizedLstmLayer = 36,
1281 Layer_QuantizeLayer = 37,
1282 Layer_DequantizeLayer = 38,
1283 Layer_MergeLayer = 39,
1284 Layer_SwitchLayer = 40,
1285 Layer_ConcatLayer = 41,
1286 Layer_SpaceToDepthLayer = 42,
1287 Layer_PreluLayer = 43,
1288 Layer_TransposeConvolution2dLayer = 44,
1289 Layer_ResizeLayer = 45,
1290 Layer_StackLayer = 46,
1291 Layer_AbsLayer = 47,
1292 Layer_ArgMinMaxLayer = 48,
1293 Layer_SliceLayer = 49,
1294 Layer_DepthToSpaceLayer = 50,
1295 Layer_InstanceNormalizationLayer = 51,
1296 Layer_LogSoftmaxLayer = 52,
1297 Layer_ComparisonLayer = 53,
1298 Layer_StandInLayer = 54,
1299 Layer_ElementwiseUnaryLayer = 55,
1300 Layer_TransposeLayer = 56,
1301 Layer_QLstmLayer = 57,
1302 Layer_FillLayer = 58,
1303 Layer_RankLayer = 59,
1304 Layer_LogicalBinaryLayer = 60,
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +00001305 Layer_ReduceLayer = 61,
mathad01b392e982021-04-07 12:07:30 +01001306 Layer_CastLayer = 62,
Keith Davis3ae3f972021-05-21 16:33:48 +01001307 Layer_ShapeLayer = 63,
Narumol Prangnawarata0162e12021-07-23 14:47:49 +01001308 Layer_UnidirectionalSequenceLstmLayer = 64,
Simon Obute51f67772021-09-03 15:50:13 +01001309 Layer_ChannelShuffleLayer = 65,
Matthew Sloyanb63a3112021-09-08 13:05:51 +01001310 Layer_Convolution3dLayer = 66,
Tamas Nyirid998a1c2021-11-05 14:55:33 +00001311 Layer_Pooling3dLayer = 67,
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001312 Layer_MIN = Layer_NONE,
Tamas Nyirid998a1c2021-11-05 14:55:33 +00001313 Layer_MAX = Layer_Pooling3dLayer
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001314};
1315
Tamas Nyirid998a1c2021-11-05 14:55:33 +00001316inline const Layer (&EnumValuesLayer())[68] {
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001317 static const Layer values[] = {
1318 Layer_NONE,
1319 Layer_ActivationLayer,
1320 Layer_AdditionLayer,
1321 Layer_BatchToSpaceNdLayer,
1322 Layer_BatchNormalizationLayer,
1323 Layer_ConstantLayer,
1324 Layer_Convolution2dLayer,
1325 Layer_DepthwiseConvolution2dLayer,
1326 Layer_FullyConnectedLayer,
1327 Layer_InputLayer,
1328 Layer_MultiplicationLayer,
1329 Layer_OutputLayer,
1330 Layer_PermuteLayer,
1331 Layer_Pooling2dLayer,
1332 Layer_ReshapeLayer,
1333 Layer_SoftmaxLayer,
1334 Layer_SpaceToBatchNdLayer,
1335 Layer_DivisionLayer,
1336 Layer_MinimumLayer,
1337 Layer_EqualLayer,
1338 Layer_MaximumLayer,
1339 Layer_NormalizationLayer,
1340 Layer_PadLayer,
1341 Layer_RsqrtLayer,
1342 Layer_FloorLayer,
1343 Layer_GreaterLayer,
1344 Layer_ResizeBilinearLayer,
1345 Layer_SubtractionLayer,
1346 Layer_StridedSliceLayer,
1347 Layer_GatherLayer,
1348 Layer_MeanLayer,
1349 Layer_MergerLayer,
1350 Layer_L2NormalizationLayer,
1351 Layer_SplitterLayer,
1352 Layer_DetectionPostProcessLayer,
1353 Layer_LstmLayer,
1354 Layer_QuantizedLstmLayer,
1355 Layer_QuantizeLayer,
1356 Layer_DequantizeLayer,
1357 Layer_MergeLayer,
1358 Layer_SwitchLayer,
1359 Layer_ConcatLayer,
1360 Layer_SpaceToDepthLayer,
1361 Layer_PreluLayer,
1362 Layer_TransposeConvolution2dLayer,
1363 Layer_ResizeLayer,
1364 Layer_StackLayer,
1365 Layer_AbsLayer,
1366 Layer_ArgMinMaxLayer,
1367 Layer_SliceLayer,
1368 Layer_DepthToSpaceLayer,
1369 Layer_InstanceNormalizationLayer,
1370 Layer_LogSoftmaxLayer,
1371 Layer_ComparisonLayer,
1372 Layer_StandInLayer,
1373 Layer_ElementwiseUnaryLayer,
1374 Layer_TransposeLayer,
1375 Layer_QLstmLayer,
1376 Layer_FillLayer,
1377 Layer_RankLayer,
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +00001378 Layer_LogicalBinaryLayer,
mathad01b392e982021-04-07 12:07:30 +01001379 Layer_ReduceLayer,
Keith Davis3ae3f972021-05-21 16:33:48 +01001380 Layer_CastLayer,
Narumol Prangnawarata0162e12021-07-23 14:47:49 +01001381 Layer_ShapeLayer,
Simon Obute51f67772021-09-03 15:50:13 +01001382 Layer_UnidirectionalSequenceLstmLayer,
Matthew Sloyanb63a3112021-09-08 13:05:51 +01001383 Layer_ChannelShuffleLayer,
Tamas Nyirid998a1c2021-11-05 14:55:33 +00001384 Layer_Convolution3dLayer,
1385 Layer_Pooling3dLayer
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001386 };
1387 return values;
1388}
1389
1390inline const char * const *EnumNamesLayer() {
Tamas Nyirid998a1c2021-11-05 14:55:33 +00001391 static const char * const names[69] = {
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001392 "NONE",
1393 "ActivationLayer",
1394 "AdditionLayer",
1395 "BatchToSpaceNdLayer",
1396 "BatchNormalizationLayer",
1397 "ConstantLayer",
1398 "Convolution2dLayer",
1399 "DepthwiseConvolution2dLayer",
1400 "FullyConnectedLayer",
1401 "InputLayer",
1402 "MultiplicationLayer",
1403 "OutputLayer",
1404 "PermuteLayer",
1405 "Pooling2dLayer",
1406 "ReshapeLayer",
1407 "SoftmaxLayer",
1408 "SpaceToBatchNdLayer",
1409 "DivisionLayer",
1410 "MinimumLayer",
1411 "EqualLayer",
1412 "MaximumLayer",
1413 "NormalizationLayer",
1414 "PadLayer",
1415 "RsqrtLayer",
1416 "FloorLayer",
1417 "GreaterLayer",
1418 "ResizeBilinearLayer",
1419 "SubtractionLayer",
1420 "StridedSliceLayer",
1421 "GatherLayer",
1422 "MeanLayer",
1423 "MergerLayer",
1424 "L2NormalizationLayer",
1425 "SplitterLayer",
1426 "DetectionPostProcessLayer",
1427 "LstmLayer",
1428 "QuantizedLstmLayer",
1429 "QuantizeLayer",
1430 "DequantizeLayer",
1431 "MergeLayer",
1432 "SwitchLayer",
1433 "ConcatLayer",
1434 "SpaceToDepthLayer",
1435 "PreluLayer",
1436 "TransposeConvolution2dLayer",
1437 "ResizeLayer",
1438 "StackLayer",
1439 "AbsLayer",
1440 "ArgMinMaxLayer",
1441 "SliceLayer",
1442 "DepthToSpaceLayer",
1443 "InstanceNormalizationLayer",
1444 "LogSoftmaxLayer",
1445 "ComparisonLayer",
1446 "StandInLayer",
1447 "ElementwiseUnaryLayer",
1448 "TransposeLayer",
1449 "QLstmLayer",
1450 "FillLayer",
1451 "RankLayer",
1452 "LogicalBinaryLayer",
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +00001453 "ReduceLayer",
mathad01b392e982021-04-07 12:07:30 +01001454 "CastLayer",
Keith Davis3ae3f972021-05-21 16:33:48 +01001455 "ShapeLayer",
Narumol Prangnawarata0162e12021-07-23 14:47:49 +01001456 "UnidirectionalSequenceLstmLayer",
Simon Obute51f67772021-09-03 15:50:13 +01001457 "ChannelShuffleLayer",
Matthew Sloyanb63a3112021-09-08 13:05:51 +01001458 "Convolution3dLayer",
Tamas Nyirid998a1c2021-11-05 14:55:33 +00001459 "Pooling3dLayer",
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001460 nullptr
1461 };
1462 return names;
1463}
1464
1465inline const char *EnumNameLayer(Layer e) {
Tamas Nyirid998a1c2021-11-05 14:55:33 +00001466 if (flatbuffers::IsOutRange(e, Layer_NONE, Layer_Pooling3dLayer)) return "";
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001467 const size_t index = static_cast<size_t>(e);
1468 return EnumNamesLayer()[index];
1469}
1470
1471template<typename T> struct LayerTraits {
1472 static const Layer enum_value = Layer_NONE;
1473};
1474
1475template<> struct LayerTraits<armnnSerializer::ActivationLayer> {
1476 static const Layer enum_value = Layer_ActivationLayer;
1477};
1478
1479template<> struct LayerTraits<armnnSerializer::AdditionLayer> {
1480 static const Layer enum_value = Layer_AdditionLayer;
1481};
1482
1483template<> struct LayerTraits<armnnSerializer::BatchToSpaceNdLayer> {
1484 static const Layer enum_value = Layer_BatchToSpaceNdLayer;
1485};
1486
1487template<> struct LayerTraits<armnnSerializer::BatchNormalizationLayer> {
1488 static const Layer enum_value = Layer_BatchNormalizationLayer;
1489};
1490
1491template<> struct LayerTraits<armnnSerializer::ConstantLayer> {
1492 static const Layer enum_value = Layer_ConstantLayer;
1493};
1494
1495template<> struct LayerTraits<armnnSerializer::Convolution2dLayer> {
1496 static const Layer enum_value = Layer_Convolution2dLayer;
1497};
1498
1499template<> struct LayerTraits<armnnSerializer::DepthwiseConvolution2dLayer> {
1500 static const Layer enum_value = Layer_DepthwiseConvolution2dLayer;
1501};
1502
1503template<> struct LayerTraits<armnnSerializer::FullyConnectedLayer> {
1504 static const Layer enum_value = Layer_FullyConnectedLayer;
1505};
1506
1507template<> struct LayerTraits<armnnSerializer::InputLayer> {
1508 static const Layer enum_value = Layer_InputLayer;
1509};
1510
1511template<> struct LayerTraits<armnnSerializer::MultiplicationLayer> {
1512 static const Layer enum_value = Layer_MultiplicationLayer;
1513};
1514
1515template<> struct LayerTraits<armnnSerializer::OutputLayer> {
1516 static const Layer enum_value = Layer_OutputLayer;
1517};
1518
1519template<> struct LayerTraits<armnnSerializer::PermuteLayer> {
1520 static const Layer enum_value = Layer_PermuteLayer;
1521};
1522
1523template<> struct LayerTraits<armnnSerializer::Pooling2dLayer> {
1524 static const Layer enum_value = Layer_Pooling2dLayer;
1525};
1526
1527template<> struct LayerTraits<armnnSerializer::ReshapeLayer> {
1528 static const Layer enum_value = Layer_ReshapeLayer;
1529};
1530
1531template<> struct LayerTraits<armnnSerializer::SoftmaxLayer> {
1532 static const Layer enum_value = Layer_SoftmaxLayer;
1533};
1534
1535template<> struct LayerTraits<armnnSerializer::SpaceToBatchNdLayer> {
1536 static const Layer enum_value = Layer_SpaceToBatchNdLayer;
1537};
1538
1539template<> struct LayerTraits<armnnSerializer::DivisionLayer> {
1540 static const Layer enum_value = Layer_DivisionLayer;
1541};
1542
1543template<> struct LayerTraits<armnnSerializer::MinimumLayer> {
1544 static const Layer enum_value = Layer_MinimumLayer;
1545};
1546
1547template<> struct LayerTraits<armnnSerializer::EqualLayer> {
1548 static const Layer enum_value = Layer_EqualLayer;
1549};
1550
1551template<> struct LayerTraits<armnnSerializer::MaximumLayer> {
1552 static const Layer enum_value = Layer_MaximumLayer;
1553};
1554
1555template<> struct LayerTraits<armnnSerializer::NormalizationLayer> {
1556 static const Layer enum_value = Layer_NormalizationLayer;
1557};
1558
1559template<> struct LayerTraits<armnnSerializer::PadLayer> {
1560 static const Layer enum_value = Layer_PadLayer;
1561};
1562
1563template<> struct LayerTraits<armnnSerializer::RsqrtLayer> {
1564 static const Layer enum_value = Layer_RsqrtLayer;
1565};
1566
1567template<> struct LayerTraits<armnnSerializer::FloorLayer> {
1568 static const Layer enum_value = Layer_FloorLayer;
1569};
1570
1571template<> struct LayerTraits<armnnSerializer::GreaterLayer> {
1572 static const Layer enum_value = Layer_GreaterLayer;
1573};
1574
1575template<> struct LayerTraits<armnnSerializer::ResizeBilinearLayer> {
1576 static const Layer enum_value = Layer_ResizeBilinearLayer;
1577};
1578
1579template<> struct LayerTraits<armnnSerializer::SubtractionLayer> {
1580 static const Layer enum_value = Layer_SubtractionLayer;
1581};
1582
1583template<> struct LayerTraits<armnnSerializer::StridedSliceLayer> {
1584 static const Layer enum_value = Layer_StridedSliceLayer;
1585};
1586
1587template<> struct LayerTraits<armnnSerializer::GatherLayer> {
1588 static const Layer enum_value = Layer_GatherLayer;
1589};
1590
1591template<> struct LayerTraits<armnnSerializer::MeanLayer> {
1592 static const Layer enum_value = Layer_MeanLayer;
1593};
1594
1595template<> struct LayerTraits<armnnSerializer::MergerLayer> {
1596 static const Layer enum_value = Layer_MergerLayer;
1597};
1598
1599template<> struct LayerTraits<armnnSerializer::L2NormalizationLayer> {
1600 static const Layer enum_value = Layer_L2NormalizationLayer;
1601};
1602
1603template<> struct LayerTraits<armnnSerializer::SplitterLayer> {
1604 static const Layer enum_value = Layer_SplitterLayer;
1605};
1606
1607template<> struct LayerTraits<armnnSerializer::DetectionPostProcessLayer> {
1608 static const Layer enum_value = Layer_DetectionPostProcessLayer;
1609};
1610
1611template<> struct LayerTraits<armnnSerializer::LstmLayer> {
1612 static const Layer enum_value = Layer_LstmLayer;
1613};
1614
1615template<> struct LayerTraits<armnnSerializer::QuantizedLstmLayer> {
1616 static const Layer enum_value = Layer_QuantizedLstmLayer;
1617};
1618
1619template<> struct LayerTraits<armnnSerializer::QuantizeLayer> {
1620 static const Layer enum_value = Layer_QuantizeLayer;
1621};
1622
1623template<> struct LayerTraits<armnnSerializer::DequantizeLayer> {
1624 static const Layer enum_value = Layer_DequantizeLayer;
1625};
1626
1627template<> struct LayerTraits<armnnSerializer::MergeLayer> {
1628 static const Layer enum_value = Layer_MergeLayer;
1629};
1630
1631template<> struct LayerTraits<armnnSerializer::SwitchLayer> {
1632 static const Layer enum_value = Layer_SwitchLayer;
1633};
1634
1635template<> struct LayerTraits<armnnSerializer::ConcatLayer> {
1636 static const Layer enum_value = Layer_ConcatLayer;
1637};
1638
1639template<> struct LayerTraits<armnnSerializer::SpaceToDepthLayer> {
1640 static const Layer enum_value = Layer_SpaceToDepthLayer;
1641};
1642
1643template<> struct LayerTraits<armnnSerializer::PreluLayer> {
1644 static const Layer enum_value = Layer_PreluLayer;
1645};
1646
1647template<> struct LayerTraits<armnnSerializer::TransposeConvolution2dLayer> {
1648 static const Layer enum_value = Layer_TransposeConvolution2dLayer;
1649};
1650
1651template<> struct LayerTraits<armnnSerializer::ResizeLayer> {
1652 static const Layer enum_value = Layer_ResizeLayer;
1653};
1654
1655template<> struct LayerTraits<armnnSerializer::StackLayer> {
1656 static const Layer enum_value = Layer_StackLayer;
1657};
1658
1659template<> struct LayerTraits<armnnSerializer::AbsLayer> {
1660 static const Layer enum_value = Layer_AbsLayer;
1661};
1662
1663template<> struct LayerTraits<armnnSerializer::ArgMinMaxLayer> {
1664 static const Layer enum_value = Layer_ArgMinMaxLayer;
1665};
1666
1667template<> struct LayerTraits<armnnSerializer::SliceLayer> {
1668 static const Layer enum_value = Layer_SliceLayer;
1669};
1670
1671template<> struct LayerTraits<armnnSerializer::DepthToSpaceLayer> {
1672 static const Layer enum_value = Layer_DepthToSpaceLayer;
1673};
1674
1675template<> struct LayerTraits<armnnSerializer::InstanceNormalizationLayer> {
1676 static const Layer enum_value = Layer_InstanceNormalizationLayer;
1677};
1678
1679template<> struct LayerTraits<armnnSerializer::LogSoftmaxLayer> {
1680 static const Layer enum_value = Layer_LogSoftmaxLayer;
1681};
1682
1683template<> struct LayerTraits<armnnSerializer::ComparisonLayer> {
1684 static const Layer enum_value = Layer_ComparisonLayer;
1685};
1686
1687template<> struct LayerTraits<armnnSerializer::StandInLayer> {
1688 static const Layer enum_value = Layer_StandInLayer;
1689};
1690
1691template<> struct LayerTraits<armnnSerializer::ElementwiseUnaryLayer> {
1692 static const Layer enum_value = Layer_ElementwiseUnaryLayer;
1693};
1694
1695template<> struct LayerTraits<armnnSerializer::TransposeLayer> {
1696 static const Layer enum_value = Layer_TransposeLayer;
1697};
1698
1699template<> struct LayerTraits<armnnSerializer::QLstmLayer> {
1700 static const Layer enum_value = Layer_QLstmLayer;
1701};
1702
1703template<> struct LayerTraits<armnnSerializer::FillLayer> {
1704 static const Layer enum_value = Layer_FillLayer;
1705};
1706
1707template<> struct LayerTraits<armnnSerializer::RankLayer> {
1708 static const Layer enum_value = Layer_RankLayer;
1709};
1710
1711template<> struct LayerTraits<armnnSerializer::LogicalBinaryLayer> {
1712 static const Layer enum_value = Layer_LogicalBinaryLayer;
1713};
1714
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +00001715template<> struct LayerTraits<armnnSerializer::ReduceLayer> {
1716 static const Layer enum_value = Layer_ReduceLayer;
1717};
1718
mathad01b392e982021-04-07 12:07:30 +01001719template<> struct LayerTraits<armnnSerializer::CastLayer> {
1720 static const Layer enum_value = Layer_CastLayer;
1721};
1722
Keith Davis3ae3f972021-05-21 16:33:48 +01001723template<> struct LayerTraits<armnnSerializer::ShapeLayer> {
1724 static const Layer enum_value = Layer_ShapeLayer;
1725};
1726
Narumol Prangnawarata0162e12021-07-23 14:47:49 +01001727template<> struct LayerTraits<armnnSerializer::UnidirectionalSequenceLstmLayer> {
1728 static const Layer enum_value = Layer_UnidirectionalSequenceLstmLayer;
1729};
1730
Simon Obute51f67772021-09-03 15:50:13 +01001731template<> struct LayerTraits<armnnSerializer::ChannelShuffleLayer> {
1732 static const Layer enum_value = Layer_ChannelShuffleLayer;
1733};
1734
Matthew Sloyanb63a3112021-09-08 13:05:51 +01001735template<> struct LayerTraits<armnnSerializer::Convolution3dLayer> {
1736 static const Layer enum_value = Layer_Convolution3dLayer;
1737};
1738
Tamas Nyirid998a1c2021-11-05 14:55:33 +00001739template<> struct LayerTraits<armnnSerializer::Pooling3dLayer> {
1740 static const Layer enum_value = Layer_Pooling3dLayer;
1741};
1742
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001743bool VerifyLayer(flatbuffers::Verifier &verifier, const void *obj, Layer type);
1744bool VerifyLayerVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
1745
1746FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Connection FLATBUFFERS_FINAL_CLASS {
1747 private:
1748 uint32_t sourceLayerIndex_;
1749 uint32_t outputSlotIndex_;
1750
1751 public:
1752 Connection() {
1753 memset(static_cast<void *>(this), 0, sizeof(Connection));
1754 }
1755 Connection(uint32_t _sourceLayerIndex, uint32_t _outputSlotIndex)
1756 : sourceLayerIndex_(flatbuffers::EndianScalar(_sourceLayerIndex)),
1757 outputSlotIndex_(flatbuffers::EndianScalar(_outputSlotIndex)) {
1758 }
1759 uint32_t sourceLayerIndex() const {
1760 return flatbuffers::EndianScalar(sourceLayerIndex_);
1761 }
1762 uint32_t outputSlotIndex() const {
1763 return flatbuffers::EndianScalar(outputSlotIndex_);
1764 }
1765};
1766FLATBUFFERS_STRUCT_END(Connection, 8);
1767
1768struct TensorInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1769 typedef TensorInfoBuilder Builder;
1770 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1771 VT_DIMENSIONS = 4,
1772 VT_DATATYPE = 6,
1773 VT_QUANTIZATIONSCALE = 8,
1774 VT_QUANTIZATIONOFFSET = 10,
1775 VT_QUANTIZATIONSCALES = 12,
1776 VT_QUANTIZATIONDIM = 14,
Colm Donelan800b2812021-02-12 12:43:35 +00001777 VT_DIMENSIONALITY = 16,
Matthew Sloyan81beae32021-07-13 19:46:11 +01001778 VT_DIMENSIONSPECIFICITY = 18,
1779 VT_ISCONSTANT = 20
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001780 };
1781 const flatbuffers::Vector<uint32_t> *dimensions() const {
1782 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_DIMENSIONS);
1783 }
1784 armnnSerializer::DataType dataType() const {
1785 return static_cast<armnnSerializer::DataType>(GetField<int8_t>(VT_DATATYPE, 0));
1786 }
1787 float quantizationScale() const {
1788 return GetField<float>(VT_QUANTIZATIONSCALE, 1.0f);
1789 }
1790 int32_t quantizationOffset() const {
1791 return GetField<int32_t>(VT_QUANTIZATIONOFFSET, 0);
1792 }
1793 const flatbuffers::Vector<float> *quantizationScales() const {
1794 return GetPointer<const flatbuffers::Vector<float> *>(VT_QUANTIZATIONSCALES);
1795 }
1796 uint32_t quantizationDim() const {
1797 return GetField<uint32_t>(VT_QUANTIZATIONDIM, 0);
1798 }
1799 uint32_t dimensionality() const {
1800 return GetField<uint32_t>(VT_DIMENSIONALITY, 1);
1801 }
Colm Donelan800b2812021-02-12 12:43:35 +00001802 const flatbuffers::Vector<uint8_t> *dimensionSpecificity() const {
1803 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DIMENSIONSPECIFICITY);
1804 }
Matthew Sloyan81beae32021-07-13 19:46:11 +01001805 bool isConstant() const {
1806 return GetField<uint8_t>(VT_ISCONSTANT, 0) != 0;
1807 }
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001808 bool Verify(flatbuffers::Verifier &verifier) const {
1809 return VerifyTableStart(verifier) &&
1810 VerifyOffset(verifier, VT_DIMENSIONS) &&
1811 verifier.VerifyVector(dimensions()) &&
1812 VerifyField<int8_t>(verifier, VT_DATATYPE) &&
1813 VerifyField<float>(verifier, VT_QUANTIZATIONSCALE) &&
1814 VerifyField<int32_t>(verifier, VT_QUANTIZATIONOFFSET) &&
1815 VerifyOffset(verifier, VT_QUANTIZATIONSCALES) &&
1816 verifier.VerifyVector(quantizationScales()) &&
1817 VerifyField<uint32_t>(verifier, VT_QUANTIZATIONDIM) &&
1818 VerifyField<uint32_t>(verifier, VT_DIMENSIONALITY) &&
Colm Donelan800b2812021-02-12 12:43:35 +00001819 VerifyOffset(verifier, VT_DIMENSIONSPECIFICITY) &&
1820 verifier.VerifyVector(dimensionSpecificity()) &&
Matthew Sloyan81beae32021-07-13 19:46:11 +01001821 VerifyField<uint8_t>(verifier, VT_ISCONSTANT) &&
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001822 verifier.EndTable();
1823 }
1824};
1825
1826struct TensorInfoBuilder {
1827 typedef TensorInfo Table;
1828 flatbuffers::FlatBufferBuilder &fbb_;
1829 flatbuffers::uoffset_t start_;
1830 void add_dimensions(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> dimensions) {
1831 fbb_.AddOffset(TensorInfo::VT_DIMENSIONS, dimensions);
1832 }
1833 void add_dataType(armnnSerializer::DataType dataType) {
1834 fbb_.AddElement<int8_t>(TensorInfo::VT_DATATYPE, static_cast<int8_t>(dataType), 0);
1835 }
1836 void add_quantizationScale(float quantizationScale) {
1837 fbb_.AddElement<float>(TensorInfo::VT_QUANTIZATIONSCALE, quantizationScale, 1.0f);
1838 }
1839 void add_quantizationOffset(int32_t quantizationOffset) {
1840 fbb_.AddElement<int32_t>(TensorInfo::VT_QUANTIZATIONOFFSET, quantizationOffset, 0);
1841 }
1842 void add_quantizationScales(flatbuffers::Offset<flatbuffers::Vector<float>> quantizationScales) {
1843 fbb_.AddOffset(TensorInfo::VT_QUANTIZATIONSCALES, quantizationScales);
1844 }
1845 void add_quantizationDim(uint32_t quantizationDim) {
1846 fbb_.AddElement<uint32_t>(TensorInfo::VT_QUANTIZATIONDIM, quantizationDim, 0);
1847 }
1848 void add_dimensionality(uint32_t dimensionality) {
1849 fbb_.AddElement<uint32_t>(TensorInfo::VT_DIMENSIONALITY, dimensionality, 1);
1850 }
Colm Donelan800b2812021-02-12 12:43:35 +00001851 void add_dimensionSpecificity(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> dimensionSpecificity) {
1852 fbb_.AddOffset(TensorInfo::VT_DIMENSIONSPECIFICITY, dimensionSpecificity);
1853 }
Matthew Sloyan81beae32021-07-13 19:46:11 +01001854 void add_isConstant(bool isConstant) {
1855 fbb_.AddElement<uint8_t>(TensorInfo::VT_ISCONSTANT, static_cast<uint8_t>(isConstant), 0);
1856 }
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001857 explicit TensorInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1858 : fbb_(_fbb) {
1859 start_ = fbb_.StartTable();
1860 }
1861 TensorInfoBuilder &operator=(const TensorInfoBuilder &);
1862 flatbuffers::Offset<TensorInfo> Finish() {
1863 const auto end = fbb_.EndTable(start_);
1864 auto o = flatbuffers::Offset<TensorInfo>(end);
1865 return o;
1866 }
1867};
1868
1869inline flatbuffers::Offset<TensorInfo> CreateTensorInfo(
1870 flatbuffers::FlatBufferBuilder &_fbb,
1871 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> dimensions = 0,
1872 armnnSerializer::DataType dataType = armnnSerializer::DataType_Float16,
1873 float quantizationScale = 1.0f,
1874 int32_t quantizationOffset = 0,
1875 flatbuffers::Offset<flatbuffers::Vector<float>> quantizationScales = 0,
1876 uint32_t quantizationDim = 0,
Colm Donelan800b2812021-02-12 12:43:35 +00001877 uint32_t dimensionality = 1,
Matthew Sloyan81beae32021-07-13 19:46:11 +01001878 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> dimensionSpecificity = 0,
1879 bool isConstant = false) {
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001880 TensorInfoBuilder builder_(_fbb);
Colm Donelan800b2812021-02-12 12:43:35 +00001881 builder_.add_dimensionSpecificity(dimensionSpecificity);
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001882 builder_.add_dimensionality(dimensionality);
1883 builder_.add_quantizationDim(quantizationDim);
1884 builder_.add_quantizationScales(quantizationScales);
1885 builder_.add_quantizationOffset(quantizationOffset);
1886 builder_.add_quantizationScale(quantizationScale);
1887 builder_.add_dimensions(dimensions);
Matthew Sloyan81beae32021-07-13 19:46:11 +01001888 builder_.add_isConstant(isConstant);
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001889 builder_.add_dataType(dataType);
1890 return builder_.Finish();
1891}
1892
1893inline flatbuffers::Offset<TensorInfo> CreateTensorInfoDirect(
1894 flatbuffers::FlatBufferBuilder &_fbb,
1895 const std::vector<uint32_t> *dimensions = nullptr,
1896 armnnSerializer::DataType dataType = armnnSerializer::DataType_Float16,
1897 float quantizationScale = 1.0f,
1898 int32_t quantizationOffset = 0,
1899 const std::vector<float> *quantizationScales = nullptr,
1900 uint32_t quantizationDim = 0,
Colm Donelan800b2812021-02-12 12:43:35 +00001901 uint32_t dimensionality = 1,
Matthew Sloyan81beae32021-07-13 19:46:11 +01001902 const std::vector<uint8_t> *dimensionSpecificity = nullptr,
1903 bool isConstant = false) {
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001904 auto dimensions__ = dimensions ? _fbb.CreateVector<uint32_t>(*dimensions) : 0;
1905 auto quantizationScales__ = quantizationScales ? _fbb.CreateVector<float>(*quantizationScales) : 0;
Colm Donelan800b2812021-02-12 12:43:35 +00001906 auto dimensionSpecificity__ = dimensionSpecificity ? _fbb.CreateVector<uint8_t>(*dimensionSpecificity) : 0;
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001907 return armnnSerializer::CreateTensorInfo(
1908 _fbb,
1909 dimensions__,
1910 dataType,
1911 quantizationScale,
1912 quantizationOffset,
1913 quantizationScales__,
1914 quantizationDim,
Colm Donelan800b2812021-02-12 12:43:35 +00001915 dimensionality,
Matthew Sloyan81beae32021-07-13 19:46:11 +01001916 dimensionSpecificity__,
1917 isConstant);
Sadik Armagan97bf84f2021-01-13 15:06:38 +00001918}
1919
1920struct ByteData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1921 typedef ByteDataBuilder Builder;
1922 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1923 VT_DATA = 4
1924 };
1925 const flatbuffers::Vector<int8_t> *data() const {
1926 return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_DATA);
1927 }
1928 bool Verify(flatbuffers::Verifier &verifier) const {
1929 return VerifyTableStart(verifier) &&
1930 VerifyOffset(verifier, VT_DATA) &&
1931 verifier.VerifyVector(data()) &&
1932 verifier.EndTable();
1933 }
1934};
1935
1936struct ByteDataBuilder {
1937 typedef ByteData Table;
1938 flatbuffers::FlatBufferBuilder &fbb_;
1939 flatbuffers::uoffset_t start_;
1940 void add_data(flatbuffers::Offset<flatbuffers::Vector<int8_t>> data) {
1941 fbb_.AddOffset(ByteData::VT_DATA, data);
1942 }
1943 explicit ByteDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1944 : fbb_(_fbb) {
1945 start_ = fbb_.StartTable();
1946 }
1947 ByteDataBuilder &operator=(const ByteDataBuilder &);
1948 flatbuffers::Offset<ByteData> Finish() {
1949 const auto end = fbb_.EndTable(start_);
1950 auto o = flatbuffers::Offset<ByteData>(end);
1951 return o;
1952 }
1953};
1954
1955inline flatbuffers::Offset<ByteData> CreateByteData(
1956 flatbuffers::FlatBufferBuilder &_fbb,
1957 flatbuffers::Offset<flatbuffers::Vector<int8_t>> data = 0) {
1958 ByteDataBuilder builder_(_fbb);
1959 builder_.add_data(data);
1960 return builder_.Finish();
1961}
1962
1963inline flatbuffers::Offset<ByteData> CreateByteDataDirect(
1964 flatbuffers::FlatBufferBuilder &_fbb,
1965 const std::vector<int8_t> *data = nullptr) {
1966 auto data__ = data ? _fbb.CreateVector<int8_t>(*data) : 0;
1967 return armnnSerializer::CreateByteData(
1968 _fbb,
1969 data__);
1970}
1971
1972struct ShortData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1973 typedef ShortDataBuilder Builder;
1974 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1975 VT_DATA = 4
1976 };
1977 const flatbuffers::Vector<int16_t> *data() const {
1978 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_DATA);
1979 }
1980 bool Verify(flatbuffers::Verifier &verifier) const {
1981 return VerifyTableStart(verifier) &&
1982 VerifyOffset(verifier, VT_DATA) &&
1983 verifier.VerifyVector(data()) &&
1984 verifier.EndTable();
1985 }
1986};
1987
1988struct ShortDataBuilder {
1989 typedef ShortData Table;
1990 flatbuffers::FlatBufferBuilder &fbb_;
1991 flatbuffers::uoffset_t start_;
1992 void add_data(flatbuffers::Offset<flatbuffers::Vector<int16_t>> data) {
1993 fbb_.AddOffset(ShortData::VT_DATA, data);
1994 }
1995 explicit ShortDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1996 : fbb_(_fbb) {
1997 start_ = fbb_.StartTable();
1998 }
1999 ShortDataBuilder &operator=(const ShortDataBuilder &);
2000 flatbuffers::Offset<ShortData> Finish() {
2001 const auto end = fbb_.EndTable(start_);
2002 auto o = flatbuffers::Offset<ShortData>(end);
2003 return o;
2004 }
2005};
2006
2007inline flatbuffers::Offset<ShortData> CreateShortData(
2008 flatbuffers::FlatBufferBuilder &_fbb,
2009 flatbuffers::Offset<flatbuffers::Vector<int16_t>> data = 0) {
2010 ShortDataBuilder builder_(_fbb);
2011 builder_.add_data(data);
2012 return builder_.Finish();
2013}
2014
2015inline flatbuffers::Offset<ShortData> CreateShortDataDirect(
2016 flatbuffers::FlatBufferBuilder &_fbb,
2017 const std::vector<int16_t> *data = nullptr) {
2018 auto data__ = data ? _fbb.CreateVector<int16_t>(*data) : 0;
2019 return armnnSerializer::CreateShortData(
2020 _fbb,
2021 data__);
2022}
2023
2024struct IntData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2025 typedef IntDataBuilder Builder;
2026 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2027 VT_DATA = 4
2028 };
2029 const flatbuffers::Vector<int32_t> *data() const {
2030 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DATA);
2031 }
2032 bool Verify(flatbuffers::Verifier &verifier) const {
2033 return VerifyTableStart(verifier) &&
2034 VerifyOffset(verifier, VT_DATA) &&
2035 verifier.VerifyVector(data()) &&
2036 verifier.EndTable();
2037 }
2038};
2039
2040struct IntDataBuilder {
2041 typedef IntData Table;
2042 flatbuffers::FlatBufferBuilder &fbb_;
2043 flatbuffers::uoffset_t start_;
2044 void add_data(flatbuffers::Offset<flatbuffers::Vector<int32_t>> data) {
2045 fbb_.AddOffset(IntData::VT_DATA, data);
2046 }
2047 explicit IntDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2048 : fbb_(_fbb) {
2049 start_ = fbb_.StartTable();
2050 }
2051 IntDataBuilder &operator=(const IntDataBuilder &);
2052 flatbuffers::Offset<IntData> Finish() {
2053 const auto end = fbb_.EndTable(start_);
2054 auto o = flatbuffers::Offset<IntData>(end);
2055 return o;
2056 }
2057};
2058
2059inline flatbuffers::Offset<IntData> CreateIntData(
2060 flatbuffers::FlatBufferBuilder &_fbb,
2061 flatbuffers::Offset<flatbuffers::Vector<int32_t>> data = 0) {
2062 IntDataBuilder builder_(_fbb);
2063 builder_.add_data(data);
2064 return builder_.Finish();
2065}
2066
2067inline flatbuffers::Offset<IntData> CreateIntDataDirect(
2068 flatbuffers::FlatBufferBuilder &_fbb,
2069 const std::vector<int32_t> *data = nullptr) {
2070 auto data__ = data ? _fbb.CreateVector<int32_t>(*data) : 0;
2071 return armnnSerializer::CreateIntData(
2072 _fbb,
2073 data__);
2074}
2075
2076struct LongData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2077 typedef LongDataBuilder Builder;
2078 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2079 VT_DATA = 4
2080 };
2081 const flatbuffers::Vector<int64_t> *data() const {
2082 return GetPointer<const flatbuffers::Vector<int64_t> *>(VT_DATA);
2083 }
2084 bool Verify(flatbuffers::Verifier &verifier) const {
2085 return VerifyTableStart(verifier) &&
2086 VerifyOffset(verifier, VT_DATA) &&
2087 verifier.VerifyVector(data()) &&
2088 verifier.EndTable();
2089 }
2090};
2091
2092struct LongDataBuilder {
2093 typedef LongData Table;
2094 flatbuffers::FlatBufferBuilder &fbb_;
2095 flatbuffers::uoffset_t start_;
2096 void add_data(flatbuffers::Offset<flatbuffers::Vector<int64_t>> data) {
2097 fbb_.AddOffset(LongData::VT_DATA, data);
2098 }
2099 explicit LongDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2100 : fbb_(_fbb) {
2101 start_ = fbb_.StartTable();
2102 }
2103 LongDataBuilder &operator=(const LongDataBuilder &);
2104 flatbuffers::Offset<LongData> Finish() {
2105 const auto end = fbb_.EndTable(start_);
2106 auto o = flatbuffers::Offset<LongData>(end);
2107 return o;
2108 }
2109};
2110
2111inline flatbuffers::Offset<LongData> CreateLongData(
2112 flatbuffers::FlatBufferBuilder &_fbb,
2113 flatbuffers::Offset<flatbuffers::Vector<int64_t>> data = 0) {
2114 LongDataBuilder builder_(_fbb);
2115 builder_.add_data(data);
2116 return builder_.Finish();
2117}
2118
2119inline flatbuffers::Offset<LongData> CreateLongDataDirect(
2120 flatbuffers::FlatBufferBuilder &_fbb,
2121 const std::vector<int64_t> *data = nullptr) {
2122 auto data__ = data ? _fbb.CreateVector<int64_t>(*data) : 0;
2123 return armnnSerializer::CreateLongData(
2124 _fbb,
2125 data__);
2126}
2127
2128struct ConstTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2129 typedef ConstTensorBuilder Builder;
2130 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2131 VT_INFO = 4,
2132 VT_DATA_TYPE = 6,
2133 VT_DATA = 8
2134 };
2135 const armnnSerializer::TensorInfo *info() const {
2136 return GetPointer<const armnnSerializer::TensorInfo *>(VT_INFO);
2137 }
2138 armnnSerializer::ConstTensorData data_type() const {
2139 return static_cast<armnnSerializer::ConstTensorData>(GetField<uint8_t>(VT_DATA_TYPE, 0));
2140 }
2141 const void *data() const {
2142 return GetPointer<const void *>(VT_DATA);
2143 }
2144 template<typename T> const T *data_as() const;
2145 const armnnSerializer::ByteData *data_as_ByteData() const {
2146 return data_type() == armnnSerializer::ConstTensorData_ByteData ? static_cast<const armnnSerializer::ByteData *>(data()) : nullptr;
2147 }
2148 const armnnSerializer::ShortData *data_as_ShortData() const {
2149 return data_type() == armnnSerializer::ConstTensorData_ShortData ? static_cast<const armnnSerializer::ShortData *>(data()) : nullptr;
2150 }
2151 const armnnSerializer::IntData *data_as_IntData() const {
2152 return data_type() == armnnSerializer::ConstTensorData_IntData ? static_cast<const armnnSerializer::IntData *>(data()) : nullptr;
2153 }
2154 const armnnSerializer::LongData *data_as_LongData() const {
2155 return data_type() == armnnSerializer::ConstTensorData_LongData ? static_cast<const armnnSerializer::LongData *>(data()) : nullptr;
2156 }
2157 bool Verify(flatbuffers::Verifier &verifier) const {
2158 return VerifyTableStart(verifier) &&
2159 VerifyOffset(verifier, VT_INFO) &&
2160 verifier.VerifyTable(info()) &&
2161 VerifyField<uint8_t>(verifier, VT_DATA_TYPE) &&
2162 VerifyOffset(verifier, VT_DATA) &&
2163 VerifyConstTensorData(verifier, data(), data_type()) &&
2164 verifier.EndTable();
2165 }
2166};
2167
2168template<> inline const armnnSerializer::ByteData *ConstTensor::data_as<armnnSerializer::ByteData>() const {
2169 return data_as_ByteData();
2170}
2171
2172template<> inline const armnnSerializer::ShortData *ConstTensor::data_as<armnnSerializer::ShortData>() const {
2173 return data_as_ShortData();
2174}
2175
2176template<> inline const armnnSerializer::IntData *ConstTensor::data_as<armnnSerializer::IntData>() const {
2177 return data_as_IntData();
2178}
2179
2180template<> inline const armnnSerializer::LongData *ConstTensor::data_as<armnnSerializer::LongData>() const {
2181 return data_as_LongData();
2182}
2183
2184struct ConstTensorBuilder {
2185 typedef ConstTensor Table;
2186 flatbuffers::FlatBufferBuilder &fbb_;
2187 flatbuffers::uoffset_t start_;
2188 void add_info(flatbuffers::Offset<armnnSerializer::TensorInfo> info) {
2189 fbb_.AddOffset(ConstTensor::VT_INFO, info);
2190 }
2191 void add_data_type(armnnSerializer::ConstTensorData data_type) {
2192 fbb_.AddElement<uint8_t>(ConstTensor::VT_DATA_TYPE, static_cast<uint8_t>(data_type), 0);
2193 }
2194 void add_data(flatbuffers::Offset<void> data) {
2195 fbb_.AddOffset(ConstTensor::VT_DATA, data);
2196 }
2197 explicit ConstTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2198 : fbb_(_fbb) {
2199 start_ = fbb_.StartTable();
2200 }
2201 ConstTensorBuilder &operator=(const ConstTensorBuilder &);
2202 flatbuffers::Offset<ConstTensor> Finish() {
2203 const auto end = fbb_.EndTable(start_);
2204 auto o = flatbuffers::Offset<ConstTensor>(end);
2205 return o;
2206 }
2207};
2208
2209inline flatbuffers::Offset<ConstTensor> CreateConstTensor(
2210 flatbuffers::FlatBufferBuilder &_fbb,
2211 flatbuffers::Offset<armnnSerializer::TensorInfo> info = 0,
2212 armnnSerializer::ConstTensorData data_type = armnnSerializer::ConstTensorData_NONE,
2213 flatbuffers::Offset<void> data = 0) {
2214 ConstTensorBuilder builder_(_fbb);
2215 builder_.add_data(data);
2216 builder_.add_info(info);
2217 builder_.add_data_type(data_type);
2218 return builder_.Finish();
2219}
2220
2221struct InputSlot FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2222 typedef InputSlotBuilder Builder;
2223 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2224 VT_INDEX = 4,
2225 VT_CONNECTION = 6
2226 };
2227 uint32_t index() const {
2228 return GetField<uint32_t>(VT_INDEX, 0);
2229 }
2230 const armnnSerializer::Connection *connection() const {
2231 return GetStruct<const armnnSerializer::Connection *>(VT_CONNECTION);
2232 }
2233 bool Verify(flatbuffers::Verifier &verifier) const {
2234 return VerifyTableStart(verifier) &&
2235 VerifyField<uint32_t>(verifier, VT_INDEX) &&
2236 VerifyField<armnnSerializer::Connection>(verifier, VT_CONNECTION) &&
2237 verifier.EndTable();
2238 }
2239};
2240
2241struct InputSlotBuilder {
2242 typedef InputSlot Table;
2243 flatbuffers::FlatBufferBuilder &fbb_;
2244 flatbuffers::uoffset_t start_;
2245 void add_index(uint32_t index) {
2246 fbb_.AddElement<uint32_t>(InputSlot::VT_INDEX, index, 0);
2247 }
2248 void add_connection(const armnnSerializer::Connection *connection) {
2249 fbb_.AddStruct(InputSlot::VT_CONNECTION, connection);
2250 }
2251 explicit InputSlotBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2252 : fbb_(_fbb) {
2253 start_ = fbb_.StartTable();
2254 }
2255 InputSlotBuilder &operator=(const InputSlotBuilder &);
2256 flatbuffers::Offset<InputSlot> Finish() {
2257 const auto end = fbb_.EndTable(start_);
2258 auto o = flatbuffers::Offset<InputSlot>(end);
2259 return o;
2260 }
2261};
2262
2263inline flatbuffers::Offset<InputSlot> CreateInputSlot(
2264 flatbuffers::FlatBufferBuilder &_fbb,
2265 uint32_t index = 0,
2266 const armnnSerializer::Connection *connection = 0) {
2267 InputSlotBuilder builder_(_fbb);
2268 builder_.add_connection(connection);
2269 builder_.add_index(index);
2270 return builder_.Finish();
2271}
2272
2273struct OutputSlot FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2274 typedef OutputSlotBuilder Builder;
2275 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2276 VT_INDEX = 4,
2277 VT_TENSORINFO = 6
2278 };
2279 uint32_t index() const {
2280 return GetField<uint32_t>(VT_INDEX, 0);
2281 }
2282 const armnnSerializer::TensorInfo *tensorInfo() const {
2283 return GetPointer<const armnnSerializer::TensorInfo *>(VT_TENSORINFO);
2284 }
2285 bool Verify(flatbuffers::Verifier &verifier) const {
2286 return VerifyTableStart(verifier) &&
2287 VerifyField<uint32_t>(verifier, VT_INDEX) &&
2288 VerifyOffset(verifier, VT_TENSORINFO) &&
2289 verifier.VerifyTable(tensorInfo()) &&
2290 verifier.EndTable();
2291 }
2292};
2293
2294struct OutputSlotBuilder {
2295 typedef OutputSlot Table;
2296 flatbuffers::FlatBufferBuilder &fbb_;
2297 flatbuffers::uoffset_t start_;
2298 void add_index(uint32_t index) {
2299 fbb_.AddElement<uint32_t>(OutputSlot::VT_INDEX, index, 0);
2300 }
2301 void add_tensorInfo(flatbuffers::Offset<armnnSerializer::TensorInfo> tensorInfo) {
2302 fbb_.AddOffset(OutputSlot::VT_TENSORINFO, tensorInfo);
2303 }
2304 explicit OutputSlotBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2305 : fbb_(_fbb) {
2306 start_ = fbb_.StartTable();
2307 }
2308 OutputSlotBuilder &operator=(const OutputSlotBuilder &);
2309 flatbuffers::Offset<OutputSlot> Finish() {
2310 const auto end = fbb_.EndTable(start_);
2311 auto o = flatbuffers::Offset<OutputSlot>(end);
2312 return o;
2313 }
2314};
2315
2316inline flatbuffers::Offset<OutputSlot> CreateOutputSlot(
2317 flatbuffers::FlatBufferBuilder &_fbb,
2318 uint32_t index = 0,
2319 flatbuffers::Offset<armnnSerializer::TensorInfo> tensorInfo = 0) {
2320 OutputSlotBuilder builder_(_fbb);
2321 builder_.add_tensorInfo(tensorInfo);
2322 builder_.add_index(index);
2323 return builder_.Finish();
2324}
2325
2326struct LayerBase FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2327 typedef LayerBaseBuilder Builder;
2328 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2329 VT_INDEX = 4,
2330 VT_LAYERNAME = 6,
2331 VT_LAYERTYPE = 8,
2332 VT_INPUTSLOTS = 10,
2333 VT_OUTPUTSLOTS = 12
2334 };
2335 uint32_t index() const {
2336 return GetField<uint32_t>(VT_INDEX, 0);
2337 }
2338 const flatbuffers::String *layerName() const {
2339 return GetPointer<const flatbuffers::String *>(VT_LAYERNAME);
2340 }
2341 armnnSerializer::LayerType layerType() const {
2342 return static_cast<armnnSerializer::LayerType>(GetField<uint32_t>(VT_LAYERTYPE, 0));
2343 }
2344 const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::InputSlot>> *inputSlots() const {
2345 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::InputSlot>> *>(VT_INPUTSLOTS);
2346 }
2347 const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::OutputSlot>> *outputSlots() const {
2348 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::OutputSlot>> *>(VT_OUTPUTSLOTS);
2349 }
2350 bool Verify(flatbuffers::Verifier &verifier) const {
2351 return VerifyTableStart(verifier) &&
2352 VerifyField<uint32_t>(verifier, VT_INDEX) &&
2353 VerifyOffset(verifier, VT_LAYERNAME) &&
2354 verifier.VerifyString(layerName()) &&
2355 VerifyField<uint32_t>(verifier, VT_LAYERTYPE) &&
2356 VerifyOffset(verifier, VT_INPUTSLOTS) &&
2357 verifier.VerifyVector(inputSlots()) &&
2358 verifier.VerifyVectorOfTables(inputSlots()) &&
2359 VerifyOffset(verifier, VT_OUTPUTSLOTS) &&
2360 verifier.VerifyVector(outputSlots()) &&
2361 verifier.VerifyVectorOfTables(outputSlots()) &&
2362 verifier.EndTable();
2363 }
2364};
2365
2366struct LayerBaseBuilder {
2367 typedef LayerBase Table;
2368 flatbuffers::FlatBufferBuilder &fbb_;
2369 flatbuffers::uoffset_t start_;
2370 void add_index(uint32_t index) {
2371 fbb_.AddElement<uint32_t>(LayerBase::VT_INDEX, index, 0);
2372 }
2373 void add_layerName(flatbuffers::Offset<flatbuffers::String> layerName) {
2374 fbb_.AddOffset(LayerBase::VT_LAYERNAME, layerName);
2375 }
2376 void add_layerType(armnnSerializer::LayerType layerType) {
2377 fbb_.AddElement<uint32_t>(LayerBase::VT_LAYERTYPE, static_cast<uint32_t>(layerType), 0);
2378 }
2379 void add_inputSlots(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::InputSlot>>> inputSlots) {
2380 fbb_.AddOffset(LayerBase::VT_INPUTSLOTS, inputSlots);
2381 }
2382 void add_outputSlots(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::OutputSlot>>> outputSlots) {
2383 fbb_.AddOffset(LayerBase::VT_OUTPUTSLOTS, outputSlots);
2384 }
2385 explicit LayerBaseBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2386 : fbb_(_fbb) {
2387 start_ = fbb_.StartTable();
2388 }
2389 LayerBaseBuilder &operator=(const LayerBaseBuilder &);
2390 flatbuffers::Offset<LayerBase> Finish() {
2391 const auto end = fbb_.EndTable(start_);
2392 auto o = flatbuffers::Offset<LayerBase>(end);
2393 return o;
2394 }
2395};
2396
2397inline flatbuffers::Offset<LayerBase> CreateLayerBase(
2398 flatbuffers::FlatBufferBuilder &_fbb,
2399 uint32_t index = 0,
2400 flatbuffers::Offset<flatbuffers::String> layerName = 0,
2401 armnnSerializer::LayerType layerType = armnnSerializer::LayerType_Addition,
2402 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::InputSlot>>> inputSlots = 0,
2403 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::OutputSlot>>> outputSlots = 0) {
2404 LayerBaseBuilder builder_(_fbb);
2405 builder_.add_outputSlots(outputSlots);
2406 builder_.add_inputSlots(inputSlots);
2407 builder_.add_layerType(layerType);
2408 builder_.add_layerName(layerName);
2409 builder_.add_index(index);
2410 return builder_.Finish();
2411}
2412
2413inline flatbuffers::Offset<LayerBase> CreateLayerBaseDirect(
2414 flatbuffers::FlatBufferBuilder &_fbb,
2415 uint32_t index = 0,
2416 const char *layerName = nullptr,
2417 armnnSerializer::LayerType layerType = armnnSerializer::LayerType_Addition,
2418 const std::vector<flatbuffers::Offset<armnnSerializer::InputSlot>> *inputSlots = nullptr,
2419 const std::vector<flatbuffers::Offset<armnnSerializer::OutputSlot>> *outputSlots = nullptr) {
2420 auto layerName__ = layerName ? _fbb.CreateString(layerName) : 0;
2421 auto inputSlots__ = inputSlots ? _fbb.CreateVector<flatbuffers::Offset<armnnSerializer::InputSlot>>(*inputSlots) : 0;
2422 auto outputSlots__ = outputSlots ? _fbb.CreateVector<flatbuffers::Offset<armnnSerializer::OutputSlot>>(*outputSlots) : 0;
2423 return armnnSerializer::CreateLayerBase(
2424 _fbb,
2425 index,
2426 layerName__,
2427 layerType,
2428 inputSlots__,
2429 outputSlots__);
2430}
2431
2432struct BindableLayerBase FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2433 typedef BindableLayerBaseBuilder Builder;
2434 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2435 VT_BASE = 4,
2436 VT_LAYERBINDINGID = 6
2437 };
2438 const armnnSerializer::LayerBase *base() const {
2439 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2440 }
2441 int32_t layerBindingId() const {
2442 return GetField<int32_t>(VT_LAYERBINDINGID, 0);
2443 }
2444 bool Verify(flatbuffers::Verifier &verifier) const {
2445 return VerifyTableStart(verifier) &&
2446 VerifyOffset(verifier, VT_BASE) &&
2447 verifier.VerifyTable(base()) &&
2448 VerifyField<int32_t>(verifier, VT_LAYERBINDINGID) &&
2449 verifier.EndTable();
2450 }
2451};
2452
2453struct BindableLayerBaseBuilder {
2454 typedef BindableLayerBase Table;
2455 flatbuffers::FlatBufferBuilder &fbb_;
2456 flatbuffers::uoffset_t start_;
2457 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2458 fbb_.AddOffset(BindableLayerBase::VT_BASE, base);
2459 }
2460 void add_layerBindingId(int32_t layerBindingId) {
2461 fbb_.AddElement<int32_t>(BindableLayerBase::VT_LAYERBINDINGID, layerBindingId, 0);
2462 }
2463 explicit BindableLayerBaseBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2464 : fbb_(_fbb) {
2465 start_ = fbb_.StartTable();
2466 }
2467 BindableLayerBaseBuilder &operator=(const BindableLayerBaseBuilder &);
2468 flatbuffers::Offset<BindableLayerBase> Finish() {
2469 const auto end = fbb_.EndTable(start_);
2470 auto o = flatbuffers::Offset<BindableLayerBase>(end);
2471 return o;
2472 }
2473};
2474
2475inline flatbuffers::Offset<BindableLayerBase> CreateBindableLayerBase(
2476 flatbuffers::FlatBufferBuilder &_fbb,
2477 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
2478 int32_t layerBindingId = 0) {
2479 BindableLayerBaseBuilder builder_(_fbb);
2480 builder_.add_layerBindingId(layerBindingId);
2481 builder_.add_base(base);
2482 return builder_.Finish();
2483}
2484
2485/// @deprecated Use ElementwiseUnaryLayer instead
2486struct AbsLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2487 typedef AbsLayerBuilder Builder;
2488 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2489 VT_BASE = 4
2490 };
2491 const armnnSerializer::LayerBase *base() const {
2492 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2493 }
2494 bool Verify(flatbuffers::Verifier &verifier) const {
2495 return VerifyTableStart(verifier) &&
2496 VerifyOffset(verifier, VT_BASE) &&
2497 verifier.VerifyTable(base()) &&
2498 verifier.EndTable();
2499 }
2500};
2501
2502struct AbsLayerBuilder {
2503 typedef AbsLayer Table;
2504 flatbuffers::FlatBufferBuilder &fbb_;
2505 flatbuffers::uoffset_t start_;
2506 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2507 fbb_.AddOffset(AbsLayer::VT_BASE, base);
2508 }
2509 explicit AbsLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2510 : fbb_(_fbb) {
2511 start_ = fbb_.StartTable();
2512 }
2513 AbsLayerBuilder &operator=(const AbsLayerBuilder &);
2514 flatbuffers::Offset<AbsLayer> Finish() {
2515 const auto end = fbb_.EndTable(start_);
2516 auto o = flatbuffers::Offset<AbsLayer>(end);
2517 return o;
2518 }
2519};
2520
2521inline flatbuffers::Offset<AbsLayer> CreateAbsLayer(
2522 flatbuffers::FlatBufferBuilder &_fbb,
2523 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
2524 AbsLayerBuilder builder_(_fbb);
2525 builder_.add_base(base);
2526 return builder_.Finish();
2527}
2528
2529struct ActivationLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2530 typedef ActivationLayerBuilder Builder;
2531 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2532 VT_BASE = 4,
2533 VT_DESCRIPTOR = 6
2534 };
2535 const armnnSerializer::LayerBase *base() const {
2536 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2537 }
2538 const armnnSerializer::ActivationDescriptor *descriptor() const {
2539 return GetPointer<const armnnSerializer::ActivationDescriptor *>(VT_DESCRIPTOR);
2540 }
2541 bool Verify(flatbuffers::Verifier &verifier) const {
2542 return VerifyTableStart(verifier) &&
2543 VerifyOffset(verifier, VT_BASE) &&
2544 verifier.VerifyTable(base()) &&
2545 VerifyOffset(verifier, VT_DESCRIPTOR) &&
2546 verifier.VerifyTable(descriptor()) &&
2547 verifier.EndTable();
2548 }
2549};
2550
2551struct ActivationLayerBuilder {
2552 typedef ActivationLayer Table;
2553 flatbuffers::FlatBufferBuilder &fbb_;
2554 flatbuffers::uoffset_t start_;
2555 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2556 fbb_.AddOffset(ActivationLayer::VT_BASE, base);
2557 }
2558 void add_descriptor(flatbuffers::Offset<armnnSerializer::ActivationDescriptor> descriptor) {
2559 fbb_.AddOffset(ActivationLayer::VT_DESCRIPTOR, descriptor);
2560 }
2561 explicit ActivationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2562 : fbb_(_fbb) {
2563 start_ = fbb_.StartTable();
2564 }
2565 ActivationLayerBuilder &operator=(const ActivationLayerBuilder &);
2566 flatbuffers::Offset<ActivationLayer> Finish() {
2567 const auto end = fbb_.EndTable(start_);
2568 auto o = flatbuffers::Offset<ActivationLayer>(end);
2569 return o;
2570 }
2571};
2572
2573inline flatbuffers::Offset<ActivationLayer> CreateActivationLayer(
2574 flatbuffers::FlatBufferBuilder &_fbb,
2575 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
2576 flatbuffers::Offset<armnnSerializer::ActivationDescriptor> descriptor = 0) {
2577 ActivationLayerBuilder builder_(_fbb);
2578 builder_.add_descriptor(descriptor);
2579 builder_.add_base(base);
2580 return builder_.Finish();
2581}
2582
2583struct ActivationDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2584 typedef ActivationDescriptorBuilder Builder;
2585 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2586 VT_ACTIVATIONFUNCTION = 4,
2587 VT_A = 6,
2588 VT_B = 8
2589 };
2590 armnnSerializer::ActivationFunction activationFunction() const {
2591 return static_cast<armnnSerializer::ActivationFunction>(GetField<int8_t>(VT_ACTIVATIONFUNCTION, 0));
2592 }
2593 float a() const {
2594 return GetField<float>(VT_A, 0.0f);
2595 }
2596 float b() const {
2597 return GetField<float>(VT_B, 0.0f);
2598 }
2599 bool Verify(flatbuffers::Verifier &verifier) const {
2600 return VerifyTableStart(verifier) &&
2601 VerifyField<int8_t>(verifier, VT_ACTIVATIONFUNCTION) &&
2602 VerifyField<float>(verifier, VT_A) &&
2603 VerifyField<float>(verifier, VT_B) &&
2604 verifier.EndTable();
2605 }
2606};
2607
2608struct ActivationDescriptorBuilder {
2609 typedef ActivationDescriptor Table;
2610 flatbuffers::FlatBufferBuilder &fbb_;
2611 flatbuffers::uoffset_t start_;
2612 void add_activationFunction(armnnSerializer::ActivationFunction activationFunction) {
2613 fbb_.AddElement<int8_t>(ActivationDescriptor::VT_ACTIVATIONFUNCTION, static_cast<int8_t>(activationFunction), 0);
2614 }
2615 void add_a(float a) {
2616 fbb_.AddElement<float>(ActivationDescriptor::VT_A, a, 0.0f);
2617 }
2618 void add_b(float b) {
2619 fbb_.AddElement<float>(ActivationDescriptor::VT_B, b, 0.0f);
2620 }
2621 explicit ActivationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2622 : fbb_(_fbb) {
2623 start_ = fbb_.StartTable();
2624 }
2625 ActivationDescriptorBuilder &operator=(const ActivationDescriptorBuilder &);
2626 flatbuffers::Offset<ActivationDescriptor> Finish() {
2627 const auto end = fbb_.EndTable(start_);
2628 auto o = flatbuffers::Offset<ActivationDescriptor>(end);
2629 return o;
2630 }
2631};
2632
2633inline flatbuffers::Offset<ActivationDescriptor> CreateActivationDescriptor(
2634 flatbuffers::FlatBufferBuilder &_fbb,
2635 armnnSerializer::ActivationFunction activationFunction = armnnSerializer::ActivationFunction_Sigmoid,
2636 float a = 0.0f,
2637 float b = 0.0f) {
2638 ActivationDescriptorBuilder builder_(_fbb);
2639 builder_.add_b(b);
2640 builder_.add_a(a);
2641 builder_.add_activationFunction(activationFunction);
2642 return builder_.Finish();
2643}
2644
2645struct AdditionLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2646 typedef AdditionLayerBuilder Builder;
2647 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2648 VT_BASE = 4
2649 };
2650 const armnnSerializer::LayerBase *base() const {
2651 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2652 }
2653 bool Verify(flatbuffers::Verifier &verifier) const {
2654 return VerifyTableStart(verifier) &&
2655 VerifyOffset(verifier, VT_BASE) &&
2656 verifier.VerifyTable(base()) &&
2657 verifier.EndTable();
2658 }
2659};
2660
2661struct AdditionLayerBuilder {
2662 typedef AdditionLayer Table;
2663 flatbuffers::FlatBufferBuilder &fbb_;
2664 flatbuffers::uoffset_t start_;
2665 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2666 fbb_.AddOffset(AdditionLayer::VT_BASE, base);
2667 }
2668 explicit AdditionLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2669 : fbb_(_fbb) {
2670 start_ = fbb_.StartTable();
2671 }
2672 AdditionLayerBuilder &operator=(const AdditionLayerBuilder &);
2673 flatbuffers::Offset<AdditionLayer> Finish() {
2674 const auto end = fbb_.EndTable(start_);
2675 auto o = flatbuffers::Offset<AdditionLayer>(end);
2676 return o;
2677 }
2678};
2679
2680inline flatbuffers::Offset<AdditionLayer> CreateAdditionLayer(
2681 flatbuffers::FlatBufferBuilder &_fbb,
2682 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
2683 AdditionLayerBuilder builder_(_fbb);
2684 builder_.add_base(base);
2685 return builder_.Finish();
2686}
2687
2688struct ArgMinMaxLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2689 typedef ArgMinMaxLayerBuilder Builder;
2690 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2691 VT_BASE = 4,
2692 VT_DESCRIPTOR = 6
2693 };
2694 const armnnSerializer::LayerBase *base() const {
2695 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2696 }
2697 const armnnSerializer::ArgMinMaxDescriptor *descriptor() const {
2698 return GetPointer<const armnnSerializer::ArgMinMaxDescriptor *>(VT_DESCRIPTOR);
2699 }
2700 bool Verify(flatbuffers::Verifier &verifier) const {
2701 return VerifyTableStart(verifier) &&
2702 VerifyOffset(verifier, VT_BASE) &&
2703 verifier.VerifyTable(base()) &&
2704 VerifyOffset(verifier, VT_DESCRIPTOR) &&
2705 verifier.VerifyTable(descriptor()) &&
2706 verifier.EndTable();
2707 }
2708};
2709
2710struct ArgMinMaxLayerBuilder {
2711 typedef ArgMinMaxLayer Table;
2712 flatbuffers::FlatBufferBuilder &fbb_;
2713 flatbuffers::uoffset_t start_;
2714 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2715 fbb_.AddOffset(ArgMinMaxLayer::VT_BASE, base);
2716 }
2717 void add_descriptor(flatbuffers::Offset<armnnSerializer::ArgMinMaxDescriptor> descriptor) {
2718 fbb_.AddOffset(ArgMinMaxLayer::VT_DESCRIPTOR, descriptor);
2719 }
2720 explicit ArgMinMaxLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2721 : fbb_(_fbb) {
2722 start_ = fbb_.StartTable();
2723 }
2724 ArgMinMaxLayerBuilder &operator=(const ArgMinMaxLayerBuilder &);
2725 flatbuffers::Offset<ArgMinMaxLayer> Finish() {
2726 const auto end = fbb_.EndTable(start_);
2727 auto o = flatbuffers::Offset<ArgMinMaxLayer>(end);
2728 return o;
2729 }
2730};
2731
2732inline flatbuffers::Offset<ArgMinMaxLayer> CreateArgMinMaxLayer(
2733 flatbuffers::FlatBufferBuilder &_fbb,
2734 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
2735 flatbuffers::Offset<armnnSerializer::ArgMinMaxDescriptor> descriptor = 0) {
2736 ArgMinMaxLayerBuilder builder_(_fbb);
2737 builder_.add_descriptor(descriptor);
2738 builder_.add_base(base);
2739 return builder_.Finish();
2740}
2741
2742struct ArgMinMaxDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2743 typedef ArgMinMaxDescriptorBuilder Builder;
2744 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2745 VT_ARGMINMAXFUNCTION = 4,
2746 VT_AXIS = 6
2747 };
2748 armnnSerializer::ArgMinMaxFunction argMinMaxFunction() const {
2749 return static_cast<armnnSerializer::ArgMinMaxFunction>(GetField<int8_t>(VT_ARGMINMAXFUNCTION, 0));
2750 }
2751 int32_t axis() const {
2752 return GetField<int32_t>(VT_AXIS, 0);
2753 }
2754 bool Verify(flatbuffers::Verifier &verifier) const {
2755 return VerifyTableStart(verifier) &&
2756 VerifyField<int8_t>(verifier, VT_ARGMINMAXFUNCTION) &&
2757 VerifyField<int32_t>(verifier, VT_AXIS) &&
2758 verifier.EndTable();
2759 }
2760};
2761
2762struct ArgMinMaxDescriptorBuilder {
2763 typedef ArgMinMaxDescriptor Table;
2764 flatbuffers::FlatBufferBuilder &fbb_;
2765 flatbuffers::uoffset_t start_;
2766 void add_argMinMaxFunction(armnnSerializer::ArgMinMaxFunction argMinMaxFunction) {
2767 fbb_.AddElement<int8_t>(ArgMinMaxDescriptor::VT_ARGMINMAXFUNCTION, static_cast<int8_t>(argMinMaxFunction), 0);
2768 }
2769 void add_axis(int32_t axis) {
2770 fbb_.AddElement<int32_t>(ArgMinMaxDescriptor::VT_AXIS, axis, 0);
2771 }
2772 explicit ArgMinMaxDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2773 : fbb_(_fbb) {
2774 start_ = fbb_.StartTable();
2775 }
2776 ArgMinMaxDescriptorBuilder &operator=(const ArgMinMaxDescriptorBuilder &);
2777 flatbuffers::Offset<ArgMinMaxDescriptor> Finish() {
2778 const auto end = fbb_.EndTable(start_);
2779 auto o = flatbuffers::Offset<ArgMinMaxDescriptor>(end);
2780 return o;
2781 }
2782};
2783
2784inline flatbuffers::Offset<ArgMinMaxDescriptor> CreateArgMinMaxDescriptor(
2785 flatbuffers::FlatBufferBuilder &_fbb,
2786 armnnSerializer::ArgMinMaxFunction argMinMaxFunction = armnnSerializer::ArgMinMaxFunction_Min,
2787 int32_t axis = 0) {
2788 ArgMinMaxDescriptorBuilder builder_(_fbb);
2789 builder_.add_axis(axis);
2790 builder_.add_argMinMaxFunction(argMinMaxFunction);
2791 return builder_.Finish();
2792}
2793
mathad01b392e982021-04-07 12:07:30 +01002794struct CastLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2795 typedef CastLayerBuilder Builder;
2796 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2797 VT_BASE = 4
2798 };
2799 const armnnSerializer::LayerBase *base() const {
2800 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2801 }
2802 bool Verify(flatbuffers::Verifier &verifier) const {
2803 return VerifyTableStart(verifier) &&
2804 VerifyOffset(verifier, VT_BASE) &&
2805 verifier.VerifyTable(base()) &&
2806 verifier.EndTable();
2807 }
2808};
2809
2810struct CastLayerBuilder {
2811 typedef CastLayer Table;
2812 flatbuffers::FlatBufferBuilder &fbb_;
2813 flatbuffers::uoffset_t start_;
2814 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2815 fbb_.AddOffset(CastLayer::VT_BASE, base);
2816 }
2817 explicit CastLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2818 : fbb_(_fbb) {
2819 start_ = fbb_.StartTable();
2820 }
2821 CastLayerBuilder &operator=(const CastLayerBuilder &);
2822 flatbuffers::Offset<CastLayer> Finish() {
2823 const auto end = fbb_.EndTable(start_);
2824 auto o = flatbuffers::Offset<CastLayer>(end);
2825 return o;
2826 }
2827};
2828
2829inline flatbuffers::Offset<CastLayer> CreateCastLayer(
2830 flatbuffers::FlatBufferBuilder &_fbb,
2831 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
2832 CastLayerBuilder builder_(_fbb);
2833 builder_.add_base(base);
2834 return builder_.Finish();
2835}
2836
Simon Obute51f67772021-09-03 15:50:13 +01002837struct ChannelShuffleLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2838 typedef ChannelShuffleLayerBuilder Builder;
2839 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2840 VT_BASE = 4,
2841 VT_DESCRIPTOR = 6
2842 };
2843 const armnnSerializer::LayerBase *base() const {
2844 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2845 }
2846 const armnnSerializer::ChannelShuffleDescriptor *descriptor() const {
2847 return GetPointer<const armnnSerializer::ChannelShuffleDescriptor *>(VT_DESCRIPTOR);
2848 }
2849 bool Verify(flatbuffers::Verifier &verifier) const {
2850 return VerifyTableStart(verifier) &&
2851 VerifyOffset(verifier, VT_BASE) &&
2852 verifier.VerifyTable(base()) &&
2853 VerifyOffset(verifier, VT_DESCRIPTOR) &&
2854 verifier.VerifyTable(descriptor()) &&
2855 verifier.EndTable();
2856 }
2857};
2858
2859struct ChannelShuffleLayerBuilder {
2860 typedef ChannelShuffleLayer Table;
2861 flatbuffers::FlatBufferBuilder &fbb_;
2862 flatbuffers::uoffset_t start_;
2863 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
2864 fbb_.AddOffset(ChannelShuffleLayer::VT_BASE, base);
2865 }
2866 void add_descriptor(flatbuffers::Offset<armnnSerializer::ChannelShuffleDescriptor> descriptor) {
2867 fbb_.AddOffset(ChannelShuffleLayer::VT_DESCRIPTOR, descriptor);
2868 }
2869 explicit ChannelShuffleLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2870 : fbb_(_fbb) {
2871 start_ = fbb_.StartTable();
2872 }
2873 ChannelShuffleLayerBuilder &operator=(const ChannelShuffleLayerBuilder &);
2874 flatbuffers::Offset<ChannelShuffleLayer> Finish() {
2875 const auto end = fbb_.EndTable(start_);
2876 auto o = flatbuffers::Offset<ChannelShuffleLayer>(end);
2877 return o;
2878 }
2879};
2880
2881inline flatbuffers::Offset<ChannelShuffleLayer> CreateChannelShuffleLayer(
2882 flatbuffers::FlatBufferBuilder &_fbb,
2883 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
2884 flatbuffers::Offset<armnnSerializer::ChannelShuffleDescriptor> descriptor = 0) {
2885 ChannelShuffleLayerBuilder builder_(_fbb);
2886 builder_.add_descriptor(descriptor);
2887 builder_.add_base(base);
2888 return builder_.Finish();
2889}
2890
2891struct ChannelShuffleDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2892 typedef ChannelShuffleDescriptorBuilder Builder;
2893 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2894 VT_AXIS = 4,
2895 VT_NUMGROUPS = 6
2896 };
2897 uint32_t axis() const {
2898 return GetField<uint32_t>(VT_AXIS, 0);
2899 }
2900 uint32_t numGroups() const {
2901 return GetField<uint32_t>(VT_NUMGROUPS, 0);
2902 }
2903 bool Verify(flatbuffers::Verifier &verifier) const {
2904 return VerifyTableStart(verifier) &&
2905 VerifyField<uint32_t>(verifier, VT_AXIS) &&
2906 VerifyField<uint32_t>(verifier, VT_NUMGROUPS) &&
2907 verifier.EndTable();
2908 }
2909};
2910
2911struct ChannelShuffleDescriptorBuilder {
2912 typedef ChannelShuffleDescriptor Table;
2913 flatbuffers::FlatBufferBuilder &fbb_;
2914 flatbuffers::uoffset_t start_;
2915 void add_axis(uint32_t axis) {
2916 fbb_.AddElement<uint32_t>(ChannelShuffleDescriptor::VT_AXIS, axis, 0);
2917 }
2918 void add_numGroups(uint32_t numGroups) {
2919 fbb_.AddElement<uint32_t>(ChannelShuffleDescriptor::VT_NUMGROUPS, numGroups, 0);
2920 }
2921 explicit ChannelShuffleDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2922 : fbb_(_fbb) {
2923 start_ = fbb_.StartTable();
2924 }
2925 ChannelShuffleDescriptorBuilder &operator=(const ChannelShuffleDescriptorBuilder &);
2926 flatbuffers::Offset<ChannelShuffleDescriptor> Finish() {
2927 const auto end = fbb_.EndTable(start_);
2928 auto o = flatbuffers::Offset<ChannelShuffleDescriptor>(end);
2929 return o;
2930 }
2931};
2932
2933inline flatbuffers::Offset<ChannelShuffleDescriptor> CreateChannelShuffleDescriptor(
2934 flatbuffers::FlatBufferBuilder &_fbb,
2935 uint32_t axis = 0,
2936 uint32_t numGroups = 0) {
2937 ChannelShuffleDescriptorBuilder builder_(_fbb);
2938 builder_.add_numGroups(numGroups);
2939 builder_.add_axis(axis);
2940 return builder_.Finish();
2941}
2942
Sadik Armagan97bf84f2021-01-13 15:06:38 +00002943struct ComparisonDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2944 typedef ComparisonDescriptorBuilder Builder;
2945 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2946 VT_OPERATION = 4
2947 };
2948 armnnSerializer::ComparisonOperation operation() const {
2949 return static_cast<armnnSerializer::ComparisonOperation>(GetField<int8_t>(VT_OPERATION, 0));
2950 }
2951 bool Verify(flatbuffers::Verifier &verifier) const {
2952 return VerifyTableStart(verifier) &&
2953 VerifyField<int8_t>(verifier, VT_OPERATION) &&
2954 verifier.EndTable();
2955 }
2956};
2957
2958struct ComparisonDescriptorBuilder {
2959 typedef ComparisonDescriptor Table;
2960 flatbuffers::FlatBufferBuilder &fbb_;
2961 flatbuffers::uoffset_t start_;
2962 void add_operation(armnnSerializer::ComparisonOperation operation) {
2963 fbb_.AddElement<int8_t>(ComparisonDescriptor::VT_OPERATION, static_cast<int8_t>(operation), 0);
2964 }
2965 explicit ComparisonDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2966 : fbb_(_fbb) {
2967 start_ = fbb_.StartTable();
2968 }
2969 ComparisonDescriptorBuilder &operator=(const ComparisonDescriptorBuilder &);
2970 flatbuffers::Offset<ComparisonDescriptor> Finish() {
2971 const auto end = fbb_.EndTable(start_);
2972 auto o = flatbuffers::Offset<ComparisonDescriptor>(end);
2973 return o;
2974 }
2975};
2976
2977inline flatbuffers::Offset<ComparisonDescriptor> CreateComparisonDescriptor(
2978 flatbuffers::FlatBufferBuilder &_fbb,
2979 armnnSerializer::ComparisonOperation operation = armnnSerializer::ComparisonOperation_Equal) {
2980 ComparisonDescriptorBuilder builder_(_fbb);
2981 builder_.add_operation(operation);
2982 return builder_.Finish();
2983}
2984
2985struct ComparisonLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2986 typedef ComparisonLayerBuilder Builder;
2987 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2988 VT_BASE = 4,
2989 VT_DESCRIPTOR = 6
2990 };
2991 const armnnSerializer::LayerBase *base() const {
2992 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
2993 }
2994 const armnnSerializer::ComparisonDescriptor *descriptor() const {
2995 return GetPointer<const armnnSerializer::ComparisonDescriptor *>(VT_DESCRIPTOR);
2996 }
2997 bool Verify(flatbuffers::Verifier &verifier) const {
2998 return VerifyTableStart(verifier) &&
2999 VerifyOffset(verifier, VT_BASE) &&
3000 verifier.VerifyTable(base()) &&
3001 VerifyOffset(verifier, VT_DESCRIPTOR) &&
3002 verifier.VerifyTable(descriptor()) &&
3003 verifier.EndTable();
3004 }
3005};
3006
3007struct ComparisonLayerBuilder {
3008 typedef ComparisonLayer Table;
3009 flatbuffers::FlatBufferBuilder &fbb_;
3010 flatbuffers::uoffset_t start_;
3011 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3012 fbb_.AddOffset(ComparisonLayer::VT_BASE, base);
3013 }
3014 void add_descriptor(flatbuffers::Offset<armnnSerializer::ComparisonDescriptor> descriptor) {
3015 fbb_.AddOffset(ComparisonLayer::VT_DESCRIPTOR, descriptor);
3016 }
3017 explicit ComparisonLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3018 : fbb_(_fbb) {
3019 start_ = fbb_.StartTable();
3020 }
3021 ComparisonLayerBuilder &operator=(const ComparisonLayerBuilder &);
3022 flatbuffers::Offset<ComparisonLayer> Finish() {
3023 const auto end = fbb_.EndTable(start_);
3024 auto o = flatbuffers::Offset<ComparisonLayer>(end);
3025 return o;
3026 }
3027};
3028
3029inline flatbuffers::Offset<ComparisonLayer> CreateComparisonLayer(
3030 flatbuffers::FlatBufferBuilder &_fbb,
3031 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3032 flatbuffers::Offset<armnnSerializer::ComparisonDescriptor> descriptor = 0) {
3033 ComparisonLayerBuilder builder_(_fbb);
3034 builder_.add_descriptor(descriptor);
3035 builder_.add_base(base);
3036 return builder_.Finish();
3037}
3038
3039struct ConstantLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3040 typedef ConstantLayerBuilder Builder;
3041 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3042 VT_BASE = 4,
3043 VT_INPUT = 6
3044 };
3045 const armnnSerializer::LayerBase *base() const {
3046 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3047 }
3048 const armnnSerializer::ConstTensor *input() const {
3049 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUT);
3050 }
3051 bool Verify(flatbuffers::Verifier &verifier) const {
3052 return VerifyTableStart(verifier) &&
3053 VerifyOffset(verifier, VT_BASE) &&
3054 verifier.VerifyTable(base()) &&
3055 VerifyOffset(verifier, VT_INPUT) &&
3056 verifier.VerifyTable(input()) &&
3057 verifier.EndTable();
3058 }
3059};
3060
3061struct ConstantLayerBuilder {
3062 typedef ConstantLayer Table;
3063 flatbuffers::FlatBufferBuilder &fbb_;
3064 flatbuffers::uoffset_t start_;
3065 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3066 fbb_.AddOffset(ConstantLayer::VT_BASE, base);
3067 }
3068 void add_input(flatbuffers::Offset<armnnSerializer::ConstTensor> input) {
3069 fbb_.AddOffset(ConstantLayer::VT_INPUT, input);
3070 }
3071 explicit ConstantLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3072 : fbb_(_fbb) {
3073 start_ = fbb_.StartTable();
3074 }
3075 ConstantLayerBuilder &operator=(const ConstantLayerBuilder &);
3076 flatbuffers::Offset<ConstantLayer> Finish() {
3077 const auto end = fbb_.EndTable(start_);
3078 auto o = flatbuffers::Offset<ConstantLayer>(end);
3079 return o;
3080 }
3081};
3082
3083inline flatbuffers::Offset<ConstantLayer> CreateConstantLayer(
3084 flatbuffers::FlatBufferBuilder &_fbb,
3085 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3086 flatbuffers::Offset<armnnSerializer::ConstTensor> input = 0) {
3087 ConstantLayerBuilder builder_(_fbb);
3088 builder_.add_input(input);
3089 builder_.add_base(base);
3090 return builder_.Finish();
3091}
3092
3093struct Convolution2dLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3094 typedef Convolution2dLayerBuilder Builder;
3095 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3096 VT_BASE = 4,
3097 VT_DESCRIPTOR = 6,
3098 VT_WEIGHTS = 8,
3099 VT_BIASES = 10
3100 };
3101 const armnnSerializer::LayerBase *base() const {
3102 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3103 }
3104 const armnnSerializer::Convolution2dDescriptor *descriptor() const {
3105 return GetPointer<const armnnSerializer::Convolution2dDescriptor *>(VT_DESCRIPTOR);
3106 }
3107 const armnnSerializer::ConstTensor *weights() const {
3108 return GetPointer<const armnnSerializer::ConstTensor *>(VT_WEIGHTS);
3109 }
3110 const armnnSerializer::ConstTensor *biases() const {
3111 return GetPointer<const armnnSerializer::ConstTensor *>(VT_BIASES);
3112 }
3113 bool Verify(flatbuffers::Verifier &verifier) const {
3114 return VerifyTableStart(verifier) &&
3115 VerifyOffset(verifier, VT_BASE) &&
3116 verifier.VerifyTable(base()) &&
3117 VerifyOffset(verifier, VT_DESCRIPTOR) &&
3118 verifier.VerifyTable(descriptor()) &&
3119 VerifyOffset(verifier, VT_WEIGHTS) &&
3120 verifier.VerifyTable(weights()) &&
3121 VerifyOffset(verifier, VT_BIASES) &&
3122 verifier.VerifyTable(biases()) &&
3123 verifier.EndTable();
3124 }
3125};
3126
3127struct Convolution2dLayerBuilder {
3128 typedef Convolution2dLayer Table;
3129 flatbuffers::FlatBufferBuilder &fbb_;
3130 flatbuffers::uoffset_t start_;
3131 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3132 fbb_.AddOffset(Convolution2dLayer::VT_BASE, base);
3133 }
3134 void add_descriptor(flatbuffers::Offset<armnnSerializer::Convolution2dDescriptor> descriptor) {
3135 fbb_.AddOffset(Convolution2dLayer::VT_DESCRIPTOR, descriptor);
3136 }
3137 void add_weights(flatbuffers::Offset<armnnSerializer::ConstTensor> weights) {
3138 fbb_.AddOffset(Convolution2dLayer::VT_WEIGHTS, weights);
3139 }
3140 void add_biases(flatbuffers::Offset<armnnSerializer::ConstTensor> biases) {
3141 fbb_.AddOffset(Convolution2dLayer::VT_BIASES, biases);
3142 }
3143 explicit Convolution2dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3144 : fbb_(_fbb) {
3145 start_ = fbb_.StartTable();
3146 }
3147 Convolution2dLayerBuilder &operator=(const Convolution2dLayerBuilder &);
3148 flatbuffers::Offset<Convolution2dLayer> Finish() {
3149 const auto end = fbb_.EndTable(start_);
3150 auto o = flatbuffers::Offset<Convolution2dLayer>(end);
3151 return o;
3152 }
3153};
3154
3155inline flatbuffers::Offset<Convolution2dLayer> CreateConvolution2dLayer(
3156 flatbuffers::FlatBufferBuilder &_fbb,
3157 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3158 flatbuffers::Offset<armnnSerializer::Convolution2dDescriptor> descriptor = 0,
3159 flatbuffers::Offset<armnnSerializer::ConstTensor> weights = 0,
3160 flatbuffers::Offset<armnnSerializer::ConstTensor> biases = 0) {
3161 Convolution2dLayerBuilder builder_(_fbb);
3162 builder_.add_biases(biases);
3163 builder_.add_weights(weights);
3164 builder_.add_descriptor(descriptor);
3165 builder_.add_base(base);
3166 return builder_.Finish();
3167}
3168
3169struct Convolution2dDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3170 typedef Convolution2dDescriptorBuilder Builder;
3171 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3172 VT_PADLEFT = 4,
3173 VT_PADRIGHT = 6,
3174 VT_PADTOP = 8,
3175 VT_PADBOTTOM = 10,
3176 VT_STRIDEX = 12,
3177 VT_STRIDEY = 14,
3178 VT_DILATIONX = 16,
3179 VT_DILATIONY = 18,
3180 VT_BIASENABLED = 20,
3181 VT_DATALAYOUT = 22
3182 };
3183 uint32_t padLeft() const {
3184 return GetField<uint32_t>(VT_PADLEFT, 0);
3185 }
3186 uint32_t padRight() const {
3187 return GetField<uint32_t>(VT_PADRIGHT, 0);
3188 }
3189 uint32_t padTop() const {
3190 return GetField<uint32_t>(VT_PADTOP, 0);
3191 }
3192 uint32_t padBottom() const {
3193 return GetField<uint32_t>(VT_PADBOTTOM, 0);
3194 }
3195 uint32_t strideX() const {
3196 return GetField<uint32_t>(VT_STRIDEX, 0);
3197 }
3198 uint32_t strideY() const {
3199 return GetField<uint32_t>(VT_STRIDEY, 0);
3200 }
3201 uint32_t dilationX() const {
3202 return GetField<uint32_t>(VT_DILATIONX, 1);
3203 }
3204 uint32_t dilationY() const {
3205 return GetField<uint32_t>(VT_DILATIONY, 1);
3206 }
3207 bool biasEnabled() const {
3208 return GetField<uint8_t>(VT_BIASENABLED, 0) != 0;
3209 }
3210 armnnSerializer::DataLayout dataLayout() const {
3211 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 1));
3212 }
3213 bool Verify(flatbuffers::Verifier &verifier) const {
3214 return VerifyTableStart(verifier) &&
3215 VerifyField<uint32_t>(verifier, VT_PADLEFT) &&
3216 VerifyField<uint32_t>(verifier, VT_PADRIGHT) &&
3217 VerifyField<uint32_t>(verifier, VT_PADTOP) &&
3218 VerifyField<uint32_t>(verifier, VT_PADBOTTOM) &&
3219 VerifyField<uint32_t>(verifier, VT_STRIDEX) &&
3220 VerifyField<uint32_t>(verifier, VT_STRIDEY) &&
3221 VerifyField<uint32_t>(verifier, VT_DILATIONX) &&
3222 VerifyField<uint32_t>(verifier, VT_DILATIONY) &&
3223 VerifyField<uint8_t>(verifier, VT_BIASENABLED) &&
3224 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
3225 verifier.EndTable();
3226 }
3227};
3228
3229struct Convolution2dDescriptorBuilder {
3230 typedef Convolution2dDescriptor Table;
3231 flatbuffers::FlatBufferBuilder &fbb_;
3232 flatbuffers::uoffset_t start_;
3233 void add_padLeft(uint32_t padLeft) {
3234 fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_PADLEFT, padLeft, 0);
3235 }
3236 void add_padRight(uint32_t padRight) {
3237 fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_PADRIGHT, padRight, 0);
3238 }
3239 void add_padTop(uint32_t padTop) {
3240 fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_PADTOP, padTop, 0);
3241 }
3242 void add_padBottom(uint32_t padBottom) {
3243 fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_PADBOTTOM, padBottom, 0);
3244 }
3245 void add_strideX(uint32_t strideX) {
3246 fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_STRIDEX, strideX, 0);
3247 }
3248 void add_strideY(uint32_t strideY) {
3249 fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_STRIDEY, strideY, 0);
3250 }
3251 void add_dilationX(uint32_t dilationX) {
3252 fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_DILATIONX, dilationX, 1);
3253 }
3254 void add_dilationY(uint32_t dilationY) {
3255 fbb_.AddElement<uint32_t>(Convolution2dDescriptor::VT_DILATIONY, dilationY, 1);
3256 }
3257 void add_biasEnabled(bool biasEnabled) {
3258 fbb_.AddElement<uint8_t>(Convolution2dDescriptor::VT_BIASENABLED, static_cast<uint8_t>(biasEnabled), 0);
3259 }
3260 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
3261 fbb_.AddElement<int8_t>(Convolution2dDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 1);
3262 }
3263 explicit Convolution2dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3264 : fbb_(_fbb) {
3265 start_ = fbb_.StartTable();
3266 }
3267 Convolution2dDescriptorBuilder &operator=(const Convolution2dDescriptorBuilder &);
3268 flatbuffers::Offset<Convolution2dDescriptor> Finish() {
3269 const auto end = fbb_.EndTable(start_);
3270 auto o = flatbuffers::Offset<Convolution2dDescriptor>(end);
3271 return o;
3272 }
3273};
3274
3275inline flatbuffers::Offset<Convolution2dDescriptor> CreateConvolution2dDescriptor(
3276 flatbuffers::FlatBufferBuilder &_fbb,
3277 uint32_t padLeft = 0,
3278 uint32_t padRight = 0,
3279 uint32_t padTop = 0,
3280 uint32_t padBottom = 0,
3281 uint32_t strideX = 0,
3282 uint32_t strideY = 0,
3283 uint32_t dilationX = 1,
3284 uint32_t dilationY = 1,
3285 bool biasEnabled = false,
3286 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NCHW) {
3287 Convolution2dDescriptorBuilder builder_(_fbb);
3288 builder_.add_dilationY(dilationY);
3289 builder_.add_dilationX(dilationX);
3290 builder_.add_strideY(strideY);
3291 builder_.add_strideX(strideX);
3292 builder_.add_padBottom(padBottom);
3293 builder_.add_padTop(padTop);
3294 builder_.add_padRight(padRight);
3295 builder_.add_padLeft(padLeft);
3296 builder_.add_dataLayout(dataLayout);
3297 builder_.add_biasEnabled(biasEnabled);
3298 return builder_.Finish();
3299}
3300
Matthew Sloyanb63a3112021-09-08 13:05:51 +01003301struct Convolution3dLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3302 typedef Convolution3dLayerBuilder Builder;
3303 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3304 VT_BASE = 4,
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +01003305 VT_DESCRIPTOR = 6
Matthew Sloyanb63a3112021-09-08 13:05:51 +01003306 };
3307 const armnnSerializer::LayerBase *base() const {
3308 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3309 }
3310 const armnnSerializer::Convolution3dDescriptor *descriptor() const {
3311 return GetPointer<const armnnSerializer::Convolution3dDescriptor *>(VT_DESCRIPTOR);
3312 }
Matthew Sloyanb63a3112021-09-08 13:05:51 +01003313 bool Verify(flatbuffers::Verifier &verifier) const {
3314 return VerifyTableStart(verifier) &&
3315 VerifyOffset(verifier, VT_BASE) &&
3316 verifier.VerifyTable(base()) &&
3317 VerifyOffset(verifier, VT_DESCRIPTOR) &&
3318 verifier.VerifyTable(descriptor()) &&
Matthew Sloyanb63a3112021-09-08 13:05:51 +01003319 verifier.EndTable();
3320 }
3321};
3322
3323struct Convolution3dLayerBuilder {
3324 typedef Convolution3dLayer Table;
3325 flatbuffers::FlatBufferBuilder &fbb_;
3326 flatbuffers::uoffset_t start_;
3327 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3328 fbb_.AddOffset(Convolution3dLayer::VT_BASE, base);
3329 }
3330 void add_descriptor(flatbuffers::Offset<armnnSerializer::Convolution3dDescriptor> descriptor) {
3331 fbb_.AddOffset(Convolution3dLayer::VT_DESCRIPTOR, descriptor);
3332 }
Matthew Sloyanb63a3112021-09-08 13:05:51 +01003333 explicit Convolution3dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3334 : fbb_(_fbb) {
3335 start_ = fbb_.StartTable();
3336 }
3337 Convolution3dLayerBuilder &operator=(const Convolution3dLayerBuilder &);
3338 flatbuffers::Offset<Convolution3dLayer> Finish() {
3339 const auto end = fbb_.EndTable(start_);
3340 auto o = flatbuffers::Offset<Convolution3dLayer>(end);
3341 return o;
3342 }
3343};
3344
3345inline flatbuffers::Offset<Convolution3dLayer> CreateConvolution3dLayer(
3346 flatbuffers::FlatBufferBuilder &_fbb,
3347 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +01003348 flatbuffers::Offset<armnnSerializer::Convolution3dDescriptor> descriptor = 0) {
Matthew Sloyanb63a3112021-09-08 13:05:51 +01003349 Convolution3dLayerBuilder builder_(_fbb);
Matthew Sloyanb63a3112021-09-08 13:05:51 +01003350 builder_.add_descriptor(descriptor);
3351 builder_.add_base(base);
3352 return builder_.Finish();
3353}
3354
3355struct Convolution3dDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3356 typedef Convolution3dDescriptorBuilder Builder;
3357 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3358 VT_PADLEFT = 4,
3359 VT_PADRIGHT = 6,
3360 VT_PADTOP = 8,
3361 VT_PADBOTTOM = 10,
3362 VT_PADFRONT = 12,
3363 VT_PADBACK = 14,
3364 VT_STRIDEX = 16,
3365 VT_STRIDEY = 18,
3366 VT_STRIDEZ = 20,
3367 VT_DILATIONX = 22,
3368 VT_DILATIONY = 24,
3369 VT_DILATIONZ = 26,
3370 VT_BIASENABLED = 28,
3371 VT_DATALAYOUT = 30
3372 };
3373 uint32_t padLeft() const {
3374 return GetField<uint32_t>(VT_PADLEFT, 0);
3375 }
3376 uint32_t padRight() const {
3377 return GetField<uint32_t>(VT_PADRIGHT, 0);
3378 }
3379 uint32_t padTop() const {
3380 return GetField<uint32_t>(VT_PADTOP, 0);
3381 }
3382 uint32_t padBottom() const {
3383 return GetField<uint32_t>(VT_PADBOTTOM, 0);
3384 }
3385 uint32_t padFront() const {
3386 return GetField<uint32_t>(VT_PADFRONT, 0);
3387 }
3388 uint32_t padBack() const {
3389 return GetField<uint32_t>(VT_PADBACK, 0);
3390 }
3391 uint32_t strideX() const {
3392 return GetField<uint32_t>(VT_STRIDEX, 0);
3393 }
3394 uint32_t strideY() const {
3395 return GetField<uint32_t>(VT_STRIDEY, 0);
3396 }
3397 uint32_t strideZ() const {
3398 return GetField<uint32_t>(VT_STRIDEZ, 0);
3399 }
3400 uint32_t dilationX() const {
3401 return GetField<uint32_t>(VT_DILATIONX, 1);
3402 }
3403 uint32_t dilationY() const {
3404 return GetField<uint32_t>(VT_DILATIONY, 1);
3405 }
3406 uint32_t dilationZ() const {
3407 return GetField<uint32_t>(VT_DILATIONZ, 1);
3408 }
3409 bool biasEnabled() const {
3410 return GetField<uint8_t>(VT_BIASENABLED, 0) != 0;
3411 }
3412 armnnSerializer::DataLayout dataLayout() const {
3413 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 2));
3414 }
3415 bool Verify(flatbuffers::Verifier &verifier) const {
3416 return VerifyTableStart(verifier) &&
3417 VerifyField<uint32_t>(verifier, VT_PADLEFT) &&
3418 VerifyField<uint32_t>(verifier, VT_PADRIGHT) &&
3419 VerifyField<uint32_t>(verifier, VT_PADTOP) &&
3420 VerifyField<uint32_t>(verifier, VT_PADBOTTOM) &&
3421 VerifyField<uint32_t>(verifier, VT_PADFRONT) &&
3422 VerifyField<uint32_t>(verifier, VT_PADBACK) &&
3423 VerifyField<uint32_t>(verifier, VT_STRIDEX) &&
3424 VerifyField<uint32_t>(verifier, VT_STRIDEY) &&
3425 VerifyField<uint32_t>(verifier, VT_STRIDEZ) &&
3426 VerifyField<uint32_t>(verifier, VT_DILATIONX) &&
3427 VerifyField<uint32_t>(verifier, VT_DILATIONY) &&
3428 VerifyField<uint32_t>(verifier, VT_DILATIONZ) &&
3429 VerifyField<uint8_t>(verifier, VT_BIASENABLED) &&
3430 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
3431 verifier.EndTable();
3432 }
3433};
3434
3435struct Convolution3dDescriptorBuilder {
3436 typedef Convolution3dDescriptor Table;
3437 flatbuffers::FlatBufferBuilder &fbb_;
3438 flatbuffers::uoffset_t start_;
3439 void add_padLeft(uint32_t padLeft) {
3440 fbb_.AddElement<uint32_t>(Convolution3dDescriptor::VT_PADLEFT, padLeft, 0);
3441 }
3442 void add_padRight(uint32_t padRight) {
3443 fbb_.AddElement<uint32_t>(Convolution3dDescriptor::VT_PADRIGHT, padRight, 0);
3444 }
3445 void add_padTop(uint32_t padTop) {
3446 fbb_.AddElement<uint32_t>(Convolution3dDescriptor::VT_PADTOP, padTop, 0);
3447 }
3448 void add_padBottom(uint32_t padBottom) {
3449 fbb_.AddElement<uint32_t>(Convolution3dDescriptor::VT_PADBOTTOM, padBottom, 0);
3450 }
3451 void add_padFront(uint32_t padFront) {
3452 fbb_.AddElement<uint32_t>(Convolution3dDescriptor::VT_PADFRONT, padFront, 0);
3453 }
3454 void add_padBack(uint32_t padBack) {
3455 fbb_.AddElement<uint32_t>(Convolution3dDescriptor::VT_PADBACK, padBack, 0);
3456 }
3457 void add_strideX(uint32_t strideX) {
3458 fbb_.AddElement<uint32_t>(Convolution3dDescriptor::VT_STRIDEX, strideX, 0);
3459 }
3460 void add_strideY(uint32_t strideY) {
3461 fbb_.AddElement<uint32_t>(Convolution3dDescriptor::VT_STRIDEY, strideY, 0);
3462 }
3463 void add_strideZ(uint32_t strideZ) {
3464 fbb_.AddElement<uint32_t>(Convolution3dDescriptor::VT_STRIDEZ, strideZ, 0);
3465 }
3466 void add_dilationX(uint32_t dilationX) {
3467 fbb_.AddElement<uint32_t>(Convolution3dDescriptor::VT_DILATIONX, dilationX, 1);
3468 }
3469 void add_dilationY(uint32_t dilationY) {
3470 fbb_.AddElement<uint32_t>(Convolution3dDescriptor::VT_DILATIONY, dilationY, 1);
3471 }
3472 void add_dilationZ(uint32_t dilationZ) {
3473 fbb_.AddElement<uint32_t>(Convolution3dDescriptor::VT_DILATIONZ, dilationZ, 1);
3474 }
3475 void add_biasEnabled(bool biasEnabled) {
3476 fbb_.AddElement<uint8_t>(Convolution3dDescriptor::VT_BIASENABLED, static_cast<uint8_t>(biasEnabled), 0);
3477 }
3478 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
3479 fbb_.AddElement<int8_t>(Convolution3dDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 2);
3480 }
3481 explicit Convolution3dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3482 : fbb_(_fbb) {
3483 start_ = fbb_.StartTable();
3484 }
3485 Convolution3dDescriptorBuilder &operator=(const Convolution3dDescriptorBuilder &);
3486 flatbuffers::Offset<Convolution3dDescriptor> Finish() {
3487 const auto end = fbb_.EndTable(start_);
3488 auto o = flatbuffers::Offset<Convolution3dDescriptor>(end);
3489 return o;
3490 }
3491};
3492
3493inline flatbuffers::Offset<Convolution3dDescriptor> CreateConvolution3dDescriptor(
3494 flatbuffers::FlatBufferBuilder &_fbb,
3495 uint32_t padLeft = 0,
3496 uint32_t padRight = 0,
3497 uint32_t padTop = 0,
3498 uint32_t padBottom = 0,
3499 uint32_t padFront = 0,
3500 uint32_t padBack = 0,
3501 uint32_t strideX = 0,
3502 uint32_t strideY = 0,
3503 uint32_t strideZ = 0,
3504 uint32_t dilationX = 1,
3505 uint32_t dilationY = 1,
3506 uint32_t dilationZ = 1,
3507 bool biasEnabled = false,
3508 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NDHWC) {
3509 Convolution3dDescriptorBuilder builder_(_fbb);
3510 builder_.add_dilationZ(dilationZ);
3511 builder_.add_dilationY(dilationY);
3512 builder_.add_dilationX(dilationX);
3513 builder_.add_strideZ(strideZ);
3514 builder_.add_strideY(strideY);
3515 builder_.add_strideX(strideX);
3516 builder_.add_padBack(padBack);
3517 builder_.add_padFront(padFront);
3518 builder_.add_padBottom(padBottom);
3519 builder_.add_padTop(padTop);
3520 builder_.add_padRight(padRight);
3521 builder_.add_padLeft(padLeft);
3522 builder_.add_dataLayout(dataLayout);
3523 builder_.add_biasEnabled(biasEnabled);
3524 return builder_.Finish();
3525}
3526
Sadik Armagan97bf84f2021-01-13 15:06:38 +00003527struct DepthToSpaceLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3528 typedef DepthToSpaceLayerBuilder Builder;
3529 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3530 VT_BASE = 4,
3531 VT_DESCRIPTOR = 6
3532 };
3533 const armnnSerializer::LayerBase *base() const {
3534 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3535 }
3536 const armnnSerializer::DepthToSpaceDescriptor *descriptor() const {
3537 return GetPointer<const armnnSerializer::DepthToSpaceDescriptor *>(VT_DESCRIPTOR);
3538 }
3539 bool Verify(flatbuffers::Verifier &verifier) const {
3540 return VerifyTableStart(verifier) &&
3541 VerifyOffset(verifier, VT_BASE) &&
3542 verifier.VerifyTable(base()) &&
3543 VerifyOffset(verifier, VT_DESCRIPTOR) &&
3544 verifier.VerifyTable(descriptor()) &&
3545 verifier.EndTable();
3546 }
3547};
3548
3549struct DepthToSpaceLayerBuilder {
3550 typedef DepthToSpaceLayer Table;
3551 flatbuffers::FlatBufferBuilder &fbb_;
3552 flatbuffers::uoffset_t start_;
3553 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3554 fbb_.AddOffset(DepthToSpaceLayer::VT_BASE, base);
3555 }
3556 void add_descriptor(flatbuffers::Offset<armnnSerializer::DepthToSpaceDescriptor> descriptor) {
3557 fbb_.AddOffset(DepthToSpaceLayer::VT_DESCRIPTOR, descriptor);
3558 }
3559 explicit DepthToSpaceLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3560 : fbb_(_fbb) {
3561 start_ = fbb_.StartTable();
3562 }
3563 DepthToSpaceLayerBuilder &operator=(const DepthToSpaceLayerBuilder &);
3564 flatbuffers::Offset<DepthToSpaceLayer> Finish() {
3565 const auto end = fbb_.EndTable(start_);
3566 auto o = flatbuffers::Offset<DepthToSpaceLayer>(end);
3567 return o;
3568 }
3569};
3570
3571inline flatbuffers::Offset<DepthToSpaceLayer> CreateDepthToSpaceLayer(
3572 flatbuffers::FlatBufferBuilder &_fbb,
3573 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3574 flatbuffers::Offset<armnnSerializer::DepthToSpaceDescriptor> descriptor = 0) {
3575 DepthToSpaceLayerBuilder builder_(_fbb);
3576 builder_.add_descriptor(descriptor);
3577 builder_.add_base(base);
3578 return builder_.Finish();
3579}
3580
3581struct DepthToSpaceDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3582 typedef DepthToSpaceDescriptorBuilder Builder;
3583 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3584 VT_BLOCKSIZE = 4,
3585 VT_DATALAYOUT = 6
3586 };
3587 uint32_t blockSize() const {
3588 return GetField<uint32_t>(VT_BLOCKSIZE, 0);
3589 }
3590 armnnSerializer::DataLayout dataLayout() const {
3591 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
3592 }
3593 bool Verify(flatbuffers::Verifier &verifier) const {
3594 return VerifyTableStart(verifier) &&
3595 VerifyField<uint32_t>(verifier, VT_BLOCKSIZE) &&
3596 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
3597 verifier.EndTable();
3598 }
3599};
3600
3601struct DepthToSpaceDescriptorBuilder {
3602 typedef DepthToSpaceDescriptor Table;
3603 flatbuffers::FlatBufferBuilder &fbb_;
3604 flatbuffers::uoffset_t start_;
3605 void add_blockSize(uint32_t blockSize) {
3606 fbb_.AddElement<uint32_t>(DepthToSpaceDescriptor::VT_BLOCKSIZE, blockSize, 0);
3607 }
3608 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
3609 fbb_.AddElement<int8_t>(DepthToSpaceDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
3610 }
3611 explicit DepthToSpaceDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3612 : fbb_(_fbb) {
3613 start_ = fbb_.StartTable();
3614 }
3615 DepthToSpaceDescriptorBuilder &operator=(const DepthToSpaceDescriptorBuilder &);
3616 flatbuffers::Offset<DepthToSpaceDescriptor> Finish() {
3617 const auto end = fbb_.EndTable(start_);
3618 auto o = flatbuffers::Offset<DepthToSpaceDescriptor>(end);
3619 return o;
3620 }
3621};
3622
3623inline flatbuffers::Offset<DepthToSpaceDescriptor> CreateDepthToSpaceDescriptor(
3624 flatbuffers::FlatBufferBuilder &_fbb,
3625 uint32_t blockSize = 0,
3626 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC) {
3627 DepthToSpaceDescriptorBuilder builder_(_fbb);
3628 builder_.add_blockSize(blockSize);
3629 builder_.add_dataLayout(dataLayout);
3630 return builder_.Finish();
3631}
3632
3633struct DivisionLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3634 typedef DivisionLayerBuilder Builder;
3635 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3636 VT_BASE = 4
3637 };
3638 const armnnSerializer::LayerBase *base() const {
3639 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3640 }
3641 bool Verify(flatbuffers::Verifier &verifier) const {
3642 return VerifyTableStart(verifier) &&
3643 VerifyOffset(verifier, VT_BASE) &&
3644 verifier.VerifyTable(base()) &&
3645 verifier.EndTable();
3646 }
3647};
3648
3649struct DivisionLayerBuilder {
3650 typedef DivisionLayer Table;
3651 flatbuffers::FlatBufferBuilder &fbb_;
3652 flatbuffers::uoffset_t start_;
3653 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3654 fbb_.AddOffset(DivisionLayer::VT_BASE, base);
3655 }
3656 explicit DivisionLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3657 : fbb_(_fbb) {
3658 start_ = fbb_.StartTable();
3659 }
3660 DivisionLayerBuilder &operator=(const DivisionLayerBuilder &);
3661 flatbuffers::Offset<DivisionLayer> Finish() {
3662 const auto end = fbb_.EndTable(start_);
3663 auto o = flatbuffers::Offset<DivisionLayer>(end);
3664 return o;
3665 }
3666};
3667
3668inline flatbuffers::Offset<DivisionLayer> CreateDivisionLayer(
3669 flatbuffers::FlatBufferBuilder &_fbb,
3670 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
3671 DivisionLayerBuilder builder_(_fbb);
3672 builder_.add_base(base);
3673 return builder_.Finish();
3674}
3675
3676struct ElementwiseUnaryDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3677 typedef ElementwiseUnaryDescriptorBuilder Builder;
3678 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3679 VT_OPERATION = 4
3680 };
3681 armnnSerializer::UnaryOperation operation() const {
3682 return static_cast<armnnSerializer::UnaryOperation>(GetField<int8_t>(VT_OPERATION, 0));
3683 }
3684 bool Verify(flatbuffers::Verifier &verifier) const {
3685 return VerifyTableStart(verifier) &&
3686 VerifyField<int8_t>(verifier, VT_OPERATION) &&
3687 verifier.EndTable();
3688 }
3689};
3690
3691struct ElementwiseUnaryDescriptorBuilder {
3692 typedef ElementwiseUnaryDescriptor Table;
3693 flatbuffers::FlatBufferBuilder &fbb_;
3694 flatbuffers::uoffset_t start_;
3695 void add_operation(armnnSerializer::UnaryOperation operation) {
3696 fbb_.AddElement<int8_t>(ElementwiseUnaryDescriptor::VT_OPERATION, static_cast<int8_t>(operation), 0);
3697 }
3698 explicit ElementwiseUnaryDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3699 : fbb_(_fbb) {
3700 start_ = fbb_.StartTable();
3701 }
3702 ElementwiseUnaryDescriptorBuilder &operator=(const ElementwiseUnaryDescriptorBuilder &);
3703 flatbuffers::Offset<ElementwiseUnaryDescriptor> Finish() {
3704 const auto end = fbb_.EndTable(start_);
3705 auto o = flatbuffers::Offset<ElementwiseUnaryDescriptor>(end);
3706 return o;
3707 }
3708};
3709
3710inline flatbuffers::Offset<ElementwiseUnaryDescriptor> CreateElementwiseUnaryDescriptor(
3711 flatbuffers::FlatBufferBuilder &_fbb,
3712 armnnSerializer::UnaryOperation operation = armnnSerializer::UnaryOperation_Abs) {
3713 ElementwiseUnaryDescriptorBuilder builder_(_fbb);
3714 builder_.add_operation(operation);
3715 return builder_.Finish();
3716}
3717
3718struct ElementwiseUnaryLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3719 typedef ElementwiseUnaryLayerBuilder Builder;
3720 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3721 VT_BASE = 4,
3722 VT_DESCRIPTOR = 6
3723 };
3724 const armnnSerializer::LayerBase *base() const {
3725 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3726 }
3727 const armnnSerializer::ElementwiseUnaryDescriptor *descriptor() const {
3728 return GetPointer<const armnnSerializer::ElementwiseUnaryDescriptor *>(VT_DESCRIPTOR);
3729 }
3730 bool Verify(flatbuffers::Verifier &verifier) const {
3731 return VerifyTableStart(verifier) &&
3732 VerifyOffset(verifier, VT_BASE) &&
3733 verifier.VerifyTable(base()) &&
3734 VerifyOffset(verifier, VT_DESCRIPTOR) &&
3735 verifier.VerifyTable(descriptor()) &&
3736 verifier.EndTable();
3737 }
3738};
3739
3740struct ElementwiseUnaryLayerBuilder {
3741 typedef ElementwiseUnaryLayer Table;
3742 flatbuffers::FlatBufferBuilder &fbb_;
3743 flatbuffers::uoffset_t start_;
3744 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3745 fbb_.AddOffset(ElementwiseUnaryLayer::VT_BASE, base);
3746 }
3747 void add_descriptor(flatbuffers::Offset<armnnSerializer::ElementwiseUnaryDescriptor> descriptor) {
3748 fbb_.AddOffset(ElementwiseUnaryLayer::VT_DESCRIPTOR, descriptor);
3749 }
3750 explicit ElementwiseUnaryLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3751 : fbb_(_fbb) {
3752 start_ = fbb_.StartTable();
3753 }
3754 ElementwiseUnaryLayerBuilder &operator=(const ElementwiseUnaryLayerBuilder &);
3755 flatbuffers::Offset<ElementwiseUnaryLayer> Finish() {
3756 const auto end = fbb_.EndTable(start_);
3757 auto o = flatbuffers::Offset<ElementwiseUnaryLayer>(end);
3758 return o;
3759 }
3760};
3761
3762inline flatbuffers::Offset<ElementwiseUnaryLayer> CreateElementwiseUnaryLayer(
3763 flatbuffers::FlatBufferBuilder &_fbb,
3764 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3765 flatbuffers::Offset<armnnSerializer::ElementwiseUnaryDescriptor> descriptor = 0) {
3766 ElementwiseUnaryLayerBuilder builder_(_fbb);
3767 builder_.add_descriptor(descriptor);
3768 builder_.add_base(base);
3769 return builder_.Finish();
3770}
3771
3772/// @deprecated Use ComparisonLayer instead
3773struct EqualLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3774 typedef EqualLayerBuilder Builder;
3775 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3776 VT_BASE = 4
3777 };
3778 const armnnSerializer::LayerBase *base() const {
3779 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3780 }
3781 bool Verify(flatbuffers::Verifier &verifier) const {
3782 return VerifyTableStart(verifier) &&
3783 VerifyOffset(verifier, VT_BASE) &&
3784 verifier.VerifyTable(base()) &&
3785 verifier.EndTable();
3786 }
3787};
3788
3789struct EqualLayerBuilder {
3790 typedef EqualLayer Table;
3791 flatbuffers::FlatBufferBuilder &fbb_;
3792 flatbuffers::uoffset_t start_;
3793 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3794 fbb_.AddOffset(EqualLayer::VT_BASE, base);
3795 }
3796 explicit EqualLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3797 : fbb_(_fbb) {
3798 start_ = fbb_.StartTable();
3799 }
3800 EqualLayerBuilder &operator=(const EqualLayerBuilder &);
3801 flatbuffers::Offset<EqualLayer> Finish() {
3802 const auto end = fbb_.EndTable(start_);
3803 auto o = flatbuffers::Offset<EqualLayer>(end);
3804 return o;
3805 }
3806};
3807
3808inline flatbuffers::Offset<EqualLayer> CreateEqualLayer(
3809 flatbuffers::FlatBufferBuilder &_fbb,
3810 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
3811 EqualLayerBuilder builder_(_fbb);
3812 builder_.add_base(base);
3813 return builder_.Finish();
3814}
3815
3816struct FillLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3817 typedef FillLayerBuilder Builder;
3818 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3819 VT_BASE = 4,
3820 VT_DESCRIPTOR = 6
3821 };
3822 const armnnSerializer::LayerBase *base() const {
3823 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3824 }
3825 const armnnSerializer::FillDescriptor *descriptor() const {
3826 return GetPointer<const armnnSerializer::FillDescriptor *>(VT_DESCRIPTOR);
3827 }
3828 bool Verify(flatbuffers::Verifier &verifier) const {
3829 return VerifyTableStart(verifier) &&
3830 VerifyOffset(verifier, VT_BASE) &&
3831 verifier.VerifyTable(base()) &&
3832 VerifyOffset(verifier, VT_DESCRIPTOR) &&
3833 verifier.VerifyTable(descriptor()) &&
3834 verifier.EndTable();
3835 }
3836};
3837
3838struct FillLayerBuilder {
3839 typedef FillLayer Table;
3840 flatbuffers::FlatBufferBuilder &fbb_;
3841 flatbuffers::uoffset_t start_;
3842 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3843 fbb_.AddOffset(FillLayer::VT_BASE, base);
3844 }
3845 void add_descriptor(flatbuffers::Offset<armnnSerializer::FillDescriptor> descriptor) {
3846 fbb_.AddOffset(FillLayer::VT_DESCRIPTOR, descriptor);
3847 }
3848 explicit FillLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3849 : fbb_(_fbb) {
3850 start_ = fbb_.StartTable();
3851 }
3852 FillLayerBuilder &operator=(const FillLayerBuilder &);
3853 flatbuffers::Offset<FillLayer> Finish() {
3854 const auto end = fbb_.EndTable(start_);
3855 auto o = flatbuffers::Offset<FillLayer>(end);
3856 return o;
3857 }
3858};
3859
3860inline flatbuffers::Offset<FillLayer> CreateFillLayer(
3861 flatbuffers::FlatBufferBuilder &_fbb,
3862 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
3863 flatbuffers::Offset<armnnSerializer::FillDescriptor> descriptor = 0) {
3864 FillLayerBuilder builder_(_fbb);
3865 builder_.add_descriptor(descriptor);
3866 builder_.add_base(base);
3867 return builder_.Finish();
3868}
3869
3870struct FillDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3871 typedef FillDescriptorBuilder Builder;
3872 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3873 VT_VALUE = 4
3874 };
3875 float value() const {
3876 return GetField<float>(VT_VALUE, 0.0f);
3877 }
3878 bool Verify(flatbuffers::Verifier &verifier) const {
3879 return VerifyTableStart(verifier) &&
3880 VerifyField<float>(verifier, VT_VALUE) &&
3881 verifier.EndTable();
3882 }
3883};
3884
3885struct FillDescriptorBuilder {
3886 typedef FillDescriptor Table;
3887 flatbuffers::FlatBufferBuilder &fbb_;
3888 flatbuffers::uoffset_t start_;
3889 void add_value(float value) {
3890 fbb_.AddElement<float>(FillDescriptor::VT_VALUE, value, 0.0f);
3891 }
3892 explicit FillDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3893 : fbb_(_fbb) {
3894 start_ = fbb_.StartTable();
3895 }
3896 FillDescriptorBuilder &operator=(const FillDescriptorBuilder &);
3897 flatbuffers::Offset<FillDescriptor> Finish() {
3898 const auto end = fbb_.EndTable(start_);
3899 auto o = flatbuffers::Offset<FillDescriptor>(end);
3900 return o;
3901 }
3902};
3903
3904inline flatbuffers::Offset<FillDescriptor> CreateFillDescriptor(
3905 flatbuffers::FlatBufferBuilder &_fbb,
3906 float value = 0.0f) {
3907 FillDescriptorBuilder builder_(_fbb);
3908 builder_.add_value(value);
3909 return builder_.Finish();
3910}
3911
3912struct FloorLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3913 typedef FloorLayerBuilder Builder;
3914 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3915 VT_BASE = 4
3916 };
3917 const armnnSerializer::LayerBase *base() const {
3918 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3919 }
3920 bool Verify(flatbuffers::Verifier &verifier) const {
3921 return VerifyTableStart(verifier) &&
3922 VerifyOffset(verifier, VT_BASE) &&
3923 verifier.VerifyTable(base()) &&
3924 verifier.EndTable();
3925 }
3926};
3927
3928struct FloorLayerBuilder {
3929 typedef FloorLayer Table;
3930 flatbuffers::FlatBufferBuilder &fbb_;
3931 flatbuffers::uoffset_t start_;
3932 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3933 fbb_.AddOffset(FloorLayer::VT_BASE, base);
3934 }
3935 explicit FloorLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3936 : fbb_(_fbb) {
3937 start_ = fbb_.StartTable();
3938 }
3939 FloorLayerBuilder &operator=(const FloorLayerBuilder &);
3940 flatbuffers::Offset<FloorLayer> Finish() {
3941 const auto end = fbb_.EndTable(start_);
3942 auto o = flatbuffers::Offset<FloorLayer>(end);
3943 return o;
3944 }
3945};
3946
3947inline flatbuffers::Offset<FloorLayer> CreateFloorLayer(
3948 flatbuffers::FlatBufferBuilder &_fbb,
3949 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
3950 FloorLayerBuilder builder_(_fbb);
3951 builder_.add_base(base);
3952 return builder_.Finish();
3953}
3954
3955struct FullyConnectedLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3956 typedef FullyConnectedLayerBuilder Builder;
3957 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
3958 VT_BASE = 4,
3959 VT_DESCRIPTOR = 6,
3960 VT_WEIGHTS = 8,
3961 VT_BIASES = 10
3962 };
3963 const armnnSerializer::LayerBase *base() const {
3964 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
3965 }
3966 const armnnSerializer::FullyConnectedDescriptor *descriptor() const {
3967 return GetPointer<const armnnSerializer::FullyConnectedDescriptor *>(VT_DESCRIPTOR);
3968 }
3969 const armnnSerializer::ConstTensor *weights() const {
3970 return GetPointer<const armnnSerializer::ConstTensor *>(VT_WEIGHTS);
3971 }
3972 const armnnSerializer::ConstTensor *biases() const {
3973 return GetPointer<const armnnSerializer::ConstTensor *>(VT_BIASES);
3974 }
3975 bool Verify(flatbuffers::Verifier &verifier) const {
3976 return VerifyTableStart(verifier) &&
3977 VerifyOffset(verifier, VT_BASE) &&
3978 verifier.VerifyTable(base()) &&
3979 VerifyOffset(verifier, VT_DESCRIPTOR) &&
3980 verifier.VerifyTable(descriptor()) &&
3981 VerifyOffset(verifier, VT_WEIGHTS) &&
3982 verifier.VerifyTable(weights()) &&
3983 VerifyOffset(verifier, VT_BIASES) &&
3984 verifier.VerifyTable(biases()) &&
3985 verifier.EndTable();
3986 }
3987};
3988
3989struct FullyConnectedLayerBuilder {
3990 typedef FullyConnectedLayer Table;
3991 flatbuffers::FlatBufferBuilder &fbb_;
3992 flatbuffers::uoffset_t start_;
3993 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
3994 fbb_.AddOffset(FullyConnectedLayer::VT_BASE, base);
3995 }
3996 void add_descriptor(flatbuffers::Offset<armnnSerializer::FullyConnectedDescriptor> descriptor) {
3997 fbb_.AddOffset(FullyConnectedLayer::VT_DESCRIPTOR, descriptor);
3998 }
3999 void add_weights(flatbuffers::Offset<armnnSerializer::ConstTensor> weights) {
4000 fbb_.AddOffset(FullyConnectedLayer::VT_WEIGHTS, weights);
4001 }
4002 void add_biases(flatbuffers::Offset<armnnSerializer::ConstTensor> biases) {
4003 fbb_.AddOffset(FullyConnectedLayer::VT_BIASES, biases);
4004 }
4005 explicit FullyConnectedLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4006 : fbb_(_fbb) {
4007 start_ = fbb_.StartTable();
4008 }
4009 FullyConnectedLayerBuilder &operator=(const FullyConnectedLayerBuilder &);
4010 flatbuffers::Offset<FullyConnectedLayer> Finish() {
4011 const auto end = fbb_.EndTable(start_);
4012 auto o = flatbuffers::Offset<FullyConnectedLayer>(end);
4013 return o;
4014 }
4015};
4016
4017inline flatbuffers::Offset<FullyConnectedLayer> CreateFullyConnectedLayer(
4018 flatbuffers::FlatBufferBuilder &_fbb,
4019 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4020 flatbuffers::Offset<armnnSerializer::FullyConnectedDescriptor> descriptor = 0,
4021 flatbuffers::Offset<armnnSerializer::ConstTensor> weights = 0,
4022 flatbuffers::Offset<armnnSerializer::ConstTensor> biases = 0) {
4023 FullyConnectedLayerBuilder builder_(_fbb);
4024 builder_.add_biases(biases);
4025 builder_.add_weights(weights);
4026 builder_.add_descriptor(descriptor);
4027 builder_.add_base(base);
4028 return builder_.Finish();
4029}
4030
4031struct FullyConnectedDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4032 typedef FullyConnectedDescriptorBuilder Builder;
4033 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4034 VT_BIASENABLED = 4,
Sadik Armaganf0a6dec2021-03-25 07:46:55 +00004035 VT_TRANSPOSEWEIGHTSMATRIX = 6,
4036 VT_CONSTANTWEIGHTS = 8
Sadik Armagan97bf84f2021-01-13 15:06:38 +00004037 };
4038 bool biasEnabled() const {
4039 return GetField<uint8_t>(VT_BIASENABLED, 0) != 0;
4040 }
4041 bool transposeWeightsMatrix() const {
4042 return GetField<uint8_t>(VT_TRANSPOSEWEIGHTSMATRIX, 0) != 0;
4043 }
Sadik Armaganf0a6dec2021-03-25 07:46:55 +00004044 bool constantWeights() const {
4045 return GetField<uint8_t>(VT_CONSTANTWEIGHTS, 1) != 0;
4046 }
Sadik Armagan97bf84f2021-01-13 15:06:38 +00004047 bool Verify(flatbuffers::Verifier &verifier) const {
4048 return VerifyTableStart(verifier) &&
4049 VerifyField<uint8_t>(verifier, VT_BIASENABLED) &&
4050 VerifyField<uint8_t>(verifier, VT_TRANSPOSEWEIGHTSMATRIX) &&
Sadik Armaganf0a6dec2021-03-25 07:46:55 +00004051 VerifyField<uint8_t>(verifier, VT_CONSTANTWEIGHTS) &&
Sadik Armagan97bf84f2021-01-13 15:06:38 +00004052 verifier.EndTable();
4053 }
4054};
4055
4056struct FullyConnectedDescriptorBuilder {
4057 typedef FullyConnectedDescriptor Table;
4058 flatbuffers::FlatBufferBuilder &fbb_;
4059 flatbuffers::uoffset_t start_;
4060 void add_biasEnabled(bool biasEnabled) {
4061 fbb_.AddElement<uint8_t>(FullyConnectedDescriptor::VT_BIASENABLED, static_cast<uint8_t>(biasEnabled), 0);
4062 }
4063 void add_transposeWeightsMatrix(bool transposeWeightsMatrix) {
4064 fbb_.AddElement<uint8_t>(FullyConnectedDescriptor::VT_TRANSPOSEWEIGHTSMATRIX, static_cast<uint8_t>(transposeWeightsMatrix), 0);
4065 }
Sadik Armaganf0a6dec2021-03-25 07:46:55 +00004066 void add_constantWeights(bool constantWeights) {
4067 fbb_.AddElement<uint8_t>(FullyConnectedDescriptor::VT_CONSTANTWEIGHTS, static_cast<uint8_t>(constantWeights), 1);
4068 }
Sadik Armagan97bf84f2021-01-13 15:06:38 +00004069 explicit FullyConnectedDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4070 : fbb_(_fbb) {
4071 start_ = fbb_.StartTable();
4072 }
4073 FullyConnectedDescriptorBuilder &operator=(const FullyConnectedDescriptorBuilder &);
4074 flatbuffers::Offset<FullyConnectedDescriptor> Finish() {
4075 const auto end = fbb_.EndTable(start_);
4076 auto o = flatbuffers::Offset<FullyConnectedDescriptor>(end);
4077 return o;
4078 }
4079};
4080
4081inline flatbuffers::Offset<FullyConnectedDescriptor> CreateFullyConnectedDescriptor(
4082 flatbuffers::FlatBufferBuilder &_fbb,
4083 bool biasEnabled = false,
Sadik Armaganf0a6dec2021-03-25 07:46:55 +00004084 bool transposeWeightsMatrix = false,
4085 bool constantWeights = true) {
Sadik Armagan97bf84f2021-01-13 15:06:38 +00004086 FullyConnectedDescriptorBuilder builder_(_fbb);
Sadik Armaganf0a6dec2021-03-25 07:46:55 +00004087 builder_.add_constantWeights(constantWeights);
Sadik Armagan97bf84f2021-01-13 15:06:38 +00004088 builder_.add_transposeWeightsMatrix(transposeWeightsMatrix);
4089 builder_.add_biasEnabled(biasEnabled);
4090 return builder_.Finish();
4091}
4092
4093struct GatherLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4094 typedef GatherLayerBuilder Builder;
4095 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4096 VT_BASE = 4,
4097 VT_DESCRIPTOR = 6
4098 };
4099 const armnnSerializer::LayerBase *base() const {
4100 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4101 }
4102 const armnnSerializer::GatherDescriptor *descriptor() const {
4103 return GetPointer<const armnnSerializer::GatherDescriptor *>(VT_DESCRIPTOR);
4104 }
4105 bool Verify(flatbuffers::Verifier &verifier) const {
4106 return VerifyTableStart(verifier) &&
4107 VerifyOffset(verifier, VT_BASE) &&
4108 verifier.VerifyTable(base()) &&
4109 VerifyOffset(verifier, VT_DESCRIPTOR) &&
4110 verifier.VerifyTable(descriptor()) &&
4111 verifier.EndTable();
4112 }
4113};
4114
4115struct GatherLayerBuilder {
4116 typedef GatherLayer Table;
4117 flatbuffers::FlatBufferBuilder &fbb_;
4118 flatbuffers::uoffset_t start_;
4119 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4120 fbb_.AddOffset(GatherLayer::VT_BASE, base);
4121 }
4122 void add_descriptor(flatbuffers::Offset<armnnSerializer::GatherDescriptor> descriptor) {
4123 fbb_.AddOffset(GatherLayer::VT_DESCRIPTOR, descriptor);
4124 }
4125 explicit GatherLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4126 : fbb_(_fbb) {
4127 start_ = fbb_.StartTable();
4128 }
4129 GatherLayerBuilder &operator=(const GatherLayerBuilder &);
4130 flatbuffers::Offset<GatherLayer> Finish() {
4131 const auto end = fbb_.EndTable(start_);
4132 auto o = flatbuffers::Offset<GatherLayer>(end);
4133 return o;
4134 }
4135};
4136
4137inline flatbuffers::Offset<GatherLayer> CreateGatherLayer(
4138 flatbuffers::FlatBufferBuilder &_fbb,
4139 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4140 flatbuffers::Offset<armnnSerializer::GatherDescriptor> descriptor = 0) {
4141 GatherLayerBuilder builder_(_fbb);
4142 builder_.add_descriptor(descriptor);
4143 builder_.add_base(base);
4144 return builder_.Finish();
4145}
4146
4147struct GatherDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4148 typedef GatherDescriptorBuilder Builder;
4149 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4150 VT_AXIS = 4
4151 };
4152 int32_t axis() const {
4153 return GetField<int32_t>(VT_AXIS, 0);
4154 }
4155 bool Verify(flatbuffers::Verifier &verifier) const {
4156 return VerifyTableStart(verifier) &&
4157 VerifyField<int32_t>(verifier, VT_AXIS) &&
4158 verifier.EndTable();
4159 }
4160};
4161
4162struct GatherDescriptorBuilder {
4163 typedef GatherDescriptor Table;
4164 flatbuffers::FlatBufferBuilder &fbb_;
4165 flatbuffers::uoffset_t start_;
4166 void add_axis(int32_t axis) {
4167 fbb_.AddElement<int32_t>(GatherDescriptor::VT_AXIS, axis, 0);
4168 }
4169 explicit GatherDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4170 : fbb_(_fbb) {
4171 start_ = fbb_.StartTable();
4172 }
4173 GatherDescriptorBuilder &operator=(const GatherDescriptorBuilder &);
4174 flatbuffers::Offset<GatherDescriptor> Finish() {
4175 const auto end = fbb_.EndTable(start_);
4176 auto o = flatbuffers::Offset<GatherDescriptor>(end);
4177 return o;
4178 }
4179};
4180
4181inline flatbuffers::Offset<GatherDescriptor> CreateGatherDescriptor(
4182 flatbuffers::FlatBufferBuilder &_fbb,
4183 int32_t axis = 0) {
4184 GatherDescriptorBuilder builder_(_fbb);
4185 builder_.add_axis(axis);
4186 return builder_.Finish();
4187}
4188
4189/// @deprecated Use ComparisonLayer instead
4190struct GreaterLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4191 typedef GreaterLayerBuilder Builder;
4192 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4193 VT_BASE = 4
4194 };
4195 const armnnSerializer::LayerBase *base() const {
4196 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4197 }
4198 bool Verify(flatbuffers::Verifier &verifier) const {
4199 return VerifyTableStart(verifier) &&
4200 VerifyOffset(verifier, VT_BASE) &&
4201 verifier.VerifyTable(base()) &&
4202 verifier.EndTable();
4203 }
4204};
4205
4206struct GreaterLayerBuilder {
4207 typedef GreaterLayer Table;
4208 flatbuffers::FlatBufferBuilder &fbb_;
4209 flatbuffers::uoffset_t start_;
4210 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4211 fbb_.AddOffset(GreaterLayer::VT_BASE, base);
4212 }
4213 explicit GreaterLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4214 : fbb_(_fbb) {
4215 start_ = fbb_.StartTable();
4216 }
4217 GreaterLayerBuilder &operator=(const GreaterLayerBuilder &);
4218 flatbuffers::Offset<GreaterLayer> Finish() {
4219 const auto end = fbb_.EndTable(start_);
4220 auto o = flatbuffers::Offset<GreaterLayer>(end);
4221 return o;
4222 }
4223};
4224
4225inline flatbuffers::Offset<GreaterLayer> CreateGreaterLayer(
4226 flatbuffers::FlatBufferBuilder &_fbb,
4227 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
4228 GreaterLayerBuilder builder_(_fbb);
4229 builder_.add_base(base);
4230 return builder_.Finish();
4231}
4232
4233struct InputLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4234 typedef InputLayerBuilder Builder;
4235 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4236 VT_BASE = 4
4237 };
4238 const armnnSerializer::BindableLayerBase *base() const {
4239 return GetPointer<const armnnSerializer::BindableLayerBase *>(VT_BASE);
4240 }
4241 bool Verify(flatbuffers::Verifier &verifier) const {
4242 return VerifyTableStart(verifier) &&
4243 VerifyOffset(verifier, VT_BASE) &&
4244 verifier.VerifyTable(base()) &&
4245 verifier.EndTable();
4246 }
4247};
4248
4249struct InputLayerBuilder {
4250 typedef InputLayer Table;
4251 flatbuffers::FlatBufferBuilder &fbb_;
4252 flatbuffers::uoffset_t start_;
4253 void add_base(flatbuffers::Offset<armnnSerializer::BindableLayerBase> base) {
4254 fbb_.AddOffset(InputLayer::VT_BASE, base);
4255 }
4256 explicit InputLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4257 : fbb_(_fbb) {
4258 start_ = fbb_.StartTable();
4259 }
4260 InputLayerBuilder &operator=(const InputLayerBuilder &);
4261 flatbuffers::Offset<InputLayer> Finish() {
4262 const auto end = fbb_.EndTable(start_);
4263 auto o = flatbuffers::Offset<InputLayer>(end);
4264 return o;
4265 }
4266};
4267
4268inline flatbuffers::Offset<InputLayer> CreateInputLayer(
4269 flatbuffers::FlatBufferBuilder &_fbb,
4270 flatbuffers::Offset<armnnSerializer::BindableLayerBase> base = 0) {
4271 InputLayerBuilder builder_(_fbb);
4272 builder_.add_base(base);
4273 return builder_.Finish();
4274}
4275
4276struct InstanceNormalizationLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4277 typedef InstanceNormalizationLayerBuilder Builder;
4278 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4279 VT_BASE = 4,
4280 VT_DESCRIPTOR = 6
4281 };
4282 const armnnSerializer::LayerBase *base() const {
4283 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4284 }
4285 const armnnSerializer::InstanceNormalizationDescriptor *descriptor() const {
4286 return GetPointer<const armnnSerializer::InstanceNormalizationDescriptor *>(VT_DESCRIPTOR);
4287 }
4288 bool Verify(flatbuffers::Verifier &verifier) const {
4289 return VerifyTableStart(verifier) &&
4290 VerifyOffset(verifier, VT_BASE) &&
4291 verifier.VerifyTable(base()) &&
4292 VerifyOffset(verifier, VT_DESCRIPTOR) &&
4293 verifier.VerifyTable(descriptor()) &&
4294 verifier.EndTable();
4295 }
4296};
4297
4298struct InstanceNormalizationLayerBuilder {
4299 typedef InstanceNormalizationLayer Table;
4300 flatbuffers::FlatBufferBuilder &fbb_;
4301 flatbuffers::uoffset_t start_;
4302 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4303 fbb_.AddOffset(InstanceNormalizationLayer::VT_BASE, base);
4304 }
4305 void add_descriptor(flatbuffers::Offset<armnnSerializer::InstanceNormalizationDescriptor> descriptor) {
4306 fbb_.AddOffset(InstanceNormalizationLayer::VT_DESCRIPTOR, descriptor);
4307 }
4308 explicit InstanceNormalizationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4309 : fbb_(_fbb) {
4310 start_ = fbb_.StartTable();
4311 }
4312 InstanceNormalizationLayerBuilder &operator=(const InstanceNormalizationLayerBuilder &);
4313 flatbuffers::Offset<InstanceNormalizationLayer> Finish() {
4314 const auto end = fbb_.EndTable(start_);
4315 auto o = flatbuffers::Offset<InstanceNormalizationLayer>(end);
4316 return o;
4317 }
4318};
4319
4320inline flatbuffers::Offset<InstanceNormalizationLayer> CreateInstanceNormalizationLayer(
4321 flatbuffers::FlatBufferBuilder &_fbb,
4322 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4323 flatbuffers::Offset<armnnSerializer::InstanceNormalizationDescriptor> descriptor = 0) {
4324 InstanceNormalizationLayerBuilder builder_(_fbb);
4325 builder_.add_descriptor(descriptor);
4326 builder_.add_base(base);
4327 return builder_.Finish();
4328}
4329
4330struct InstanceNormalizationDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4331 typedef InstanceNormalizationDescriptorBuilder Builder;
4332 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4333 VT_GAMMA = 4,
4334 VT_BETA = 6,
4335 VT_EPS = 8,
4336 VT_DATALAYOUT = 10
4337 };
4338 float gamma() const {
4339 return GetField<float>(VT_GAMMA, 0.0f);
4340 }
4341 float beta() const {
4342 return GetField<float>(VT_BETA, 0.0f);
4343 }
4344 float eps() const {
4345 return GetField<float>(VT_EPS, 0.0f);
4346 }
4347 armnnSerializer::DataLayout dataLayout() const {
4348 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
4349 }
4350 bool Verify(flatbuffers::Verifier &verifier) const {
4351 return VerifyTableStart(verifier) &&
4352 VerifyField<float>(verifier, VT_GAMMA) &&
4353 VerifyField<float>(verifier, VT_BETA) &&
4354 VerifyField<float>(verifier, VT_EPS) &&
4355 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
4356 verifier.EndTable();
4357 }
4358};
4359
4360struct InstanceNormalizationDescriptorBuilder {
4361 typedef InstanceNormalizationDescriptor Table;
4362 flatbuffers::FlatBufferBuilder &fbb_;
4363 flatbuffers::uoffset_t start_;
4364 void add_gamma(float gamma) {
4365 fbb_.AddElement<float>(InstanceNormalizationDescriptor::VT_GAMMA, gamma, 0.0f);
4366 }
4367 void add_beta(float beta) {
4368 fbb_.AddElement<float>(InstanceNormalizationDescriptor::VT_BETA, beta, 0.0f);
4369 }
4370 void add_eps(float eps) {
4371 fbb_.AddElement<float>(InstanceNormalizationDescriptor::VT_EPS, eps, 0.0f);
4372 }
4373 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
4374 fbb_.AddElement<int8_t>(InstanceNormalizationDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
4375 }
4376 explicit InstanceNormalizationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4377 : fbb_(_fbb) {
4378 start_ = fbb_.StartTable();
4379 }
4380 InstanceNormalizationDescriptorBuilder &operator=(const InstanceNormalizationDescriptorBuilder &);
4381 flatbuffers::Offset<InstanceNormalizationDescriptor> Finish() {
4382 const auto end = fbb_.EndTable(start_);
4383 auto o = flatbuffers::Offset<InstanceNormalizationDescriptor>(end);
4384 return o;
4385 }
4386};
4387
4388inline flatbuffers::Offset<InstanceNormalizationDescriptor> CreateInstanceNormalizationDescriptor(
4389 flatbuffers::FlatBufferBuilder &_fbb,
4390 float gamma = 0.0f,
4391 float beta = 0.0f,
4392 float eps = 0.0f,
4393 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC) {
4394 InstanceNormalizationDescriptorBuilder builder_(_fbb);
4395 builder_.add_eps(eps);
4396 builder_.add_beta(beta);
4397 builder_.add_gamma(gamma);
4398 builder_.add_dataLayout(dataLayout);
4399 return builder_.Finish();
4400}
4401
4402struct LogSoftmaxLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4403 typedef LogSoftmaxLayerBuilder Builder;
4404 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4405 VT_BASE = 4,
4406 VT_DESCRIPTOR = 6
4407 };
4408 const armnnSerializer::LayerBase *base() const {
4409 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4410 }
4411 const armnnSerializer::LogSoftmaxDescriptor *descriptor() const {
4412 return GetPointer<const armnnSerializer::LogSoftmaxDescriptor *>(VT_DESCRIPTOR);
4413 }
4414 bool Verify(flatbuffers::Verifier &verifier) const {
4415 return VerifyTableStart(verifier) &&
4416 VerifyOffset(verifier, VT_BASE) &&
4417 verifier.VerifyTable(base()) &&
4418 VerifyOffset(verifier, VT_DESCRIPTOR) &&
4419 verifier.VerifyTable(descriptor()) &&
4420 verifier.EndTable();
4421 }
4422};
4423
4424struct LogSoftmaxLayerBuilder {
4425 typedef LogSoftmaxLayer Table;
4426 flatbuffers::FlatBufferBuilder &fbb_;
4427 flatbuffers::uoffset_t start_;
4428 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4429 fbb_.AddOffset(LogSoftmaxLayer::VT_BASE, base);
4430 }
4431 void add_descriptor(flatbuffers::Offset<armnnSerializer::LogSoftmaxDescriptor> descriptor) {
4432 fbb_.AddOffset(LogSoftmaxLayer::VT_DESCRIPTOR, descriptor);
4433 }
4434 explicit LogSoftmaxLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4435 : fbb_(_fbb) {
4436 start_ = fbb_.StartTable();
4437 }
4438 LogSoftmaxLayerBuilder &operator=(const LogSoftmaxLayerBuilder &);
4439 flatbuffers::Offset<LogSoftmaxLayer> Finish() {
4440 const auto end = fbb_.EndTable(start_);
4441 auto o = flatbuffers::Offset<LogSoftmaxLayer>(end);
4442 return o;
4443 }
4444};
4445
4446inline flatbuffers::Offset<LogSoftmaxLayer> CreateLogSoftmaxLayer(
4447 flatbuffers::FlatBufferBuilder &_fbb,
4448 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4449 flatbuffers::Offset<armnnSerializer::LogSoftmaxDescriptor> descriptor = 0) {
4450 LogSoftmaxLayerBuilder builder_(_fbb);
4451 builder_.add_descriptor(descriptor);
4452 builder_.add_base(base);
4453 return builder_.Finish();
4454}
4455
4456struct LogSoftmaxDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4457 typedef LogSoftmaxDescriptorBuilder Builder;
4458 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4459 VT_BETA = 4,
4460 VT_AXIS = 6
4461 };
4462 float beta() const {
4463 return GetField<float>(VT_BETA, 1.0f);
4464 }
4465 int32_t axis() const {
4466 return GetField<int32_t>(VT_AXIS, -1);
4467 }
4468 bool Verify(flatbuffers::Verifier &verifier) const {
4469 return VerifyTableStart(verifier) &&
4470 VerifyField<float>(verifier, VT_BETA) &&
4471 VerifyField<int32_t>(verifier, VT_AXIS) &&
4472 verifier.EndTable();
4473 }
4474};
4475
4476struct LogSoftmaxDescriptorBuilder {
4477 typedef LogSoftmaxDescriptor Table;
4478 flatbuffers::FlatBufferBuilder &fbb_;
4479 flatbuffers::uoffset_t start_;
4480 void add_beta(float beta) {
4481 fbb_.AddElement<float>(LogSoftmaxDescriptor::VT_BETA, beta, 1.0f);
4482 }
4483 void add_axis(int32_t axis) {
4484 fbb_.AddElement<int32_t>(LogSoftmaxDescriptor::VT_AXIS, axis, -1);
4485 }
4486 explicit LogSoftmaxDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4487 : fbb_(_fbb) {
4488 start_ = fbb_.StartTable();
4489 }
4490 LogSoftmaxDescriptorBuilder &operator=(const LogSoftmaxDescriptorBuilder &);
4491 flatbuffers::Offset<LogSoftmaxDescriptor> Finish() {
4492 const auto end = fbb_.EndTable(start_);
4493 auto o = flatbuffers::Offset<LogSoftmaxDescriptor>(end);
4494 return o;
4495 }
4496};
4497
4498inline flatbuffers::Offset<LogSoftmaxDescriptor> CreateLogSoftmaxDescriptor(
4499 flatbuffers::FlatBufferBuilder &_fbb,
4500 float beta = 1.0f,
4501 int32_t axis = -1) {
4502 LogSoftmaxDescriptorBuilder builder_(_fbb);
4503 builder_.add_axis(axis);
4504 builder_.add_beta(beta);
4505 return builder_.Finish();
4506}
4507
4508struct L2NormalizationLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4509 typedef L2NormalizationLayerBuilder Builder;
4510 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4511 VT_BASE = 4,
4512 VT_DESCRIPTOR = 6
4513 };
4514 const armnnSerializer::LayerBase *base() const {
4515 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4516 }
4517 const armnnSerializer::L2NormalizationDescriptor *descriptor() const {
4518 return GetPointer<const armnnSerializer::L2NormalizationDescriptor *>(VT_DESCRIPTOR);
4519 }
4520 bool Verify(flatbuffers::Verifier &verifier) const {
4521 return VerifyTableStart(verifier) &&
4522 VerifyOffset(verifier, VT_BASE) &&
4523 verifier.VerifyTable(base()) &&
4524 VerifyOffset(verifier, VT_DESCRIPTOR) &&
4525 verifier.VerifyTable(descriptor()) &&
4526 verifier.EndTable();
4527 }
4528};
4529
4530struct L2NormalizationLayerBuilder {
4531 typedef L2NormalizationLayer Table;
4532 flatbuffers::FlatBufferBuilder &fbb_;
4533 flatbuffers::uoffset_t start_;
4534 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4535 fbb_.AddOffset(L2NormalizationLayer::VT_BASE, base);
4536 }
4537 void add_descriptor(flatbuffers::Offset<armnnSerializer::L2NormalizationDescriptor> descriptor) {
4538 fbb_.AddOffset(L2NormalizationLayer::VT_DESCRIPTOR, descriptor);
4539 }
4540 explicit L2NormalizationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4541 : fbb_(_fbb) {
4542 start_ = fbb_.StartTable();
4543 }
4544 L2NormalizationLayerBuilder &operator=(const L2NormalizationLayerBuilder &);
4545 flatbuffers::Offset<L2NormalizationLayer> Finish() {
4546 const auto end = fbb_.EndTable(start_);
4547 auto o = flatbuffers::Offset<L2NormalizationLayer>(end);
4548 return o;
4549 }
4550};
4551
4552inline flatbuffers::Offset<L2NormalizationLayer> CreateL2NormalizationLayer(
4553 flatbuffers::FlatBufferBuilder &_fbb,
4554 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4555 flatbuffers::Offset<armnnSerializer::L2NormalizationDescriptor> descriptor = 0) {
4556 L2NormalizationLayerBuilder builder_(_fbb);
4557 builder_.add_descriptor(descriptor);
4558 builder_.add_base(base);
4559 return builder_.Finish();
4560}
4561
4562struct L2NormalizationDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4563 typedef L2NormalizationDescriptorBuilder Builder;
4564 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4565 VT_DATALAYOUT = 4,
4566 VT_EPS = 6
4567 };
4568 armnnSerializer::DataLayout dataLayout() const {
4569 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 1));
4570 }
4571 float eps() const {
4572 return GetField<float>(VT_EPS, 1e-12f);
4573 }
4574 bool Verify(flatbuffers::Verifier &verifier) const {
4575 return VerifyTableStart(verifier) &&
4576 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
4577 VerifyField<float>(verifier, VT_EPS) &&
4578 verifier.EndTable();
4579 }
4580};
4581
4582struct L2NormalizationDescriptorBuilder {
4583 typedef L2NormalizationDescriptor Table;
4584 flatbuffers::FlatBufferBuilder &fbb_;
4585 flatbuffers::uoffset_t start_;
4586 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
4587 fbb_.AddElement<int8_t>(L2NormalizationDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 1);
4588 }
4589 void add_eps(float eps) {
4590 fbb_.AddElement<float>(L2NormalizationDescriptor::VT_EPS, eps, 1e-12f);
4591 }
4592 explicit L2NormalizationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4593 : fbb_(_fbb) {
4594 start_ = fbb_.StartTable();
4595 }
4596 L2NormalizationDescriptorBuilder &operator=(const L2NormalizationDescriptorBuilder &);
4597 flatbuffers::Offset<L2NormalizationDescriptor> Finish() {
4598 const auto end = fbb_.EndTable(start_);
4599 auto o = flatbuffers::Offset<L2NormalizationDescriptor>(end);
4600 return o;
4601 }
4602};
4603
4604inline flatbuffers::Offset<L2NormalizationDescriptor> CreateL2NormalizationDescriptor(
4605 flatbuffers::FlatBufferBuilder &_fbb,
4606 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NCHW,
4607 float eps = 1e-12f) {
4608 L2NormalizationDescriptorBuilder builder_(_fbb);
4609 builder_.add_eps(eps);
4610 builder_.add_dataLayout(dataLayout);
4611 return builder_.Finish();
4612}
4613
4614struct LogicalBinaryDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4615 typedef LogicalBinaryDescriptorBuilder Builder;
4616 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4617 VT_OPERATION = 4
4618 };
4619 armnnSerializer::LogicalBinaryOperation operation() const {
4620 return static_cast<armnnSerializer::LogicalBinaryOperation>(GetField<int8_t>(VT_OPERATION, 0));
4621 }
4622 bool Verify(flatbuffers::Verifier &verifier) const {
4623 return VerifyTableStart(verifier) &&
4624 VerifyField<int8_t>(verifier, VT_OPERATION) &&
4625 verifier.EndTable();
4626 }
4627};
4628
4629struct LogicalBinaryDescriptorBuilder {
4630 typedef LogicalBinaryDescriptor Table;
4631 flatbuffers::FlatBufferBuilder &fbb_;
4632 flatbuffers::uoffset_t start_;
4633 void add_operation(armnnSerializer::LogicalBinaryOperation operation) {
4634 fbb_.AddElement<int8_t>(LogicalBinaryDescriptor::VT_OPERATION, static_cast<int8_t>(operation), 0);
4635 }
4636 explicit LogicalBinaryDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4637 : fbb_(_fbb) {
4638 start_ = fbb_.StartTable();
4639 }
4640 LogicalBinaryDescriptorBuilder &operator=(const LogicalBinaryDescriptorBuilder &);
4641 flatbuffers::Offset<LogicalBinaryDescriptor> Finish() {
4642 const auto end = fbb_.EndTable(start_);
4643 auto o = flatbuffers::Offset<LogicalBinaryDescriptor>(end);
4644 return o;
4645 }
4646};
4647
4648inline flatbuffers::Offset<LogicalBinaryDescriptor> CreateLogicalBinaryDescriptor(
4649 flatbuffers::FlatBufferBuilder &_fbb,
4650 armnnSerializer::LogicalBinaryOperation operation = armnnSerializer::LogicalBinaryOperation_LogicalAnd) {
4651 LogicalBinaryDescriptorBuilder builder_(_fbb);
4652 builder_.add_operation(operation);
4653 return builder_.Finish();
4654}
4655
4656struct LogicalBinaryLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4657 typedef LogicalBinaryLayerBuilder Builder;
4658 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4659 VT_BASE = 4,
4660 VT_DESCRIPTOR = 6
4661 };
4662 const armnnSerializer::LayerBase *base() const {
4663 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4664 }
4665 const armnnSerializer::LogicalBinaryDescriptor *descriptor() const {
4666 return GetPointer<const armnnSerializer::LogicalBinaryDescriptor *>(VT_DESCRIPTOR);
4667 }
4668 bool Verify(flatbuffers::Verifier &verifier) const {
4669 return VerifyTableStart(verifier) &&
4670 VerifyOffset(verifier, VT_BASE) &&
4671 verifier.VerifyTable(base()) &&
4672 VerifyOffset(verifier, VT_DESCRIPTOR) &&
4673 verifier.VerifyTable(descriptor()) &&
4674 verifier.EndTable();
4675 }
4676};
4677
4678struct LogicalBinaryLayerBuilder {
4679 typedef LogicalBinaryLayer Table;
4680 flatbuffers::FlatBufferBuilder &fbb_;
4681 flatbuffers::uoffset_t start_;
4682 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4683 fbb_.AddOffset(LogicalBinaryLayer::VT_BASE, base);
4684 }
4685 void add_descriptor(flatbuffers::Offset<armnnSerializer::LogicalBinaryDescriptor> descriptor) {
4686 fbb_.AddOffset(LogicalBinaryLayer::VT_DESCRIPTOR, descriptor);
4687 }
4688 explicit LogicalBinaryLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4689 : fbb_(_fbb) {
4690 start_ = fbb_.StartTable();
4691 }
4692 LogicalBinaryLayerBuilder &operator=(const LogicalBinaryLayerBuilder &);
4693 flatbuffers::Offset<LogicalBinaryLayer> Finish() {
4694 const auto end = fbb_.EndTable(start_);
4695 auto o = flatbuffers::Offset<LogicalBinaryLayer>(end);
4696 return o;
4697 }
4698};
4699
4700inline flatbuffers::Offset<LogicalBinaryLayer> CreateLogicalBinaryLayer(
4701 flatbuffers::FlatBufferBuilder &_fbb,
4702 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4703 flatbuffers::Offset<armnnSerializer::LogicalBinaryDescriptor> descriptor = 0) {
4704 LogicalBinaryLayerBuilder builder_(_fbb);
4705 builder_.add_descriptor(descriptor);
4706 builder_.add_base(base);
4707 return builder_.Finish();
4708}
4709
4710struct MinimumLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4711 typedef MinimumLayerBuilder Builder;
4712 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4713 VT_BASE = 4
4714 };
4715 const armnnSerializer::LayerBase *base() const {
4716 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4717 }
4718 bool Verify(flatbuffers::Verifier &verifier) const {
4719 return VerifyTableStart(verifier) &&
4720 VerifyOffset(verifier, VT_BASE) &&
4721 verifier.VerifyTable(base()) &&
4722 verifier.EndTable();
4723 }
4724};
4725
4726struct MinimumLayerBuilder {
4727 typedef MinimumLayer Table;
4728 flatbuffers::FlatBufferBuilder &fbb_;
4729 flatbuffers::uoffset_t start_;
4730 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4731 fbb_.AddOffset(MinimumLayer::VT_BASE, base);
4732 }
4733 explicit MinimumLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4734 : fbb_(_fbb) {
4735 start_ = fbb_.StartTable();
4736 }
4737 MinimumLayerBuilder &operator=(const MinimumLayerBuilder &);
4738 flatbuffers::Offset<MinimumLayer> Finish() {
4739 const auto end = fbb_.EndTable(start_);
4740 auto o = flatbuffers::Offset<MinimumLayer>(end);
4741 return o;
4742 }
4743};
4744
4745inline flatbuffers::Offset<MinimumLayer> CreateMinimumLayer(
4746 flatbuffers::FlatBufferBuilder &_fbb,
4747 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
4748 MinimumLayerBuilder builder_(_fbb);
4749 builder_.add_base(base);
4750 return builder_.Finish();
4751}
4752
4753struct MaximumLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4754 typedef MaximumLayerBuilder Builder;
4755 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4756 VT_BASE = 4
4757 };
4758 const armnnSerializer::LayerBase *base() const {
4759 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4760 }
4761 bool Verify(flatbuffers::Verifier &verifier) const {
4762 return VerifyTableStart(verifier) &&
4763 VerifyOffset(verifier, VT_BASE) &&
4764 verifier.VerifyTable(base()) &&
4765 verifier.EndTable();
4766 }
4767};
4768
4769struct MaximumLayerBuilder {
4770 typedef MaximumLayer Table;
4771 flatbuffers::FlatBufferBuilder &fbb_;
4772 flatbuffers::uoffset_t start_;
4773 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4774 fbb_.AddOffset(MaximumLayer::VT_BASE, base);
4775 }
4776 explicit MaximumLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4777 : fbb_(_fbb) {
4778 start_ = fbb_.StartTable();
4779 }
4780 MaximumLayerBuilder &operator=(const MaximumLayerBuilder &);
4781 flatbuffers::Offset<MaximumLayer> Finish() {
4782 const auto end = fbb_.EndTable(start_);
4783 auto o = flatbuffers::Offset<MaximumLayer>(end);
4784 return o;
4785 }
4786};
4787
4788inline flatbuffers::Offset<MaximumLayer> CreateMaximumLayer(
4789 flatbuffers::FlatBufferBuilder &_fbb,
4790 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
4791 MaximumLayerBuilder builder_(_fbb);
4792 builder_.add_base(base);
4793 return builder_.Finish();
4794}
4795
4796struct MultiplicationLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4797 typedef MultiplicationLayerBuilder Builder;
4798 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4799 VT_BASE = 4
4800 };
4801 const armnnSerializer::LayerBase *base() const {
4802 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4803 }
4804 bool Verify(flatbuffers::Verifier &verifier) const {
4805 return VerifyTableStart(verifier) &&
4806 VerifyOffset(verifier, VT_BASE) &&
4807 verifier.VerifyTable(base()) &&
4808 verifier.EndTable();
4809 }
4810};
4811
4812struct MultiplicationLayerBuilder {
4813 typedef MultiplicationLayer Table;
4814 flatbuffers::FlatBufferBuilder &fbb_;
4815 flatbuffers::uoffset_t start_;
4816 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4817 fbb_.AddOffset(MultiplicationLayer::VT_BASE, base);
4818 }
4819 explicit MultiplicationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4820 : fbb_(_fbb) {
4821 start_ = fbb_.StartTable();
4822 }
4823 MultiplicationLayerBuilder &operator=(const MultiplicationLayerBuilder &);
4824 flatbuffers::Offset<MultiplicationLayer> Finish() {
4825 const auto end = fbb_.EndTable(start_);
4826 auto o = flatbuffers::Offset<MultiplicationLayer>(end);
4827 return o;
4828 }
4829};
4830
4831inline flatbuffers::Offset<MultiplicationLayer> CreateMultiplicationLayer(
4832 flatbuffers::FlatBufferBuilder &_fbb,
4833 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
4834 MultiplicationLayerBuilder builder_(_fbb);
4835 builder_.add_base(base);
4836 return builder_.Finish();
4837}
4838
4839struct Pooling2dLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4840 typedef Pooling2dLayerBuilder Builder;
4841 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4842 VT_BASE = 4,
4843 VT_DESCRIPTOR = 6
4844 };
4845 const armnnSerializer::LayerBase *base() const {
4846 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4847 }
4848 const armnnSerializer::Pooling2dDescriptor *descriptor() const {
4849 return GetPointer<const armnnSerializer::Pooling2dDescriptor *>(VT_DESCRIPTOR);
4850 }
4851 bool Verify(flatbuffers::Verifier &verifier) const {
4852 return VerifyTableStart(verifier) &&
4853 VerifyOffset(verifier, VT_BASE) &&
4854 verifier.VerifyTable(base()) &&
4855 VerifyOffset(verifier, VT_DESCRIPTOR) &&
4856 verifier.VerifyTable(descriptor()) &&
4857 verifier.EndTable();
4858 }
4859};
4860
4861struct Pooling2dLayerBuilder {
4862 typedef Pooling2dLayer Table;
4863 flatbuffers::FlatBufferBuilder &fbb_;
4864 flatbuffers::uoffset_t start_;
4865 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4866 fbb_.AddOffset(Pooling2dLayer::VT_BASE, base);
4867 }
4868 void add_descriptor(flatbuffers::Offset<armnnSerializer::Pooling2dDescriptor> descriptor) {
4869 fbb_.AddOffset(Pooling2dLayer::VT_DESCRIPTOR, descriptor);
4870 }
4871 explicit Pooling2dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4872 : fbb_(_fbb) {
4873 start_ = fbb_.StartTable();
4874 }
4875 Pooling2dLayerBuilder &operator=(const Pooling2dLayerBuilder &);
4876 flatbuffers::Offset<Pooling2dLayer> Finish() {
4877 const auto end = fbb_.EndTable(start_);
4878 auto o = flatbuffers::Offset<Pooling2dLayer>(end);
4879 return o;
4880 }
4881};
4882
4883inline flatbuffers::Offset<Pooling2dLayer> CreatePooling2dLayer(
4884 flatbuffers::FlatBufferBuilder &_fbb,
4885 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4886 flatbuffers::Offset<armnnSerializer::Pooling2dDescriptor> descriptor = 0) {
4887 Pooling2dLayerBuilder builder_(_fbb);
4888 builder_.add_descriptor(descriptor);
4889 builder_.add_base(base);
4890 return builder_.Finish();
4891}
4892
Tamas Nyirid998a1c2021-11-05 14:55:33 +00004893struct Pooling3dLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4894 typedef Pooling3dLayerBuilder Builder;
4895 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4896 VT_BASE = 4,
4897 VT_DESCRIPTOR = 6
4898 };
4899 const armnnSerializer::LayerBase *base() const {
4900 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
4901 }
4902 const armnnSerializer::Pooling3dDescriptor *descriptor() const {
4903 return GetPointer<const armnnSerializer::Pooling3dDescriptor *>(VT_DESCRIPTOR);
4904 }
4905 bool Verify(flatbuffers::Verifier &verifier) const {
4906 return VerifyTableStart(verifier) &&
4907 VerifyOffset(verifier, VT_BASE) &&
4908 verifier.VerifyTable(base()) &&
4909 VerifyOffset(verifier, VT_DESCRIPTOR) &&
4910 verifier.VerifyTable(descriptor()) &&
4911 verifier.EndTable();
4912 }
4913};
4914
4915struct Pooling3dLayerBuilder {
4916 typedef Pooling3dLayer Table;
4917 flatbuffers::FlatBufferBuilder &fbb_;
4918 flatbuffers::uoffset_t start_;
4919 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
4920 fbb_.AddOffset(Pooling3dLayer::VT_BASE, base);
4921 }
4922 void add_descriptor(flatbuffers::Offset<armnnSerializer::Pooling3dDescriptor> descriptor) {
4923 fbb_.AddOffset(Pooling3dLayer::VT_DESCRIPTOR, descriptor);
4924 }
4925 explicit Pooling3dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4926 : fbb_(_fbb) {
4927 start_ = fbb_.StartTable();
4928 }
4929 Pooling3dLayerBuilder &operator=(const Pooling3dLayerBuilder &);
4930 flatbuffers::Offset<Pooling3dLayer> Finish() {
4931 const auto end = fbb_.EndTable(start_);
4932 auto o = flatbuffers::Offset<Pooling3dLayer>(end);
4933 return o;
4934 }
4935};
4936
4937inline flatbuffers::Offset<Pooling3dLayer> CreatePooling3dLayer(
4938 flatbuffers::FlatBufferBuilder &_fbb,
4939 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
4940 flatbuffers::Offset<armnnSerializer::Pooling3dDescriptor> descriptor = 0) {
4941 Pooling3dLayerBuilder builder_(_fbb);
4942 builder_.add_descriptor(descriptor);
4943 builder_.add_base(base);
4944 return builder_.Finish();
4945}
4946
Sadik Armagan97bf84f2021-01-13 15:06:38 +00004947struct Pooling2dDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4948 typedef Pooling2dDescriptorBuilder Builder;
4949 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
4950 VT_POOLTYPE = 4,
4951 VT_PADLEFT = 6,
4952 VT_PADRIGHT = 8,
4953 VT_PADTOP = 10,
4954 VT_PADBOTTOM = 12,
4955 VT_POOLWIDTH = 14,
4956 VT_POOLHEIGHT = 16,
4957 VT_STRIDEX = 18,
4958 VT_STRIDEY = 20,
4959 VT_OUTPUTSHAPEROUNDING = 22,
4960 VT_PADDINGMETHOD = 24,
4961 VT_DATALAYOUT = 26
4962 };
4963 armnnSerializer::PoolingAlgorithm poolType() const {
4964 return static_cast<armnnSerializer::PoolingAlgorithm>(GetField<int8_t>(VT_POOLTYPE, 0));
4965 }
4966 uint32_t padLeft() const {
4967 return GetField<uint32_t>(VT_PADLEFT, 0);
4968 }
4969 uint32_t padRight() const {
4970 return GetField<uint32_t>(VT_PADRIGHT, 0);
4971 }
4972 uint32_t padTop() const {
4973 return GetField<uint32_t>(VT_PADTOP, 0);
4974 }
4975 uint32_t padBottom() const {
4976 return GetField<uint32_t>(VT_PADBOTTOM, 0);
4977 }
4978 uint32_t poolWidth() const {
4979 return GetField<uint32_t>(VT_POOLWIDTH, 0);
4980 }
4981 uint32_t poolHeight() const {
4982 return GetField<uint32_t>(VT_POOLHEIGHT, 0);
4983 }
4984 uint32_t strideX() const {
4985 return GetField<uint32_t>(VT_STRIDEX, 0);
4986 }
4987 uint32_t strideY() const {
4988 return GetField<uint32_t>(VT_STRIDEY, 0);
4989 }
4990 armnnSerializer::OutputShapeRounding outputShapeRounding() const {
4991 return static_cast<armnnSerializer::OutputShapeRounding>(GetField<int8_t>(VT_OUTPUTSHAPEROUNDING, 0));
4992 }
4993 armnnSerializer::PaddingMethod paddingMethod() const {
4994 return static_cast<armnnSerializer::PaddingMethod>(GetField<int8_t>(VT_PADDINGMETHOD, 0));
4995 }
4996 armnnSerializer::DataLayout dataLayout() const {
4997 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
4998 }
4999 bool Verify(flatbuffers::Verifier &verifier) const {
5000 return VerifyTableStart(verifier) &&
5001 VerifyField<int8_t>(verifier, VT_POOLTYPE) &&
5002 VerifyField<uint32_t>(verifier, VT_PADLEFT) &&
5003 VerifyField<uint32_t>(verifier, VT_PADRIGHT) &&
5004 VerifyField<uint32_t>(verifier, VT_PADTOP) &&
5005 VerifyField<uint32_t>(verifier, VT_PADBOTTOM) &&
5006 VerifyField<uint32_t>(verifier, VT_POOLWIDTH) &&
5007 VerifyField<uint32_t>(verifier, VT_POOLHEIGHT) &&
5008 VerifyField<uint32_t>(verifier, VT_STRIDEX) &&
5009 VerifyField<uint32_t>(verifier, VT_STRIDEY) &&
5010 VerifyField<int8_t>(verifier, VT_OUTPUTSHAPEROUNDING) &&
5011 VerifyField<int8_t>(verifier, VT_PADDINGMETHOD) &&
5012 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
5013 verifier.EndTable();
5014 }
5015};
5016
5017struct Pooling2dDescriptorBuilder {
5018 typedef Pooling2dDescriptor Table;
5019 flatbuffers::FlatBufferBuilder &fbb_;
5020 flatbuffers::uoffset_t start_;
5021 void add_poolType(armnnSerializer::PoolingAlgorithm poolType) {
5022 fbb_.AddElement<int8_t>(Pooling2dDescriptor::VT_POOLTYPE, static_cast<int8_t>(poolType), 0);
5023 }
5024 void add_padLeft(uint32_t padLeft) {
5025 fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_PADLEFT, padLeft, 0);
5026 }
5027 void add_padRight(uint32_t padRight) {
5028 fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_PADRIGHT, padRight, 0);
5029 }
5030 void add_padTop(uint32_t padTop) {
5031 fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_PADTOP, padTop, 0);
5032 }
5033 void add_padBottom(uint32_t padBottom) {
5034 fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_PADBOTTOM, padBottom, 0);
5035 }
5036 void add_poolWidth(uint32_t poolWidth) {
5037 fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_POOLWIDTH, poolWidth, 0);
5038 }
5039 void add_poolHeight(uint32_t poolHeight) {
5040 fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_POOLHEIGHT, poolHeight, 0);
5041 }
5042 void add_strideX(uint32_t strideX) {
5043 fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_STRIDEX, strideX, 0);
5044 }
5045 void add_strideY(uint32_t strideY) {
5046 fbb_.AddElement<uint32_t>(Pooling2dDescriptor::VT_STRIDEY, strideY, 0);
5047 }
5048 void add_outputShapeRounding(armnnSerializer::OutputShapeRounding outputShapeRounding) {
5049 fbb_.AddElement<int8_t>(Pooling2dDescriptor::VT_OUTPUTSHAPEROUNDING, static_cast<int8_t>(outputShapeRounding), 0);
5050 }
5051 void add_paddingMethod(armnnSerializer::PaddingMethod paddingMethod) {
5052 fbb_.AddElement<int8_t>(Pooling2dDescriptor::VT_PADDINGMETHOD, static_cast<int8_t>(paddingMethod), 0);
5053 }
5054 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
5055 fbb_.AddElement<int8_t>(Pooling2dDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
5056 }
5057 explicit Pooling2dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5058 : fbb_(_fbb) {
5059 start_ = fbb_.StartTable();
5060 }
5061 Pooling2dDescriptorBuilder &operator=(const Pooling2dDescriptorBuilder &);
5062 flatbuffers::Offset<Pooling2dDescriptor> Finish() {
5063 const auto end = fbb_.EndTable(start_);
5064 auto o = flatbuffers::Offset<Pooling2dDescriptor>(end);
5065 return o;
5066 }
5067};
5068
5069inline flatbuffers::Offset<Pooling2dDescriptor> CreatePooling2dDescriptor(
5070 flatbuffers::FlatBufferBuilder &_fbb,
5071 armnnSerializer::PoolingAlgorithm poolType = armnnSerializer::PoolingAlgorithm_Max,
5072 uint32_t padLeft = 0,
5073 uint32_t padRight = 0,
5074 uint32_t padTop = 0,
5075 uint32_t padBottom = 0,
5076 uint32_t poolWidth = 0,
5077 uint32_t poolHeight = 0,
5078 uint32_t strideX = 0,
5079 uint32_t strideY = 0,
5080 armnnSerializer::OutputShapeRounding outputShapeRounding = armnnSerializer::OutputShapeRounding_Floor,
5081 armnnSerializer::PaddingMethod paddingMethod = armnnSerializer::PaddingMethod_IgnoreValue,
5082 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC) {
5083 Pooling2dDescriptorBuilder builder_(_fbb);
5084 builder_.add_strideY(strideY);
5085 builder_.add_strideX(strideX);
5086 builder_.add_poolHeight(poolHeight);
5087 builder_.add_poolWidth(poolWidth);
5088 builder_.add_padBottom(padBottom);
5089 builder_.add_padTop(padTop);
5090 builder_.add_padRight(padRight);
5091 builder_.add_padLeft(padLeft);
5092 builder_.add_dataLayout(dataLayout);
5093 builder_.add_paddingMethod(paddingMethod);
5094 builder_.add_outputShapeRounding(outputShapeRounding);
5095 builder_.add_poolType(poolType);
5096 return builder_.Finish();
5097}
5098
Tamas Nyirid998a1c2021-11-05 14:55:33 +00005099struct Pooling3dDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5100 typedef Pooling3dDescriptorBuilder Builder;
5101 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5102 VT_POOLTYPE = 4,
5103 VT_PADLEFT = 6,
5104 VT_PADRIGHT = 8,
5105 VT_PADTOP = 10,
5106 VT_PADBOTTOM = 12,
5107 VT_PADFRONT = 14,
5108 VT_PADBACK = 16,
5109 VT_POOLWIDTH = 18,
5110 VT_POOLHEIGHT = 20,
5111 VT_POOLDEPTH = 22,
5112 VT_STRIDEX = 24,
5113 VT_STRIDEY = 26,
5114 VT_STRIDEZ = 28,
5115 VT_OUTPUTSHAPEROUNDING = 30,
5116 VT_PADDINGMETHOD = 32,
5117 VT_DATALAYOUT = 34
5118 };
5119 armnnSerializer::PoolingAlgorithm poolType() const {
5120 return static_cast<armnnSerializer::PoolingAlgorithm>(GetField<int8_t>(VT_POOLTYPE, 0));
5121 }
5122 uint32_t padLeft() const {
5123 return GetField<uint32_t>(VT_PADLEFT, 0);
5124 }
5125 uint32_t padRight() const {
5126 return GetField<uint32_t>(VT_PADRIGHT, 0);
5127 }
5128 uint32_t padTop() const {
5129 return GetField<uint32_t>(VT_PADTOP, 0);
5130 }
5131 uint32_t padBottom() const {
5132 return GetField<uint32_t>(VT_PADBOTTOM, 0);
5133 }
5134 uint32_t padFront() const {
5135 return GetField<uint32_t>(VT_PADFRONT, 0);
5136 }
5137 uint32_t padBack() const {
5138 return GetField<uint32_t>(VT_PADBACK, 0);
5139 }
5140 uint32_t poolWidth() const {
5141 return GetField<uint32_t>(VT_POOLWIDTH, 0);
5142 }
5143 uint32_t poolHeight() const {
5144 return GetField<uint32_t>(VT_POOLHEIGHT, 0);
5145 }
5146 uint32_t poolDepth() const {
5147 return GetField<uint32_t>(VT_POOLDEPTH, 0);
5148 }
5149 uint32_t strideX() const {
5150 return GetField<uint32_t>(VT_STRIDEX, 0);
5151 }
5152 uint32_t strideY() const {
5153 return GetField<uint32_t>(VT_STRIDEY, 0);
5154 }
5155 uint32_t strideZ() const {
5156 return GetField<uint32_t>(VT_STRIDEZ, 0);
5157 }
5158 armnnSerializer::OutputShapeRounding outputShapeRounding() const {
5159 return static_cast<armnnSerializer::OutputShapeRounding>(GetField<int8_t>(VT_OUTPUTSHAPEROUNDING, 0));
5160 }
5161 armnnSerializer::PaddingMethod paddingMethod() const {
5162 return static_cast<armnnSerializer::PaddingMethod>(GetField<int8_t>(VT_PADDINGMETHOD, 0));
5163 }
5164 armnnSerializer::DataLayout dataLayout() const {
5165 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
5166 }
5167 bool Verify(flatbuffers::Verifier &verifier) const {
5168 return VerifyTableStart(verifier) &&
5169 VerifyField<int8_t>(verifier, VT_POOLTYPE) &&
5170 VerifyField<uint32_t>(verifier, VT_PADLEFT) &&
5171 VerifyField<uint32_t>(verifier, VT_PADRIGHT) &&
5172 VerifyField<uint32_t>(verifier, VT_PADTOP) &&
5173 VerifyField<uint32_t>(verifier, VT_PADBOTTOM) &&
5174 VerifyField<uint32_t>(verifier, VT_PADFRONT) &&
5175 VerifyField<uint32_t>(verifier, VT_PADBACK) &&
5176 VerifyField<uint32_t>(verifier, VT_POOLWIDTH) &&
5177 VerifyField<uint32_t>(verifier, VT_POOLHEIGHT) &&
5178 VerifyField<uint32_t>(verifier, VT_POOLDEPTH) &&
5179 VerifyField<uint32_t>(verifier, VT_STRIDEX) &&
5180 VerifyField<uint32_t>(verifier, VT_STRIDEY) &&
5181 VerifyField<uint32_t>(verifier, VT_STRIDEZ) &&
5182 VerifyField<int8_t>(verifier, VT_OUTPUTSHAPEROUNDING) &&
5183 VerifyField<int8_t>(verifier, VT_PADDINGMETHOD) &&
5184 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
5185 verifier.EndTable();
5186 }
5187};
5188
5189struct Pooling3dDescriptorBuilder {
5190 typedef Pooling3dDescriptor Table;
5191 flatbuffers::FlatBufferBuilder &fbb_;
5192 flatbuffers::uoffset_t start_;
5193 void add_poolType(armnnSerializer::PoolingAlgorithm poolType) {
5194 fbb_.AddElement<int8_t>(Pooling3dDescriptor::VT_POOLTYPE, static_cast<int8_t>(poolType), 0);
5195 }
5196 void add_padLeft(uint32_t padLeft) {
5197 fbb_.AddElement<uint32_t>(Pooling3dDescriptor::VT_PADLEFT, padLeft, 0);
5198 }
5199 void add_padRight(uint32_t padRight) {
5200 fbb_.AddElement<uint32_t>(Pooling3dDescriptor::VT_PADRIGHT, padRight, 0);
5201 }
5202 void add_padTop(uint32_t padTop) {
5203 fbb_.AddElement<uint32_t>(Pooling3dDescriptor::VT_PADTOP, padTop, 0);
5204 }
5205 void add_padBottom(uint32_t padBottom) {
5206 fbb_.AddElement<uint32_t>(Pooling3dDescriptor::VT_PADBOTTOM, padBottom, 0);
5207 }
5208 void add_padFront(uint32_t padFront) {
5209 fbb_.AddElement<uint32_t>(Pooling3dDescriptor::VT_PADFRONT, padFront, 0);
5210 }
5211 void add_padBack(uint32_t padBack) {
5212 fbb_.AddElement<uint32_t>(Pooling3dDescriptor::VT_PADBACK, padBack, 0);
5213 }
5214 void add_poolWidth(uint32_t poolWidth) {
5215 fbb_.AddElement<uint32_t>(Pooling3dDescriptor::VT_POOLWIDTH, poolWidth, 0);
5216 }
5217 void add_poolHeight(uint32_t poolHeight) {
5218 fbb_.AddElement<uint32_t>(Pooling3dDescriptor::VT_POOLHEIGHT, poolHeight, 0);
5219 }
5220 void add_poolDepth(uint32_t poolDepth) {
5221 fbb_.AddElement<uint32_t>(Pooling3dDescriptor::VT_POOLDEPTH, poolDepth, 0);
5222 }
5223 void add_strideX(uint32_t strideX) {
5224 fbb_.AddElement<uint32_t>(Pooling3dDescriptor::VT_STRIDEX, strideX, 0);
5225 }
5226 void add_strideY(uint32_t strideY) {
5227 fbb_.AddElement<uint32_t>(Pooling3dDescriptor::VT_STRIDEY, strideY, 0);
5228 }
5229 void add_strideZ(uint32_t strideZ) {
5230 fbb_.AddElement<uint32_t>(Pooling3dDescriptor::VT_STRIDEZ, strideZ, 0);
5231 }
5232 void add_outputShapeRounding(armnnSerializer::OutputShapeRounding outputShapeRounding) {
5233 fbb_.AddElement<int8_t>(Pooling3dDescriptor::VT_OUTPUTSHAPEROUNDING, static_cast<int8_t>(outputShapeRounding), 0);
5234 }
5235 void add_paddingMethod(armnnSerializer::PaddingMethod paddingMethod) {
5236 fbb_.AddElement<int8_t>(Pooling3dDescriptor::VT_PADDINGMETHOD, static_cast<int8_t>(paddingMethod), 0);
5237 }
5238 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
5239 fbb_.AddElement<int8_t>(Pooling3dDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
5240 }
5241 explicit Pooling3dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5242 : fbb_(_fbb) {
5243 start_ = fbb_.StartTable();
5244 }
5245 Pooling3dDescriptorBuilder &operator=(const Pooling3dDescriptorBuilder &);
5246 flatbuffers::Offset<Pooling3dDescriptor> Finish() {
5247 const auto end = fbb_.EndTable(start_);
5248 auto o = flatbuffers::Offset<Pooling3dDescriptor>(end);
5249 return o;
5250 }
5251};
5252
5253inline flatbuffers::Offset<Pooling3dDescriptor> CreatePooling3dDescriptor(
5254 flatbuffers::FlatBufferBuilder &_fbb,
5255 armnnSerializer::PoolingAlgorithm poolType = armnnSerializer::PoolingAlgorithm_Max,
5256 uint32_t padLeft = 0,
5257 uint32_t padRight = 0,
5258 uint32_t padTop = 0,
5259 uint32_t padBottom = 0,
5260 uint32_t padFront = 0,
5261 uint32_t padBack = 0,
5262 uint32_t poolWidth = 0,
5263 uint32_t poolHeight = 0,
5264 uint32_t poolDepth = 0,
5265 uint32_t strideX = 0,
5266 uint32_t strideY = 0,
5267 uint32_t strideZ = 0,
5268 armnnSerializer::OutputShapeRounding outputShapeRounding = armnnSerializer::OutputShapeRounding_Floor,
5269 armnnSerializer::PaddingMethod paddingMethod = armnnSerializer::PaddingMethod_IgnoreValue,
5270 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC) {
5271 Pooling3dDescriptorBuilder builder_(_fbb);
5272 builder_.add_strideZ(strideZ);
5273 builder_.add_strideY(strideY);
5274 builder_.add_strideX(strideX);
5275 builder_.add_poolDepth(poolDepth);
5276 builder_.add_poolHeight(poolHeight);
5277 builder_.add_poolWidth(poolWidth);
5278 builder_.add_padBack(padBack);
5279 builder_.add_padFront(padFront);
5280 builder_.add_padBottom(padBottom);
5281 builder_.add_padTop(padTop);
5282 builder_.add_padRight(padRight);
5283 builder_.add_padLeft(padLeft);
5284 builder_.add_dataLayout(dataLayout);
5285 builder_.add_paddingMethod(paddingMethod);
5286 builder_.add_outputShapeRounding(outputShapeRounding);
5287 builder_.add_poolType(poolType);
5288 return builder_.Finish();
5289}
5290
Sadik Armagan97bf84f2021-01-13 15:06:38 +00005291struct QuantizeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5292 typedef QuantizeLayerBuilder Builder;
5293 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5294 VT_BASE = 4
5295 };
5296 const armnnSerializer::LayerBase *base() const {
5297 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5298 }
5299 bool Verify(flatbuffers::Verifier &verifier) const {
5300 return VerifyTableStart(verifier) &&
5301 VerifyOffset(verifier, VT_BASE) &&
5302 verifier.VerifyTable(base()) &&
5303 verifier.EndTable();
5304 }
5305};
5306
5307struct QuantizeLayerBuilder {
5308 typedef QuantizeLayer Table;
5309 flatbuffers::FlatBufferBuilder &fbb_;
5310 flatbuffers::uoffset_t start_;
5311 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5312 fbb_.AddOffset(QuantizeLayer::VT_BASE, base);
5313 }
5314 explicit QuantizeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5315 : fbb_(_fbb) {
5316 start_ = fbb_.StartTable();
5317 }
5318 QuantizeLayerBuilder &operator=(const QuantizeLayerBuilder &);
5319 flatbuffers::Offset<QuantizeLayer> Finish() {
5320 const auto end = fbb_.EndTable(start_);
5321 auto o = flatbuffers::Offset<QuantizeLayer>(end);
5322 return o;
5323 }
5324};
5325
5326inline flatbuffers::Offset<QuantizeLayer> CreateQuantizeLayer(
5327 flatbuffers::FlatBufferBuilder &_fbb,
5328 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
5329 QuantizeLayerBuilder builder_(_fbb);
5330 builder_.add_base(base);
5331 return builder_.Finish();
5332}
5333
5334struct SoftmaxLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5335 typedef SoftmaxLayerBuilder Builder;
5336 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5337 VT_BASE = 4,
5338 VT_DESCRIPTOR = 6
5339 };
5340 const armnnSerializer::LayerBase *base() const {
5341 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5342 }
5343 const armnnSerializer::SoftmaxDescriptor *descriptor() const {
5344 return GetPointer<const armnnSerializer::SoftmaxDescriptor *>(VT_DESCRIPTOR);
5345 }
5346 bool Verify(flatbuffers::Verifier &verifier) const {
5347 return VerifyTableStart(verifier) &&
5348 VerifyOffset(verifier, VT_BASE) &&
5349 verifier.VerifyTable(base()) &&
5350 VerifyOffset(verifier, VT_DESCRIPTOR) &&
5351 verifier.VerifyTable(descriptor()) &&
5352 verifier.EndTable();
5353 }
5354};
5355
5356struct SoftmaxLayerBuilder {
5357 typedef SoftmaxLayer Table;
5358 flatbuffers::FlatBufferBuilder &fbb_;
5359 flatbuffers::uoffset_t start_;
5360 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5361 fbb_.AddOffset(SoftmaxLayer::VT_BASE, base);
5362 }
5363 void add_descriptor(flatbuffers::Offset<armnnSerializer::SoftmaxDescriptor> descriptor) {
5364 fbb_.AddOffset(SoftmaxLayer::VT_DESCRIPTOR, descriptor);
5365 }
5366 explicit SoftmaxLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5367 : fbb_(_fbb) {
5368 start_ = fbb_.StartTable();
5369 }
5370 SoftmaxLayerBuilder &operator=(const SoftmaxLayerBuilder &);
5371 flatbuffers::Offset<SoftmaxLayer> Finish() {
5372 const auto end = fbb_.EndTable(start_);
5373 auto o = flatbuffers::Offset<SoftmaxLayer>(end);
5374 return o;
5375 }
5376};
5377
5378inline flatbuffers::Offset<SoftmaxLayer> CreateSoftmaxLayer(
5379 flatbuffers::FlatBufferBuilder &_fbb,
5380 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
5381 flatbuffers::Offset<armnnSerializer::SoftmaxDescriptor> descriptor = 0) {
5382 SoftmaxLayerBuilder builder_(_fbb);
5383 builder_.add_descriptor(descriptor);
5384 builder_.add_base(base);
5385 return builder_.Finish();
5386}
5387
5388struct SoftmaxDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5389 typedef SoftmaxDescriptorBuilder Builder;
5390 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Sadik Armaganfd0cae32021-11-08 17:18:31 +00005391 VT_BETA = 4,
5392 VT_AXIS = 6
Sadik Armagan97bf84f2021-01-13 15:06:38 +00005393 };
5394 float beta() const {
5395 return GetField<float>(VT_BETA, 0.0f);
5396 }
Sadik Armaganfd0cae32021-11-08 17:18:31 +00005397 int32_t axis() const {
5398 return GetField<int32_t>(VT_AXIS, -1);
5399 }
Sadik Armagan97bf84f2021-01-13 15:06:38 +00005400 bool Verify(flatbuffers::Verifier &verifier) const {
5401 return VerifyTableStart(verifier) &&
5402 VerifyField<float>(verifier, VT_BETA) &&
Sadik Armaganfd0cae32021-11-08 17:18:31 +00005403 VerifyField<int32_t>(verifier, VT_AXIS) &&
Sadik Armagan97bf84f2021-01-13 15:06:38 +00005404 verifier.EndTable();
5405 }
5406};
5407
5408struct SoftmaxDescriptorBuilder {
5409 typedef SoftmaxDescriptor Table;
5410 flatbuffers::FlatBufferBuilder &fbb_;
5411 flatbuffers::uoffset_t start_;
5412 void add_beta(float beta) {
5413 fbb_.AddElement<float>(SoftmaxDescriptor::VT_BETA, beta, 0.0f);
5414 }
Sadik Armaganfd0cae32021-11-08 17:18:31 +00005415 void add_axis(int32_t axis) {
5416 fbb_.AddElement<int32_t>(SoftmaxDescriptor::VT_AXIS, axis, -1);
5417 }
Sadik Armagan97bf84f2021-01-13 15:06:38 +00005418 explicit SoftmaxDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5419 : fbb_(_fbb) {
5420 start_ = fbb_.StartTable();
5421 }
5422 SoftmaxDescriptorBuilder &operator=(const SoftmaxDescriptorBuilder &);
5423 flatbuffers::Offset<SoftmaxDescriptor> Finish() {
5424 const auto end = fbb_.EndTable(start_);
5425 auto o = flatbuffers::Offset<SoftmaxDescriptor>(end);
5426 return o;
5427 }
5428};
5429
5430inline flatbuffers::Offset<SoftmaxDescriptor> CreateSoftmaxDescriptor(
5431 flatbuffers::FlatBufferBuilder &_fbb,
Sadik Armaganfd0cae32021-11-08 17:18:31 +00005432 float beta = 0.0f,
5433 int32_t axis = -1) {
Sadik Armagan97bf84f2021-01-13 15:06:38 +00005434 SoftmaxDescriptorBuilder builder_(_fbb);
Sadik Armaganfd0cae32021-11-08 17:18:31 +00005435 builder_.add_axis(axis);
Sadik Armagan97bf84f2021-01-13 15:06:38 +00005436 builder_.add_beta(beta);
5437 return builder_.Finish();
5438}
5439
5440struct DepthwiseConvolution2dLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5441 typedef DepthwiseConvolution2dLayerBuilder Builder;
5442 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5443 VT_BASE = 4,
5444 VT_DESCRIPTOR = 6,
5445 VT_WEIGHTS = 8,
5446 VT_BIASES = 10
5447 };
5448 const armnnSerializer::LayerBase *base() const {
5449 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5450 }
5451 const armnnSerializer::DepthwiseConvolution2dDescriptor *descriptor() const {
5452 return GetPointer<const armnnSerializer::DepthwiseConvolution2dDescriptor *>(VT_DESCRIPTOR);
5453 }
5454 const armnnSerializer::ConstTensor *weights() const {
5455 return GetPointer<const armnnSerializer::ConstTensor *>(VT_WEIGHTS);
5456 }
5457 const armnnSerializer::ConstTensor *biases() const {
5458 return GetPointer<const armnnSerializer::ConstTensor *>(VT_BIASES);
5459 }
5460 bool Verify(flatbuffers::Verifier &verifier) const {
5461 return VerifyTableStart(verifier) &&
5462 VerifyOffset(verifier, VT_BASE) &&
5463 verifier.VerifyTable(base()) &&
5464 VerifyOffset(verifier, VT_DESCRIPTOR) &&
5465 verifier.VerifyTable(descriptor()) &&
5466 VerifyOffset(verifier, VT_WEIGHTS) &&
5467 verifier.VerifyTable(weights()) &&
5468 VerifyOffset(verifier, VT_BIASES) &&
5469 verifier.VerifyTable(biases()) &&
5470 verifier.EndTable();
5471 }
5472};
5473
5474struct DepthwiseConvolution2dLayerBuilder {
5475 typedef DepthwiseConvolution2dLayer Table;
5476 flatbuffers::FlatBufferBuilder &fbb_;
5477 flatbuffers::uoffset_t start_;
5478 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5479 fbb_.AddOffset(DepthwiseConvolution2dLayer::VT_BASE, base);
5480 }
5481 void add_descriptor(flatbuffers::Offset<armnnSerializer::DepthwiseConvolution2dDescriptor> descriptor) {
5482 fbb_.AddOffset(DepthwiseConvolution2dLayer::VT_DESCRIPTOR, descriptor);
5483 }
5484 void add_weights(flatbuffers::Offset<armnnSerializer::ConstTensor> weights) {
5485 fbb_.AddOffset(DepthwiseConvolution2dLayer::VT_WEIGHTS, weights);
5486 }
5487 void add_biases(flatbuffers::Offset<armnnSerializer::ConstTensor> biases) {
5488 fbb_.AddOffset(DepthwiseConvolution2dLayer::VT_BIASES, biases);
5489 }
5490 explicit DepthwiseConvolution2dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5491 : fbb_(_fbb) {
5492 start_ = fbb_.StartTable();
5493 }
5494 DepthwiseConvolution2dLayerBuilder &operator=(const DepthwiseConvolution2dLayerBuilder &);
5495 flatbuffers::Offset<DepthwiseConvolution2dLayer> Finish() {
5496 const auto end = fbb_.EndTable(start_);
5497 auto o = flatbuffers::Offset<DepthwiseConvolution2dLayer>(end);
5498 return o;
5499 }
5500};
5501
5502inline flatbuffers::Offset<DepthwiseConvolution2dLayer> CreateDepthwiseConvolution2dLayer(
5503 flatbuffers::FlatBufferBuilder &_fbb,
5504 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
5505 flatbuffers::Offset<armnnSerializer::DepthwiseConvolution2dDescriptor> descriptor = 0,
5506 flatbuffers::Offset<armnnSerializer::ConstTensor> weights = 0,
5507 flatbuffers::Offset<armnnSerializer::ConstTensor> biases = 0) {
5508 DepthwiseConvolution2dLayerBuilder builder_(_fbb);
5509 builder_.add_biases(biases);
5510 builder_.add_weights(weights);
5511 builder_.add_descriptor(descriptor);
5512 builder_.add_base(base);
5513 return builder_.Finish();
5514}
5515
5516struct DepthwiseConvolution2dDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5517 typedef DepthwiseConvolution2dDescriptorBuilder Builder;
5518 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5519 VT_PADLEFT = 4,
5520 VT_PADRIGHT = 6,
5521 VT_PADTOP = 8,
5522 VT_PADBOTTOM = 10,
5523 VT_STRIDEX = 12,
5524 VT_STRIDEY = 14,
5525 VT_DILATIONX = 16,
5526 VT_DILATIONY = 18,
5527 VT_BIASENABLED = 20,
5528 VT_DATALAYOUT = 22
5529 };
5530 uint32_t padLeft() const {
5531 return GetField<uint32_t>(VT_PADLEFT, 0);
5532 }
5533 uint32_t padRight() const {
5534 return GetField<uint32_t>(VT_PADRIGHT, 0);
5535 }
5536 uint32_t padTop() const {
5537 return GetField<uint32_t>(VT_PADTOP, 0);
5538 }
5539 uint32_t padBottom() const {
5540 return GetField<uint32_t>(VT_PADBOTTOM, 0);
5541 }
5542 uint32_t strideX() const {
5543 return GetField<uint32_t>(VT_STRIDEX, 0);
5544 }
5545 uint32_t strideY() const {
5546 return GetField<uint32_t>(VT_STRIDEY, 0);
5547 }
5548 uint32_t dilationX() const {
5549 return GetField<uint32_t>(VT_DILATIONX, 1);
5550 }
5551 uint32_t dilationY() const {
5552 return GetField<uint32_t>(VT_DILATIONY, 1);
5553 }
5554 bool biasEnabled() const {
5555 return GetField<uint8_t>(VT_BIASENABLED, 0) != 0;
5556 }
5557 armnnSerializer::DataLayout dataLayout() const {
5558 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 1));
5559 }
5560 bool Verify(flatbuffers::Verifier &verifier) const {
5561 return VerifyTableStart(verifier) &&
5562 VerifyField<uint32_t>(verifier, VT_PADLEFT) &&
5563 VerifyField<uint32_t>(verifier, VT_PADRIGHT) &&
5564 VerifyField<uint32_t>(verifier, VT_PADTOP) &&
5565 VerifyField<uint32_t>(verifier, VT_PADBOTTOM) &&
5566 VerifyField<uint32_t>(verifier, VT_STRIDEX) &&
5567 VerifyField<uint32_t>(verifier, VT_STRIDEY) &&
5568 VerifyField<uint32_t>(verifier, VT_DILATIONX) &&
5569 VerifyField<uint32_t>(verifier, VT_DILATIONY) &&
5570 VerifyField<uint8_t>(verifier, VT_BIASENABLED) &&
5571 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
5572 verifier.EndTable();
5573 }
5574};
5575
5576struct DepthwiseConvolution2dDescriptorBuilder {
5577 typedef DepthwiseConvolution2dDescriptor Table;
5578 flatbuffers::FlatBufferBuilder &fbb_;
5579 flatbuffers::uoffset_t start_;
5580 void add_padLeft(uint32_t padLeft) {
5581 fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_PADLEFT, padLeft, 0);
5582 }
5583 void add_padRight(uint32_t padRight) {
5584 fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_PADRIGHT, padRight, 0);
5585 }
5586 void add_padTop(uint32_t padTop) {
5587 fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_PADTOP, padTop, 0);
5588 }
5589 void add_padBottom(uint32_t padBottom) {
5590 fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_PADBOTTOM, padBottom, 0);
5591 }
5592 void add_strideX(uint32_t strideX) {
5593 fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_STRIDEX, strideX, 0);
5594 }
5595 void add_strideY(uint32_t strideY) {
5596 fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_STRIDEY, strideY, 0);
5597 }
5598 void add_dilationX(uint32_t dilationX) {
5599 fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_DILATIONX, dilationX, 1);
5600 }
5601 void add_dilationY(uint32_t dilationY) {
5602 fbb_.AddElement<uint32_t>(DepthwiseConvolution2dDescriptor::VT_DILATIONY, dilationY, 1);
5603 }
5604 void add_biasEnabled(bool biasEnabled) {
5605 fbb_.AddElement<uint8_t>(DepthwiseConvolution2dDescriptor::VT_BIASENABLED, static_cast<uint8_t>(biasEnabled), 0);
5606 }
5607 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
5608 fbb_.AddElement<int8_t>(DepthwiseConvolution2dDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 1);
5609 }
5610 explicit DepthwiseConvolution2dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5611 : fbb_(_fbb) {
5612 start_ = fbb_.StartTable();
5613 }
5614 DepthwiseConvolution2dDescriptorBuilder &operator=(const DepthwiseConvolution2dDescriptorBuilder &);
5615 flatbuffers::Offset<DepthwiseConvolution2dDescriptor> Finish() {
5616 const auto end = fbb_.EndTable(start_);
5617 auto o = flatbuffers::Offset<DepthwiseConvolution2dDescriptor>(end);
5618 return o;
5619 }
5620};
5621
5622inline flatbuffers::Offset<DepthwiseConvolution2dDescriptor> CreateDepthwiseConvolution2dDescriptor(
5623 flatbuffers::FlatBufferBuilder &_fbb,
5624 uint32_t padLeft = 0,
5625 uint32_t padRight = 0,
5626 uint32_t padTop = 0,
5627 uint32_t padBottom = 0,
5628 uint32_t strideX = 0,
5629 uint32_t strideY = 0,
5630 uint32_t dilationX = 1,
5631 uint32_t dilationY = 1,
5632 bool biasEnabled = false,
5633 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NCHW) {
5634 DepthwiseConvolution2dDescriptorBuilder builder_(_fbb);
5635 builder_.add_dilationY(dilationY);
5636 builder_.add_dilationX(dilationX);
5637 builder_.add_strideY(strideY);
5638 builder_.add_strideX(strideX);
5639 builder_.add_padBottom(padBottom);
5640 builder_.add_padTop(padTop);
5641 builder_.add_padRight(padRight);
5642 builder_.add_padLeft(padLeft);
5643 builder_.add_dataLayout(dataLayout);
5644 builder_.add_biasEnabled(biasEnabled);
5645 return builder_.Finish();
5646}
5647
5648struct OutputLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5649 typedef OutputLayerBuilder Builder;
5650 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5651 VT_BASE = 4
5652 };
5653 const armnnSerializer::BindableLayerBase *base() const {
5654 return GetPointer<const armnnSerializer::BindableLayerBase *>(VT_BASE);
5655 }
5656 bool Verify(flatbuffers::Verifier &verifier) const {
5657 return VerifyTableStart(verifier) &&
5658 VerifyOffset(verifier, VT_BASE) &&
5659 verifier.VerifyTable(base()) &&
5660 verifier.EndTable();
5661 }
5662};
5663
5664struct OutputLayerBuilder {
5665 typedef OutputLayer Table;
5666 flatbuffers::FlatBufferBuilder &fbb_;
5667 flatbuffers::uoffset_t start_;
5668 void add_base(flatbuffers::Offset<armnnSerializer::BindableLayerBase> base) {
5669 fbb_.AddOffset(OutputLayer::VT_BASE, base);
5670 }
5671 explicit OutputLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5672 : fbb_(_fbb) {
5673 start_ = fbb_.StartTable();
5674 }
5675 OutputLayerBuilder &operator=(const OutputLayerBuilder &);
5676 flatbuffers::Offset<OutputLayer> Finish() {
5677 const auto end = fbb_.EndTable(start_);
5678 auto o = flatbuffers::Offset<OutputLayer>(end);
5679 return o;
5680 }
5681};
5682
5683inline flatbuffers::Offset<OutputLayer> CreateOutputLayer(
5684 flatbuffers::FlatBufferBuilder &_fbb,
5685 flatbuffers::Offset<armnnSerializer::BindableLayerBase> base = 0) {
5686 OutputLayerBuilder builder_(_fbb);
5687 builder_.add_base(base);
5688 return builder_.Finish();
5689}
5690
5691struct ReshapeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5692 typedef ReshapeLayerBuilder Builder;
5693 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5694 VT_BASE = 4,
5695 VT_DESCRIPTOR = 6
5696 };
5697 const armnnSerializer::LayerBase *base() const {
5698 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5699 }
5700 const armnnSerializer::ReshapeDescriptor *descriptor() const {
5701 return GetPointer<const armnnSerializer::ReshapeDescriptor *>(VT_DESCRIPTOR);
5702 }
5703 bool Verify(flatbuffers::Verifier &verifier) const {
5704 return VerifyTableStart(verifier) &&
5705 VerifyOffset(verifier, VT_BASE) &&
5706 verifier.VerifyTable(base()) &&
5707 VerifyOffset(verifier, VT_DESCRIPTOR) &&
5708 verifier.VerifyTable(descriptor()) &&
5709 verifier.EndTable();
5710 }
5711};
5712
5713struct ReshapeLayerBuilder {
5714 typedef ReshapeLayer Table;
5715 flatbuffers::FlatBufferBuilder &fbb_;
5716 flatbuffers::uoffset_t start_;
5717 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5718 fbb_.AddOffset(ReshapeLayer::VT_BASE, base);
5719 }
5720 void add_descriptor(flatbuffers::Offset<armnnSerializer::ReshapeDescriptor> descriptor) {
5721 fbb_.AddOffset(ReshapeLayer::VT_DESCRIPTOR, descriptor);
5722 }
5723 explicit ReshapeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5724 : fbb_(_fbb) {
5725 start_ = fbb_.StartTable();
5726 }
5727 ReshapeLayerBuilder &operator=(const ReshapeLayerBuilder &);
5728 flatbuffers::Offset<ReshapeLayer> Finish() {
5729 const auto end = fbb_.EndTable(start_);
5730 auto o = flatbuffers::Offset<ReshapeLayer>(end);
5731 return o;
5732 }
5733};
5734
5735inline flatbuffers::Offset<ReshapeLayer> CreateReshapeLayer(
5736 flatbuffers::FlatBufferBuilder &_fbb,
5737 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
5738 flatbuffers::Offset<armnnSerializer::ReshapeDescriptor> descriptor = 0) {
5739 ReshapeLayerBuilder builder_(_fbb);
5740 builder_.add_descriptor(descriptor);
5741 builder_.add_base(base);
5742 return builder_.Finish();
5743}
5744
5745struct ReshapeDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5746 typedef ReshapeDescriptorBuilder Builder;
5747 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5748 VT_TARGETSHAPE = 4
5749 };
5750 const flatbuffers::Vector<uint32_t> *targetShape() const {
5751 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_TARGETSHAPE);
5752 }
5753 bool Verify(flatbuffers::Verifier &verifier) const {
5754 return VerifyTableStart(verifier) &&
5755 VerifyOffset(verifier, VT_TARGETSHAPE) &&
5756 verifier.VerifyVector(targetShape()) &&
5757 verifier.EndTable();
5758 }
5759};
5760
5761struct ReshapeDescriptorBuilder {
5762 typedef ReshapeDescriptor Table;
5763 flatbuffers::FlatBufferBuilder &fbb_;
5764 flatbuffers::uoffset_t start_;
5765 void add_targetShape(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> targetShape) {
5766 fbb_.AddOffset(ReshapeDescriptor::VT_TARGETSHAPE, targetShape);
5767 }
5768 explicit ReshapeDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5769 : fbb_(_fbb) {
5770 start_ = fbb_.StartTable();
5771 }
5772 ReshapeDescriptorBuilder &operator=(const ReshapeDescriptorBuilder &);
5773 flatbuffers::Offset<ReshapeDescriptor> Finish() {
5774 const auto end = fbb_.EndTable(start_);
5775 auto o = flatbuffers::Offset<ReshapeDescriptor>(end);
5776 return o;
5777 }
5778};
5779
5780inline flatbuffers::Offset<ReshapeDescriptor> CreateReshapeDescriptor(
5781 flatbuffers::FlatBufferBuilder &_fbb,
5782 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> targetShape = 0) {
5783 ReshapeDescriptorBuilder builder_(_fbb);
5784 builder_.add_targetShape(targetShape);
5785 return builder_.Finish();
5786}
5787
5788inline flatbuffers::Offset<ReshapeDescriptor> CreateReshapeDescriptorDirect(
5789 flatbuffers::FlatBufferBuilder &_fbb,
5790 const std::vector<uint32_t> *targetShape = nullptr) {
5791 auto targetShape__ = targetShape ? _fbb.CreateVector<uint32_t>(*targetShape) : 0;
5792 return armnnSerializer::CreateReshapeDescriptor(
5793 _fbb,
5794 targetShape__);
5795}
5796
5797struct PermuteLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5798 typedef PermuteLayerBuilder Builder;
5799 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5800 VT_BASE = 4,
5801 VT_DESCRIPTOR = 6
5802 };
5803 const armnnSerializer::LayerBase *base() const {
5804 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5805 }
5806 const armnnSerializer::PermuteDescriptor *descriptor() const {
5807 return GetPointer<const armnnSerializer::PermuteDescriptor *>(VT_DESCRIPTOR);
5808 }
5809 bool Verify(flatbuffers::Verifier &verifier) const {
5810 return VerifyTableStart(verifier) &&
5811 VerifyOffset(verifier, VT_BASE) &&
5812 verifier.VerifyTable(base()) &&
5813 VerifyOffset(verifier, VT_DESCRIPTOR) &&
5814 verifier.VerifyTable(descriptor()) &&
5815 verifier.EndTable();
5816 }
5817};
5818
5819struct PermuteLayerBuilder {
5820 typedef PermuteLayer Table;
5821 flatbuffers::FlatBufferBuilder &fbb_;
5822 flatbuffers::uoffset_t start_;
5823 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5824 fbb_.AddOffset(PermuteLayer::VT_BASE, base);
5825 }
5826 void add_descriptor(flatbuffers::Offset<armnnSerializer::PermuteDescriptor> descriptor) {
5827 fbb_.AddOffset(PermuteLayer::VT_DESCRIPTOR, descriptor);
5828 }
5829 explicit PermuteLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5830 : fbb_(_fbb) {
5831 start_ = fbb_.StartTable();
5832 }
5833 PermuteLayerBuilder &operator=(const PermuteLayerBuilder &);
5834 flatbuffers::Offset<PermuteLayer> Finish() {
5835 const auto end = fbb_.EndTable(start_);
5836 auto o = flatbuffers::Offset<PermuteLayer>(end);
5837 return o;
5838 }
5839};
5840
5841inline flatbuffers::Offset<PermuteLayer> CreatePermuteLayer(
5842 flatbuffers::FlatBufferBuilder &_fbb,
5843 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
5844 flatbuffers::Offset<armnnSerializer::PermuteDescriptor> descriptor = 0) {
5845 PermuteLayerBuilder builder_(_fbb);
5846 builder_.add_descriptor(descriptor);
5847 builder_.add_base(base);
5848 return builder_.Finish();
5849}
5850
5851struct PermuteDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5852 typedef PermuteDescriptorBuilder Builder;
5853 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5854 VT_DIMMAPPINGS = 4
5855 };
5856 const flatbuffers::Vector<uint32_t> *dimMappings() const {
5857 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_DIMMAPPINGS);
5858 }
5859 bool Verify(flatbuffers::Verifier &verifier) const {
5860 return VerifyTableStart(verifier) &&
5861 VerifyOffset(verifier, VT_DIMMAPPINGS) &&
5862 verifier.VerifyVector(dimMappings()) &&
5863 verifier.EndTable();
5864 }
5865};
5866
5867struct PermuteDescriptorBuilder {
5868 typedef PermuteDescriptor Table;
5869 flatbuffers::FlatBufferBuilder &fbb_;
5870 flatbuffers::uoffset_t start_;
5871 void add_dimMappings(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> dimMappings) {
5872 fbb_.AddOffset(PermuteDescriptor::VT_DIMMAPPINGS, dimMappings);
5873 }
5874 explicit PermuteDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5875 : fbb_(_fbb) {
5876 start_ = fbb_.StartTable();
5877 }
5878 PermuteDescriptorBuilder &operator=(const PermuteDescriptorBuilder &);
5879 flatbuffers::Offset<PermuteDescriptor> Finish() {
5880 const auto end = fbb_.EndTable(start_);
5881 auto o = flatbuffers::Offset<PermuteDescriptor>(end);
5882 return o;
5883 }
5884};
5885
5886inline flatbuffers::Offset<PermuteDescriptor> CreatePermuteDescriptor(
5887 flatbuffers::FlatBufferBuilder &_fbb,
5888 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> dimMappings = 0) {
5889 PermuteDescriptorBuilder builder_(_fbb);
5890 builder_.add_dimMappings(dimMappings);
5891 return builder_.Finish();
5892}
5893
5894inline flatbuffers::Offset<PermuteDescriptor> CreatePermuteDescriptorDirect(
5895 flatbuffers::FlatBufferBuilder &_fbb,
5896 const std::vector<uint32_t> *dimMappings = nullptr) {
5897 auto dimMappings__ = dimMappings ? _fbb.CreateVector<uint32_t>(*dimMappings) : 0;
5898 return armnnSerializer::CreatePermuteDescriptor(
5899 _fbb,
5900 dimMappings__);
5901}
5902
Keith Davis3ae3f972021-05-21 16:33:48 +01005903struct ShapeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5904 typedef ShapeLayerBuilder Builder;
5905 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5906 VT_BASE = 4
5907 };
5908 const armnnSerializer::LayerBase *base() const {
5909 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5910 }
5911 bool Verify(flatbuffers::Verifier &verifier) const {
5912 return VerifyTableStart(verifier) &&
5913 VerifyOffset(verifier, VT_BASE) &&
5914 verifier.VerifyTable(base()) &&
5915 verifier.EndTable();
5916 }
5917};
5918
5919struct ShapeLayerBuilder {
5920 typedef ShapeLayer Table;
5921 flatbuffers::FlatBufferBuilder &fbb_;
5922 flatbuffers::uoffset_t start_;
5923 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5924 fbb_.AddOffset(ShapeLayer::VT_BASE, base);
5925 }
5926 explicit ShapeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5927 : fbb_(_fbb) {
5928 start_ = fbb_.StartTable();
5929 }
5930 ShapeLayerBuilder &operator=(const ShapeLayerBuilder &);
5931 flatbuffers::Offset<ShapeLayer> Finish() {
5932 const auto end = fbb_.EndTable(start_);
5933 auto o = flatbuffers::Offset<ShapeLayer>(end);
5934 return o;
5935 }
5936};
5937
5938inline flatbuffers::Offset<ShapeLayer> CreateShapeLayer(
5939 flatbuffers::FlatBufferBuilder &_fbb,
5940 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
5941 ShapeLayerBuilder builder_(_fbb);
5942 builder_.add_base(base);
5943 return builder_.Finish();
5944}
5945
Sadik Armagan97bf84f2021-01-13 15:06:38 +00005946struct SpaceToBatchNdLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
5947 typedef SpaceToBatchNdLayerBuilder Builder;
5948 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
5949 VT_BASE = 4,
5950 VT_DESCRIPTOR = 6
5951 };
5952 const armnnSerializer::LayerBase *base() const {
5953 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
5954 }
5955 const armnnSerializer::SpaceToBatchNdDescriptor *descriptor() const {
5956 return GetPointer<const armnnSerializer::SpaceToBatchNdDescriptor *>(VT_DESCRIPTOR);
5957 }
5958 bool Verify(flatbuffers::Verifier &verifier) const {
5959 return VerifyTableStart(verifier) &&
5960 VerifyOffset(verifier, VT_BASE) &&
5961 verifier.VerifyTable(base()) &&
5962 VerifyOffset(verifier, VT_DESCRIPTOR) &&
5963 verifier.VerifyTable(descriptor()) &&
5964 verifier.EndTable();
5965 }
5966};
5967
5968struct SpaceToBatchNdLayerBuilder {
5969 typedef SpaceToBatchNdLayer Table;
5970 flatbuffers::FlatBufferBuilder &fbb_;
5971 flatbuffers::uoffset_t start_;
5972 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
5973 fbb_.AddOffset(SpaceToBatchNdLayer::VT_BASE, base);
5974 }
5975 void add_descriptor(flatbuffers::Offset<armnnSerializer::SpaceToBatchNdDescriptor> descriptor) {
5976 fbb_.AddOffset(SpaceToBatchNdLayer::VT_DESCRIPTOR, descriptor);
5977 }
5978 explicit SpaceToBatchNdLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
5979 : fbb_(_fbb) {
5980 start_ = fbb_.StartTable();
5981 }
5982 SpaceToBatchNdLayerBuilder &operator=(const SpaceToBatchNdLayerBuilder &);
5983 flatbuffers::Offset<SpaceToBatchNdLayer> Finish() {
5984 const auto end = fbb_.EndTable(start_);
5985 auto o = flatbuffers::Offset<SpaceToBatchNdLayer>(end);
5986 return o;
5987 }
5988};
5989
5990inline flatbuffers::Offset<SpaceToBatchNdLayer> CreateSpaceToBatchNdLayer(
5991 flatbuffers::FlatBufferBuilder &_fbb,
5992 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
5993 flatbuffers::Offset<armnnSerializer::SpaceToBatchNdDescriptor> descriptor = 0) {
5994 SpaceToBatchNdLayerBuilder builder_(_fbb);
5995 builder_.add_descriptor(descriptor);
5996 builder_.add_base(base);
5997 return builder_.Finish();
5998}
5999
6000struct SpaceToBatchNdDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6001 typedef SpaceToBatchNdDescriptorBuilder Builder;
6002 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6003 VT_BLOCKSHAPE = 4,
6004 VT_PADLIST = 6,
6005 VT_DATALAYOUT = 8
6006 };
6007 const flatbuffers::Vector<uint32_t> *blockShape() const {
6008 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_BLOCKSHAPE);
6009 }
6010 const flatbuffers::Vector<uint32_t> *padList() const {
6011 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_PADLIST);
6012 }
6013 armnnSerializer::DataLayout dataLayout() const {
6014 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
6015 }
6016 bool Verify(flatbuffers::Verifier &verifier) const {
6017 return VerifyTableStart(verifier) &&
6018 VerifyOffset(verifier, VT_BLOCKSHAPE) &&
6019 verifier.VerifyVector(blockShape()) &&
6020 VerifyOffset(verifier, VT_PADLIST) &&
6021 verifier.VerifyVector(padList()) &&
6022 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
6023 verifier.EndTable();
6024 }
6025};
6026
6027struct SpaceToBatchNdDescriptorBuilder {
6028 typedef SpaceToBatchNdDescriptor Table;
6029 flatbuffers::FlatBufferBuilder &fbb_;
6030 flatbuffers::uoffset_t start_;
6031 void add_blockShape(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> blockShape) {
6032 fbb_.AddOffset(SpaceToBatchNdDescriptor::VT_BLOCKSHAPE, blockShape);
6033 }
6034 void add_padList(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> padList) {
6035 fbb_.AddOffset(SpaceToBatchNdDescriptor::VT_PADLIST, padList);
6036 }
6037 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
6038 fbb_.AddElement<int8_t>(SpaceToBatchNdDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
6039 }
6040 explicit SpaceToBatchNdDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6041 : fbb_(_fbb) {
6042 start_ = fbb_.StartTable();
6043 }
6044 SpaceToBatchNdDescriptorBuilder &operator=(const SpaceToBatchNdDescriptorBuilder &);
6045 flatbuffers::Offset<SpaceToBatchNdDescriptor> Finish() {
6046 const auto end = fbb_.EndTable(start_);
6047 auto o = flatbuffers::Offset<SpaceToBatchNdDescriptor>(end);
6048 return o;
6049 }
6050};
6051
6052inline flatbuffers::Offset<SpaceToBatchNdDescriptor> CreateSpaceToBatchNdDescriptor(
6053 flatbuffers::FlatBufferBuilder &_fbb,
6054 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> blockShape = 0,
6055 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> padList = 0,
6056 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC) {
6057 SpaceToBatchNdDescriptorBuilder builder_(_fbb);
6058 builder_.add_padList(padList);
6059 builder_.add_blockShape(blockShape);
6060 builder_.add_dataLayout(dataLayout);
6061 return builder_.Finish();
6062}
6063
6064inline flatbuffers::Offset<SpaceToBatchNdDescriptor> CreateSpaceToBatchNdDescriptorDirect(
6065 flatbuffers::FlatBufferBuilder &_fbb,
6066 const std::vector<uint32_t> *blockShape = nullptr,
6067 const std::vector<uint32_t> *padList = nullptr,
6068 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC) {
6069 auto blockShape__ = blockShape ? _fbb.CreateVector<uint32_t>(*blockShape) : 0;
6070 auto padList__ = padList ? _fbb.CreateVector<uint32_t>(*padList) : 0;
6071 return armnnSerializer::CreateSpaceToBatchNdDescriptor(
6072 _fbb,
6073 blockShape__,
6074 padList__,
6075 dataLayout);
6076}
6077
6078struct SpaceToDepthLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6079 typedef SpaceToDepthLayerBuilder Builder;
6080 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6081 VT_BASE = 4,
6082 VT_DESCRIPTOR = 6
6083 };
6084 const armnnSerializer::LayerBase *base() const {
6085 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6086 }
6087 const armnnSerializer::SpaceToDepthDescriptor *descriptor() const {
6088 return GetPointer<const armnnSerializer::SpaceToDepthDescriptor *>(VT_DESCRIPTOR);
6089 }
6090 bool Verify(flatbuffers::Verifier &verifier) const {
6091 return VerifyTableStart(verifier) &&
6092 VerifyOffset(verifier, VT_BASE) &&
6093 verifier.VerifyTable(base()) &&
6094 VerifyOffset(verifier, VT_DESCRIPTOR) &&
6095 verifier.VerifyTable(descriptor()) &&
6096 verifier.EndTable();
6097 }
6098};
6099
6100struct SpaceToDepthLayerBuilder {
6101 typedef SpaceToDepthLayer Table;
6102 flatbuffers::FlatBufferBuilder &fbb_;
6103 flatbuffers::uoffset_t start_;
6104 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6105 fbb_.AddOffset(SpaceToDepthLayer::VT_BASE, base);
6106 }
6107 void add_descriptor(flatbuffers::Offset<armnnSerializer::SpaceToDepthDescriptor> descriptor) {
6108 fbb_.AddOffset(SpaceToDepthLayer::VT_DESCRIPTOR, descriptor);
6109 }
6110 explicit SpaceToDepthLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6111 : fbb_(_fbb) {
6112 start_ = fbb_.StartTable();
6113 }
6114 SpaceToDepthLayerBuilder &operator=(const SpaceToDepthLayerBuilder &);
6115 flatbuffers::Offset<SpaceToDepthLayer> Finish() {
6116 const auto end = fbb_.EndTable(start_);
6117 auto o = flatbuffers::Offset<SpaceToDepthLayer>(end);
6118 return o;
6119 }
6120};
6121
6122inline flatbuffers::Offset<SpaceToDepthLayer> CreateSpaceToDepthLayer(
6123 flatbuffers::FlatBufferBuilder &_fbb,
6124 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6125 flatbuffers::Offset<armnnSerializer::SpaceToDepthDescriptor> descriptor = 0) {
6126 SpaceToDepthLayerBuilder builder_(_fbb);
6127 builder_.add_descriptor(descriptor);
6128 builder_.add_base(base);
6129 return builder_.Finish();
6130}
6131
6132struct SpaceToDepthDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6133 typedef SpaceToDepthDescriptorBuilder Builder;
6134 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6135 VT_BLOCKSIZE = 4,
6136 VT_DATALAYOUT = 6
6137 };
6138 uint32_t blockSize() const {
6139 return GetField<uint32_t>(VT_BLOCKSIZE, 0);
6140 }
6141 armnnSerializer::DataLayout dataLayout() const {
6142 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
6143 }
6144 bool Verify(flatbuffers::Verifier &verifier) const {
6145 return VerifyTableStart(verifier) &&
6146 VerifyField<uint32_t>(verifier, VT_BLOCKSIZE) &&
6147 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
6148 verifier.EndTable();
6149 }
6150};
6151
6152struct SpaceToDepthDescriptorBuilder {
6153 typedef SpaceToDepthDescriptor Table;
6154 flatbuffers::FlatBufferBuilder &fbb_;
6155 flatbuffers::uoffset_t start_;
6156 void add_blockSize(uint32_t blockSize) {
6157 fbb_.AddElement<uint32_t>(SpaceToDepthDescriptor::VT_BLOCKSIZE, blockSize, 0);
6158 }
6159 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
6160 fbb_.AddElement<int8_t>(SpaceToDepthDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
6161 }
6162 explicit SpaceToDepthDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6163 : fbb_(_fbb) {
6164 start_ = fbb_.StartTable();
6165 }
6166 SpaceToDepthDescriptorBuilder &operator=(const SpaceToDepthDescriptorBuilder &);
6167 flatbuffers::Offset<SpaceToDepthDescriptor> Finish() {
6168 const auto end = fbb_.EndTable(start_);
6169 auto o = flatbuffers::Offset<SpaceToDepthDescriptor>(end);
6170 return o;
6171 }
6172};
6173
6174inline flatbuffers::Offset<SpaceToDepthDescriptor> CreateSpaceToDepthDescriptor(
6175 flatbuffers::FlatBufferBuilder &_fbb,
6176 uint32_t blockSize = 0,
6177 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC) {
6178 SpaceToDepthDescriptorBuilder builder_(_fbb);
6179 builder_.add_blockSize(blockSize);
6180 builder_.add_dataLayout(dataLayout);
6181 return builder_.Finish();
6182}
6183
6184struct SubtractionLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6185 typedef SubtractionLayerBuilder Builder;
6186 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6187 VT_BASE = 4
6188 };
6189 const armnnSerializer::LayerBase *base() const {
6190 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6191 }
6192 bool Verify(flatbuffers::Verifier &verifier) const {
6193 return VerifyTableStart(verifier) &&
6194 VerifyOffset(verifier, VT_BASE) &&
6195 verifier.VerifyTable(base()) &&
6196 verifier.EndTable();
6197 }
6198};
6199
6200struct SubtractionLayerBuilder {
6201 typedef SubtractionLayer Table;
6202 flatbuffers::FlatBufferBuilder &fbb_;
6203 flatbuffers::uoffset_t start_;
6204 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6205 fbb_.AddOffset(SubtractionLayer::VT_BASE, base);
6206 }
6207 explicit SubtractionLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6208 : fbb_(_fbb) {
6209 start_ = fbb_.StartTable();
6210 }
6211 SubtractionLayerBuilder &operator=(const SubtractionLayerBuilder &);
6212 flatbuffers::Offset<SubtractionLayer> Finish() {
6213 const auto end = fbb_.EndTable(start_);
6214 auto o = flatbuffers::Offset<SubtractionLayer>(end);
6215 return o;
6216 }
6217};
6218
6219inline flatbuffers::Offset<SubtractionLayer> CreateSubtractionLayer(
6220 flatbuffers::FlatBufferBuilder &_fbb,
6221 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
6222 SubtractionLayerBuilder builder_(_fbb);
6223 builder_.add_base(base);
6224 return builder_.Finish();
6225}
6226
6227struct BatchToSpaceNdLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6228 typedef BatchToSpaceNdLayerBuilder Builder;
6229 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6230 VT_BASE = 4,
6231 VT_DESCRIPTOR = 6
6232 };
6233 const armnnSerializer::LayerBase *base() const {
6234 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6235 }
6236 const armnnSerializer::BatchToSpaceNdDescriptor *descriptor() const {
6237 return GetPointer<const armnnSerializer::BatchToSpaceNdDescriptor *>(VT_DESCRIPTOR);
6238 }
6239 bool Verify(flatbuffers::Verifier &verifier) const {
6240 return VerifyTableStart(verifier) &&
6241 VerifyOffset(verifier, VT_BASE) &&
6242 verifier.VerifyTable(base()) &&
6243 VerifyOffset(verifier, VT_DESCRIPTOR) &&
6244 verifier.VerifyTable(descriptor()) &&
6245 verifier.EndTable();
6246 }
6247};
6248
6249struct BatchToSpaceNdLayerBuilder {
6250 typedef BatchToSpaceNdLayer Table;
6251 flatbuffers::FlatBufferBuilder &fbb_;
6252 flatbuffers::uoffset_t start_;
6253 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6254 fbb_.AddOffset(BatchToSpaceNdLayer::VT_BASE, base);
6255 }
6256 void add_descriptor(flatbuffers::Offset<armnnSerializer::BatchToSpaceNdDescriptor> descriptor) {
6257 fbb_.AddOffset(BatchToSpaceNdLayer::VT_DESCRIPTOR, descriptor);
6258 }
6259 explicit BatchToSpaceNdLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6260 : fbb_(_fbb) {
6261 start_ = fbb_.StartTable();
6262 }
6263 BatchToSpaceNdLayerBuilder &operator=(const BatchToSpaceNdLayerBuilder &);
6264 flatbuffers::Offset<BatchToSpaceNdLayer> Finish() {
6265 const auto end = fbb_.EndTable(start_);
6266 auto o = flatbuffers::Offset<BatchToSpaceNdLayer>(end);
6267 return o;
6268 }
6269};
6270
6271inline flatbuffers::Offset<BatchToSpaceNdLayer> CreateBatchToSpaceNdLayer(
6272 flatbuffers::FlatBufferBuilder &_fbb,
6273 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6274 flatbuffers::Offset<armnnSerializer::BatchToSpaceNdDescriptor> descriptor = 0) {
6275 BatchToSpaceNdLayerBuilder builder_(_fbb);
6276 builder_.add_descriptor(descriptor);
6277 builder_.add_base(base);
6278 return builder_.Finish();
6279}
6280
6281struct BatchToSpaceNdDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6282 typedef BatchToSpaceNdDescriptorBuilder Builder;
6283 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6284 VT_BLOCKSHAPE = 4,
6285 VT_CROPS = 6,
6286 VT_DATALAYOUT = 8
6287 };
6288 const flatbuffers::Vector<uint32_t> *blockShape() const {
6289 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_BLOCKSHAPE);
6290 }
6291 const flatbuffers::Vector<uint32_t> *crops() const {
6292 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_CROPS);
6293 }
6294 armnnSerializer::DataLayout dataLayout() const {
6295 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
6296 }
6297 bool Verify(flatbuffers::Verifier &verifier) const {
6298 return VerifyTableStart(verifier) &&
6299 VerifyOffset(verifier, VT_BLOCKSHAPE) &&
6300 verifier.VerifyVector(blockShape()) &&
6301 VerifyOffset(verifier, VT_CROPS) &&
6302 verifier.VerifyVector(crops()) &&
6303 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
6304 verifier.EndTable();
6305 }
6306};
6307
6308struct BatchToSpaceNdDescriptorBuilder {
6309 typedef BatchToSpaceNdDescriptor Table;
6310 flatbuffers::FlatBufferBuilder &fbb_;
6311 flatbuffers::uoffset_t start_;
6312 void add_blockShape(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> blockShape) {
6313 fbb_.AddOffset(BatchToSpaceNdDescriptor::VT_BLOCKSHAPE, blockShape);
6314 }
6315 void add_crops(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> crops) {
6316 fbb_.AddOffset(BatchToSpaceNdDescriptor::VT_CROPS, crops);
6317 }
6318 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
6319 fbb_.AddElement<int8_t>(BatchToSpaceNdDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
6320 }
6321 explicit BatchToSpaceNdDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6322 : fbb_(_fbb) {
6323 start_ = fbb_.StartTable();
6324 }
6325 BatchToSpaceNdDescriptorBuilder &operator=(const BatchToSpaceNdDescriptorBuilder &);
6326 flatbuffers::Offset<BatchToSpaceNdDescriptor> Finish() {
6327 const auto end = fbb_.EndTable(start_);
6328 auto o = flatbuffers::Offset<BatchToSpaceNdDescriptor>(end);
6329 return o;
6330 }
6331};
6332
6333inline flatbuffers::Offset<BatchToSpaceNdDescriptor> CreateBatchToSpaceNdDescriptor(
6334 flatbuffers::FlatBufferBuilder &_fbb,
6335 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> blockShape = 0,
6336 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> crops = 0,
6337 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC) {
6338 BatchToSpaceNdDescriptorBuilder builder_(_fbb);
6339 builder_.add_crops(crops);
6340 builder_.add_blockShape(blockShape);
6341 builder_.add_dataLayout(dataLayout);
6342 return builder_.Finish();
6343}
6344
6345inline flatbuffers::Offset<BatchToSpaceNdDescriptor> CreateBatchToSpaceNdDescriptorDirect(
6346 flatbuffers::FlatBufferBuilder &_fbb,
6347 const std::vector<uint32_t> *blockShape = nullptr,
6348 const std::vector<uint32_t> *crops = nullptr,
6349 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC) {
6350 auto blockShape__ = blockShape ? _fbb.CreateVector<uint32_t>(*blockShape) : 0;
6351 auto crops__ = crops ? _fbb.CreateVector<uint32_t>(*crops) : 0;
6352 return armnnSerializer::CreateBatchToSpaceNdDescriptor(
6353 _fbb,
6354 blockShape__,
6355 crops__,
6356 dataLayout);
6357}
6358
6359struct NormalizationLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6360 typedef NormalizationLayerBuilder Builder;
6361 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6362 VT_BASE = 4,
6363 VT_DESCRIPTOR = 6
6364 };
6365 const armnnSerializer::LayerBase *base() const {
6366 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6367 }
6368 const armnnSerializer::NormalizationDescriptor *descriptor() const {
6369 return GetPointer<const armnnSerializer::NormalizationDescriptor *>(VT_DESCRIPTOR);
6370 }
6371 bool Verify(flatbuffers::Verifier &verifier) const {
6372 return VerifyTableStart(verifier) &&
6373 VerifyOffset(verifier, VT_BASE) &&
6374 verifier.VerifyTable(base()) &&
6375 VerifyOffset(verifier, VT_DESCRIPTOR) &&
6376 verifier.VerifyTable(descriptor()) &&
6377 verifier.EndTable();
6378 }
6379};
6380
6381struct NormalizationLayerBuilder {
6382 typedef NormalizationLayer Table;
6383 flatbuffers::FlatBufferBuilder &fbb_;
6384 flatbuffers::uoffset_t start_;
6385 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6386 fbb_.AddOffset(NormalizationLayer::VT_BASE, base);
6387 }
6388 void add_descriptor(flatbuffers::Offset<armnnSerializer::NormalizationDescriptor> descriptor) {
6389 fbb_.AddOffset(NormalizationLayer::VT_DESCRIPTOR, descriptor);
6390 }
6391 explicit NormalizationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6392 : fbb_(_fbb) {
6393 start_ = fbb_.StartTable();
6394 }
6395 NormalizationLayerBuilder &operator=(const NormalizationLayerBuilder &);
6396 flatbuffers::Offset<NormalizationLayer> Finish() {
6397 const auto end = fbb_.EndTable(start_);
6398 auto o = flatbuffers::Offset<NormalizationLayer>(end);
6399 return o;
6400 }
6401};
6402
6403inline flatbuffers::Offset<NormalizationLayer> CreateNormalizationLayer(
6404 flatbuffers::FlatBufferBuilder &_fbb,
6405 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6406 flatbuffers::Offset<armnnSerializer::NormalizationDescriptor> descriptor = 0) {
6407 NormalizationLayerBuilder builder_(_fbb);
6408 builder_.add_descriptor(descriptor);
6409 builder_.add_base(base);
6410 return builder_.Finish();
6411}
6412
6413struct NormalizationDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6414 typedef NormalizationDescriptorBuilder Builder;
6415 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6416 VT_NORMCHANNELTYPE = 4,
6417 VT_NORMMETHODTYPE = 6,
6418 VT_NORMSIZE = 8,
6419 VT_ALPHA = 10,
6420 VT_BETA = 12,
6421 VT_K = 14,
6422 VT_DATALAYOUT = 16
6423 };
6424 armnnSerializer::NormalizationAlgorithmChannel normChannelType() const {
6425 return static_cast<armnnSerializer::NormalizationAlgorithmChannel>(GetField<int8_t>(VT_NORMCHANNELTYPE, 0));
6426 }
6427 armnnSerializer::NormalizationAlgorithmMethod normMethodType() const {
6428 return static_cast<armnnSerializer::NormalizationAlgorithmMethod>(GetField<int8_t>(VT_NORMMETHODTYPE, 0));
6429 }
6430 uint32_t normSize() const {
6431 return GetField<uint32_t>(VT_NORMSIZE, 0);
6432 }
6433 float alpha() const {
6434 return GetField<float>(VT_ALPHA, 0.0f);
6435 }
6436 float beta() const {
6437 return GetField<float>(VT_BETA, 0.0f);
6438 }
6439 float k() const {
6440 return GetField<float>(VT_K, 0.0f);
6441 }
6442 armnnSerializer::DataLayout dataLayout() const {
6443 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 1));
6444 }
6445 bool Verify(flatbuffers::Verifier &verifier) const {
6446 return VerifyTableStart(verifier) &&
6447 VerifyField<int8_t>(verifier, VT_NORMCHANNELTYPE) &&
6448 VerifyField<int8_t>(verifier, VT_NORMMETHODTYPE) &&
6449 VerifyField<uint32_t>(verifier, VT_NORMSIZE) &&
6450 VerifyField<float>(verifier, VT_ALPHA) &&
6451 VerifyField<float>(verifier, VT_BETA) &&
6452 VerifyField<float>(verifier, VT_K) &&
6453 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
6454 verifier.EndTable();
6455 }
6456};
6457
6458struct NormalizationDescriptorBuilder {
6459 typedef NormalizationDescriptor Table;
6460 flatbuffers::FlatBufferBuilder &fbb_;
6461 flatbuffers::uoffset_t start_;
6462 void add_normChannelType(armnnSerializer::NormalizationAlgorithmChannel normChannelType) {
6463 fbb_.AddElement<int8_t>(NormalizationDescriptor::VT_NORMCHANNELTYPE, static_cast<int8_t>(normChannelType), 0);
6464 }
6465 void add_normMethodType(armnnSerializer::NormalizationAlgorithmMethod normMethodType) {
6466 fbb_.AddElement<int8_t>(NormalizationDescriptor::VT_NORMMETHODTYPE, static_cast<int8_t>(normMethodType), 0);
6467 }
6468 void add_normSize(uint32_t normSize) {
6469 fbb_.AddElement<uint32_t>(NormalizationDescriptor::VT_NORMSIZE, normSize, 0);
6470 }
6471 void add_alpha(float alpha) {
6472 fbb_.AddElement<float>(NormalizationDescriptor::VT_ALPHA, alpha, 0.0f);
6473 }
6474 void add_beta(float beta) {
6475 fbb_.AddElement<float>(NormalizationDescriptor::VT_BETA, beta, 0.0f);
6476 }
6477 void add_k(float k) {
6478 fbb_.AddElement<float>(NormalizationDescriptor::VT_K, k, 0.0f);
6479 }
6480 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
6481 fbb_.AddElement<int8_t>(NormalizationDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 1);
6482 }
6483 explicit NormalizationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6484 : fbb_(_fbb) {
6485 start_ = fbb_.StartTable();
6486 }
6487 NormalizationDescriptorBuilder &operator=(const NormalizationDescriptorBuilder &);
6488 flatbuffers::Offset<NormalizationDescriptor> Finish() {
6489 const auto end = fbb_.EndTable(start_);
6490 auto o = flatbuffers::Offset<NormalizationDescriptor>(end);
6491 return o;
6492 }
6493};
6494
6495inline flatbuffers::Offset<NormalizationDescriptor> CreateNormalizationDescriptor(
6496 flatbuffers::FlatBufferBuilder &_fbb,
6497 armnnSerializer::NormalizationAlgorithmChannel normChannelType = armnnSerializer::NormalizationAlgorithmChannel_Across,
6498 armnnSerializer::NormalizationAlgorithmMethod normMethodType = armnnSerializer::NormalizationAlgorithmMethod_LocalBrightness,
6499 uint32_t normSize = 0,
6500 float alpha = 0.0f,
6501 float beta = 0.0f,
6502 float k = 0.0f,
6503 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NCHW) {
6504 NormalizationDescriptorBuilder builder_(_fbb);
6505 builder_.add_k(k);
6506 builder_.add_beta(beta);
6507 builder_.add_alpha(alpha);
6508 builder_.add_normSize(normSize);
6509 builder_.add_dataLayout(dataLayout);
6510 builder_.add_normMethodType(normMethodType);
6511 builder_.add_normChannelType(normChannelType);
6512 return builder_.Finish();
6513}
6514
6515struct MeanLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6516 typedef MeanLayerBuilder Builder;
6517 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6518 VT_BASE = 4,
6519 VT_DESCRIPTOR = 6
6520 };
6521 const armnnSerializer::LayerBase *base() const {
6522 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6523 }
6524 const armnnSerializer::MeanDescriptor *descriptor() const {
6525 return GetPointer<const armnnSerializer::MeanDescriptor *>(VT_DESCRIPTOR);
6526 }
6527 bool Verify(flatbuffers::Verifier &verifier) const {
6528 return VerifyTableStart(verifier) &&
6529 VerifyOffset(verifier, VT_BASE) &&
6530 verifier.VerifyTable(base()) &&
6531 VerifyOffset(verifier, VT_DESCRIPTOR) &&
6532 verifier.VerifyTable(descriptor()) &&
6533 verifier.EndTable();
6534 }
6535};
6536
6537struct MeanLayerBuilder {
6538 typedef MeanLayer Table;
6539 flatbuffers::FlatBufferBuilder &fbb_;
6540 flatbuffers::uoffset_t start_;
6541 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6542 fbb_.AddOffset(MeanLayer::VT_BASE, base);
6543 }
6544 void add_descriptor(flatbuffers::Offset<armnnSerializer::MeanDescriptor> descriptor) {
6545 fbb_.AddOffset(MeanLayer::VT_DESCRIPTOR, descriptor);
6546 }
6547 explicit MeanLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6548 : fbb_(_fbb) {
6549 start_ = fbb_.StartTable();
6550 }
6551 MeanLayerBuilder &operator=(const MeanLayerBuilder &);
6552 flatbuffers::Offset<MeanLayer> Finish() {
6553 const auto end = fbb_.EndTable(start_);
6554 auto o = flatbuffers::Offset<MeanLayer>(end);
6555 return o;
6556 }
6557};
6558
6559inline flatbuffers::Offset<MeanLayer> CreateMeanLayer(
6560 flatbuffers::FlatBufferBuilder &_fbb,
6561 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6562 flatbuffers::Offset<armnnSerializer::MeanDescriptor> descriptor = 0) {
6563 MeanLayerBuilder builder_(_fbb);
6564 builder_.add_descriptor(descriptor);
6565 builder_.add_base(base);
6566 return builder_.Finish();
6567}
6568
6569struct MeanDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6570 typedef MeanDescriptorBuilder Builder;
6571 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6572 VT_AXIS = 4,
6573 VT_KEEPDIMS = 6
6574 };
6575 const flatbuffers::Vector<uint32_t> *axis() const {
6576 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_AXIS);
6577 }
6578 bool keepDims() const {
6579 return GetField<uint8_t>(VT_KEEPDIMS, 0) != 0;
6580 }
6581 bool Verify(flatbuffers::Verifier &verifier) const {
6582 return VerifyTableStart(verifier) &&
6583 VerifyOffset(verifier, VT_AXIS) &&
6584 verifier.VerifyVector(axis()) &&
6585 VerifyField<uint8_t>(verifier, VT_KEEPDIMS) &&
6586 verifier.EndTable();
6587 }
6588};
6589
6590struct MeanDescriptorBuilder {
6591 typedef MeanDescriptor Table;
6592 flatbuffers::FlatBufferBuilder &fbb_;
6593 flatbuffers::uoffset_t start_;
6594 void add_axis(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> axis) {
6595 fbb_.AddOffset(MeanDescriptor::VT_AXIS, axis);
6596 }
6597 void add_keepDims(bool keepDims) {
6598 fbb_.AddElement<uint8_t>(MeanDescriptor::VT_KEEPDIMS, static_cast<uint8_t>(keepDims), 0);
6599 }
6600 explicit MeanDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6601 : fbb_(_fbb) {
6602 start_ = fbb_.StartTable();
6603 }
6604 MeanDescriptorBuilder &operator=(const MeanDescriptorBuilder &);
6605 flatbuffers::Offset<MeanDescriptor> Finish() {
6606 const auto end = fbb_.EndTable(start_);
6607 auto o = flatbuffers::Offset<MeanDescriptor>(end);
6608 return o;
6609 }
6610};
6611
6612inline flatbuffers::Offset<MeanDescriptor> CreateMeanDescriptor(
6613 flatbuffers::FlatBufferBuilder &_fbb,
6614 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> axis = 0,
6615 bool keepDims = false) {
6616 MeanDescriptorBuilder builder_(_fbb);
6617 builder_.add_axis(axis);
6618 builder_.add_keepDims(keepDims);
6619 return builder_.Finish();
6620}
6621
6622inline flatbuffers::Offset<MeanDescriptor> CreateMeanDescriptorDirect(
6623 flatbuffers::FlatBufferBuilder &_fbb,
6624 const std::vector<uint32_t> *axis = nullptr,
6625 bool keepDims = false) {
6626 auto axis__ = axis ? _fbb.CreateVector<uint32_t>(*axis) : 0;
6627 return armnnSerializer::CreateMeanDescriptor(
6628 _fbb,
6629 axis__,
6630 keepDims);
6631}
6632
6633struct PadLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6634 typedef PadLayerBuilder Builder;
6635 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6636 VT_BASE = 4,
6637 VT_DESCRIPTOR = 6
6638 };
6639 const armnnSerializer::LayerBase *base() const {
6640 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6641 }
6642 const armnnSerializer::PadDescriptor *descriptor() const {
6643 return GetPointer<const armnnSerializer::PadDescriptor *>(VT_DESCRIPTOR);
6644 }
6645 bool Verify(flatbuffers::Verifier &verifier) const {
6646 return VerifyTableStart(verifier) &&
6647 VerifyOffset(verifier, VT_BASE) &&
6648 verifier.VerifyTable(base()) &&
6649 VerifyOffset(verifier, VT_DESCRIPTOR) &&
6650 verifier.VerifyTable(descriptor()) &&
6651 verifier.EndTable();
6652 }
6653};
6654
6655struct PadLayerBuilder {
6656 typedef PadLayer Table;
6657 flatbuffers::FlatBufferBuilder &fbb_;
6658 flatbuffers::uoffset_t start_;
6659 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6660 fbb_.AddOffset(PadLayer::VT_BASE, base);
6661 }
6662 void add_descriptor(flatbuffers::Offset<armnnSerializer::PadDescriptor> descriptor) {
6663 fbb_.AddOffset(PadLayer::VT_DESCRIPTOR, descriptor);
6664 }
6665 explicit PadLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6666 : fbb_(_fbb) {
6667 start_ = fbb_.StartTable();
6668 }
6669 PadLayerBuilder &operator=(const PadLayerBuilder &);
6670 flatbuffers::Offset<PadLayer> Finish() {
6671 const auto end = fbb_.EndTable(start_);
6672 auto o = flatbuffers::Offset<PadLayer>(end);
6673 return o;
6674 }
6675};
6676
6677inline flatbuffers::Offset<PadLayer> CreatePadLayer(
6678 flatbuffers::FlatBufferBuilder &_fbb,
6679 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6680 flatbuffers::Offset<armnnSerializer::PadDescriptor> descriptor = 0) {
6681 PadLayerBuilder builder_(_fbb);
6682 builder_.add_descriptor(descriptor);
6683 builder_.add_base(base);
6684 return builder_.Finish();
6685}
6686
6687struct PadDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6688 typedef PadDescriptorBuilder Builder;
6689 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6690 VT_PADLIST = 4,
Matthew Sloyan2e5d0b22021-10-21 14:05:31 +01006691 VT_PADVALUE = 6,
6692 VT_PADDINGMODE = 8
Sadik Armagan97bf84f2021-01-13 15:06:38 +00006693 };
6694 const flatbuffers::Vector<uint32_t> *padList() const {
6695 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_PADLIST);
6696 }
6697 float padValue() const {
6698 return GetField<float>(VT_PADVALUE, 0.0f);
6699 }
Matthew Sloyan2e5d0b22021-10-21 14:05:31 +01006700 armnnSerializer::PaddingMode paddingMode() const {
6701 return static_cast<armnnSerializer::PaddingMode>(GetField<int8_t>(VT_PADDINGMODE, 0));
6702 }
Sadik Armagan97bf84f2021-01-13 15:06:38 +00006703 bool Verify(flatbuffers::Verifier &verifier) const {
6704 return VerifyTableStart(verifier) &&
6705 VerifyOffset(verifier, VT_PADLIST) &&
6706 verifier.VerifyVector(padList()) &&
6707 VerifyField<float>(verifier, VT_PADVALUE) &&
Matthew Sloyan2e5d0b22021-10-21 14:05:31 +01006708 VerifyField<int8_t>(verifier, VT_PADDINGMODE) &&
Sadik Armagan97bf84f2021-01-13 15:06:38 +00006709 verifier.EndTable();
6710 }
6711};
6712
6713struct PadDescriptorBuilder {
6714 typedef PadDescriptor Table;
6715 flatbuffers::FlatBufferBuilder &fbb_;
6716 flatbuffers::uoffset_t start_;
6717 void add_padList(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> padList) {
6718 fbb_.AddOffset(PadDescriptor::VT_PADLIST, padList);
6719 }
6720 void add_padValue(float padValue) {
6721 fbb_.AddElement<float>(PadDescriptor::VT_PADVALUE, padValue, 0.0f);
6722 }
Matthew Sloyan2e5d0b22021-10-21 14:05:31 +01006723 void add_paddingMode(armnnSerializer::PaddingMode paddingMode) {
6724 fbb_.AddElement<int8_t>(PadDescriptor::VT_PADDINGMODE, static_cast<int8_t>(paddingMode), 0);
6725 }
Sadik Armagan97bf84f2021-01-13 15:06:38 +00006726 explicit PadDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6727 : fbb_(_fbb) {
6728 start_ = fbb_.StartTable();
6729 }
6730 PadDescriptorBuilder &operator=(const PadDescriptorBuilder &);
6731 flatbuffers::Offset<PadDescriptor> Finish() {
6732 const auto end = fbb_.EndTable(start_);
6733 auto o = flatbuffers::Offset<PadDescriptor>(end);
6734 return o;
6735 }
6736};
6737
6738inline flatbuffers::Offset<PadDescriptor> CreatePadDescriptor(
6739 flatbuffers::FlatBufferBuilder &_fbb,
6740 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> padList = 0,
Matthew Sloyan2e5d0b22021-10-21 14:05:31 +01006741 float padValue = 0.0f,
6742 armnnSerializer::PaddingMode paddingMode = armnnSerializer::PaddingMode_Constant) {
Sadik Armagan97bf84f2021-01-13 15:06:38 +00006743 PadDescriptorBuilder builder_(_fbb);
6744 builder_.add_padValue(padValue);
6745 builder_.add_padList(padList);
Matthew Sloyan2e5d0b22021-10-21 14:05:31 +01006746 builder_.add_paddingMode(paddingMode);
Sadik Armagan97bf84f2021-01-13 15:06:38 +00006747 return builder_.Finish();
6748}
6749
6750inline flatbuffers::Offset<PadDescriptor> CreatePadDescriptorDirect(
6751 flatbuffers::FlatBufferBuilder &_fbb,
6752 const std::vector<uint32_t> *padList = nullptr,
Matthew Sloyan2e5d0b22021-10-21 14:05:31 +01006753 float padValue = 0.0f,
6754 armnnSerializer::PaddingMode paddingMode = armnnSerializer::PaddingMode_Constant) {
Sadik Armagan97bf84f2021-01-13 15:06:38 +00006755 auto padList__ = padList ? _fbb.CreateVector<uint32_t>(*padList) : 0;
6756 return armnnSerializer::CreatePadDescriptor(
6757 _fbb,
6758 padList__,
Matthew Sloyan2e5d0b22021-10-21 14:05:31 +01006759 padValue,
6760 paddingMode);
Sadik Armagan97bf84f2021-01-13 15:06:38 +00006761}
6762
6763/// @deprecated Use ElementwiseUnaryLayer instead
6764struct RsqrtLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6765 typedef RsqrtLayerBuilder Builder;
6766 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6767 VT_BASE = 4
6768 };
6769 const armnnSerializer::LayerBase *base() const {
6770 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6771 }
6772 bool Verify(flatbuffers::Verifier &verifier) const {
6773 return VerifyTableStart(verifier) &&
6774 VerifyOffset(verifier, VT_BASE) &&
6775 verifier.VerifyTable(base()) &&
6776 verifier.EndTable();
6777 }
6778};
6779
6780struct RsqrtLayerBuilder {
6781 typedef RsqrtLayer Table;
6782 flatbuffers::FlatBufferBuilder &fbb_;
6783 flatbuffers::uoffset_t start_;
6784 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6785 fbb_.AddOffset(RsqrtLayer::VT_BASE, base);
6786 }
6787 explicit RsqrtLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6788 : fbb_(_fbb) {
6789 start_ = fbb_.StartTable();
6790 }
6791 RsqrtLayerBuilder &operator=(const RsqrtLayerBuilder &);
6792 flatbuffers::Offset<RsqrtLayer> Finish() {
6793 const auto end = fbb_.EndTable(start_);
6794 auto o = flatbuffers::Offset<RsqrtLayer>(end);
6795 return o;
6796 }
6797};
6798
6799inline flatbuffers::Offset<RsqrtLayer> CreateRsqrtLayer(
6800 flatbuffers::FlatBufferBuilder &_fbb,
6801 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
6802 RsqrtLayerBuilder builder_(_fbb);
6803 builder_.add_base(base);
6804 return builder_.Finish();
6805}
6806
6807struct BatchNormalizationLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6808 typedef BatchNormalizationLayerBuilder Builder;
6809 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6810 VT_BASE = 4,
6811 VT_DESCRIPTOR = 6,
6812 VT_MEAN = 8,
6813 VT_VARIANCE = 10,
6814 VT_BETA = 12,
6815 VT_GAMMA = 14
6816 };
6817 const armnnSerializer::LayerBase *base() const {
6818 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6819 }
6820 const armnnSerializer::BatchNormalizationDescriptor *descriptor() const {
6821 return GetPointer<const armnnSerializer::BatchNormalizationDescriptor *>(VT_DESCRIPTOR);
6822 }
6823 const armnnSerializer::ConstTensor *mean() const {
6824 return GetPointer<const armnnSerializer::ConstTensor *>(VT_MEAN);
6825 }
6826 const armnnSerializer::ConstTensor *variance() const {
6827 return GetPointer<const armnnSerializer::ConstTensor *>(VT_VARIANCE);
6828 }
6829 const armnnSerializer::ConstTensor *beta() const {
6830 return GetPointer<const armnnSerializer::ConstTensor *>(VT_BETA);
6831 }
6832 const armnnSerializer::ConstTensor *gamma() const {
6833 return GetPointer<const armnnSerializer::ConstTensor *>(VT_GAMMA);
6834 }
6835 bool Verify(flatbuffers::Verifier &verifier) const {
6836 return VerifyTableStart(verifier) &&
6837 VerifyOffset(verifier, VT_BASE) &&
6838 verifier.VerifyTable(base()) &&
6839 VerifyOffset(verifier, VT_DESCRIPTOR) &&
6840 verifier.VerifyTable(descriptor()) &&
6841 VerifyOffset(verifier, VT_MEAN) &&
6842 verifier.VerifyTable(mean()) &&
6843 VerifyOffset(verifier, VT_VARIANCE) &&
6844 verifier.VerifyTable(variance()) &&
6845 VerifyOffset(verifier, VT_BETA) &&
6846 verifier.VerifyTable(beta()) &&
6847 VerifyOffset(verifier, VT_GAMMA) &&
6848 verifier.VerifyTable(gamma()) &&
6849 verifier.EndTable();
6850 }
6851};
6852
6853struct BatchNormalizationLayerBuilder {
6854 typedef BatchNormalizationLayer Table;
6855 flatbuffers::FlatBufferBuilder &fbb_;
6856 flatbuffers::uoffset_t start_;
6857 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6858 fbb_.AddOffset(BatchNormalizationLayer::VT_BASE, base);
6859 }
6860 void add_descriptor(flatbuffers::Offset<armnnSerializer::BatchNormalizationDescriptor> descriptor) {
6861 fbb_.AddOffset(BatchNormalizationLayer::VT_DESCRIPTOR, descriptor);
6862 }
6863 void add_mean(flatbuffers::Offset<armnnSerializer::ConstTensor> mean) {
6864 fbb_.AddOffset(BatchNormalizationLayer::VT_MEAN, mean);
6865 }
6866 void add_variance(flatbuffers::Offset<armnnSerializer::ConstTensor> variance) {
6867 fbb_.AddOffset(BatchNormalizationLayer::VT_VARIANCE, variance);
6868 }
6869 void add_beta(flatbuffers::Offset<armnnSerializer::ConstTensor> beta) {
6870 fbb_.AddOffset(BatchNormalizationLayer::VT_BETA, beta);
6871 }
6872 void add_gamma(flatbuffers::Offset<armnnSerializer::ConstTensor> gamma) {
6873 fbb_.AddOffset(BatchNormalizationLayer::VT_GAMMA, gamma);
6874 }
6875 explicit BatchNormalizationLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6876 : fbb_(_fbb) {
6877 start_ = fbb_.StartTable();
6878 }
6879 BatchNormalizationLayerBuilder &operator=(const BatchNormalizationLayerBuilder &);
6880 flatbuffers::Offset<BatchNormalizationLayer> Finish() {
6881 const auto end = fbb_.EndTable(start_);
6882 auto o = flatbuffers::Offset<BatchNormalizationLayer>(end);
6883 return o;
6884 }
6885};
6886
6887inline flatbuffers::Offset<BatchNormalizationLayer> CreateBatchNormalizationLayer(
6888 flatbuffers::FlatBufferBuilder &_fbb,
6889 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
6890 flatbuffers::Offset<armnnSerializer::BatchNormalizationDescriptor> descriptor = 0,
6891 flatbuffers::Offset<armnnSerializer::ConstTensor> mean = 0,
6892 flatbuffers::Offset<armnnSerializer::ConstTensor> variance = 0,
6893 flatbuffers::Offset<armnnSerializer::ConstTensor> beta = 0,
6894 flatbuffers::Offset<armnnSerializer::ConstTensor> gamma = 0) {
6895 BatchNormalizationLayerBuilder builder_(_fbb);
6896 builder_.add_gamma(gamma);
6897 builder_.add_beta(beta);
6898 builder_.add_variance(variance);
6899 builder_.add_mean(mean);
6900 builder_.add_descriptor(descriptor);
6901 builder_.add_base(base);
6902 return builder_.Finish();
6903}
6904
6905struct BatchNormalizationDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6906 typedef BatchNormalizationDescriptorBuilder Builder;
6907 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6908 VT_EPS = 4,
6909 VT_DATALAYOUT = 6
6910 };
6911 float eps() const {
6912 return GetField<float>(VT_EPS, 0.0f);
6913 }
6914 armnnSerializer::DataLayout dataLayout() const {
6915 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
6916 }
6917 bool Verify(flatbuffers::Verifier &verifier) const {
6918 return VerifyTableStart(verifier) &&
6919 VerifyField<float>(verifier, VT_EPS) &&
6920 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
6921 verifier.EndTable();
6922 }
6923};
6924
6925struct BatchNormalizationDescriptorBuilder {
6926 typedef BatchNormalizationDescriptor Table;
6927 flatbuffers::FlatBufferBuilder &fbb_;
6928 flatbuffers::uoffset_t start_;
6929 void add_eps(float eps) {
6930 fbb_.AddElement<float>(BatchNormalizationDescriptor::VT_EPS, eps, 0.0f);
6931 }
6932 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
6933 fbb_.AddElement<int8_t>(BatchNormalizationDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
6934 }
6935 explicit BatchNormalizationDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6936 : fbb_(_fbb) {
6937 start_ = fbb_.StartTable();
6938 }
6939 BatchNormalizationDescriptorBuilder &operator=(const BatchNormalizationDescriptorBuilder &);
6940 flatbuffers::Offset<BatchNormalizationDescriptor> Finish() {
6941 const auto end = fbb_.EndTable(start_);
6942 auto o = flatbuffers::Offset<BatchNormalizationDescriptor>(end);
6943 return o;
6944 }
6945};
6946
6947inline flatbuffers::Offset<BatchNormalizationDescriptor> CreateBatchNormalizationDescriptor(
6948 flatbuffers::FlatBufferBuilder &_fbb,
6949 float eps = 0.0f,
6950 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC) {
6951 BatchNormalizationDescriptorBuilder builder_(_fbb);
6952 builder_.add_eps(eps);
6953 builder_.add_dataLayout(dataLayout);
6954 return builder_.Finish();
6955}
6956
6957/// @deprecated Use ResizeLayer instead
6958struct ResizeBilinearLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
6959 typedef ResizeBilinearLayerBuilder Builder;
6960 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
6961 VT_BASE = 4,
6962 VT_DESCRIPTOR = 6
6963 };
6964 const armnnSerializer::LayerBase *base() const {
6965 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
6966 }
6967 const armnnSerializer::ResizeBilinearDescriptor *descriptor() const {
6968 return GetPointer<const armnnSerializer::ResizeBilinearDescriptor *>(VT_DESCRIPTOR);
6969 }
6970 bool Verify(flatbuffers::Verifier &verifier) const {
6971 return VerifyTableStart(verifier) &&
6972 VerifyOffset(verifier, VT_BASE) &&
6973 verifier.VerifyTable(base()) &&
6974 VerifyOffset(verifier, VT_DESCRIPTOR) &&
6975 verifier.VerifyTable(descriptor()) &&
6976 verifier.EndTable();
6977 }
6978};
6979
6980struct ResizeBilinearLayerBuilder {
6981 typedef ResizeBilinearLayer Table;
6982 flatbuffers::FlatBufferBuilder &fbb_;
6983 flatbuffers::uoffset_t start_;
6984 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
6985 fbb_.AddOffset(ResizeBilinearLayer::VT_BASE, base);
6986 }
6987 void add_descriptor(flatbuffers::Offset<armnnSerializer::ResizeBilinearDescriptor> descriptor) {
6988 fbb_.AddOffset(ResizeBilinearLayer::VT_DESCRIPTOR, descriptor);
6989 }
6990 explicit ResizeBilinearLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
6991 : fbb_(_fbb) {
6992 start_ = fbb_.StartTable();
6993 }
6994 ResizeBilinearLayerBuilder &operator=(const ResizeBilinearLayerBuilder &);
6995 flatbuffers::Offset<ResizeBilinearLayer> Finish() {
6996 const auto end = fbb_.EndTable(start_);
6997 auto o = flatbuffers::Offset<ResizeBilinearLayer>(end);
6998 return o;
6999 }
7000};
7001
7002inline flatbuffers::Offset<ResizeBilinearLayer> CreateResizeBilinearLayer(
7003 flatbuffers::FlatBufferBuilder &_fbb,
7004 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
7005 flatbuffers::Offset<armnnSerializer::ResizeBilinearDescriptor> descriptor = 0) {
7006 ResizeBilinearLayerBuilder builder_(_fbb);
7007 builder_.add_descriptor(descriptor);
7008 builder_.add_base(base);
7009 return builder_.Finish();
7010}
7011
7012struct ResizeBilinearDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7013 typedef ResizeBilinearDescriptorBuilder Builder;
7014 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7015 VT_TARGETWIDTH = 4,
7016 VT_TARGETHEIGHT = 6,
7017 VT_DATALAYOUT = 8,
7018 VT_ALIGNCORNERS = 10,
7019 VT_HALFPIXELCENTERS = 12
7020 };
7021 uint32_t targetWidth() const {
7022 return GetField<uint32_t>(VT_TARGETWIDTH, 0);
7023 }
7024 uint32_t targetHeight() const {
7025 return GetField<uint32_t>(VT_TARGETHEIGHT, 0);
7026 }
7027 armnnSerializer::DataLayout dataLayout() const {
7028 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
7029 }
7030 bool alignCorners() const {
7031 return GetField<uint8_t>(VT_ALIGNCORNERS, 0) != 0;
7032 }
7033 bool halfPixelCenters() const {
7034 return GetField<uint8_t>(VT_HALFPIXELCENTERS, 0) != 0;
7035 }
7036 bool Verify(flatbuffers::Verifier &verifier) const {
7037 return VerifyTableStart(verifier) &&
7038 VerifyField<uint32_t>(verifier, VT_TARGETWIDTH) &&
7039 VerifyField<uint32_t>(verifier, VT_TARGETHEIGHT) &&
7040 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
7041 VerifyField<uint8_t>(verifier, VT_ALIGNCORNERS) &&
7042 VerifyField<uint8_t>(verifier, VT_HALFPIXELCENTERS) &&
7043 verifier.EndTable();
7044 }
7045};
7046
7047struct ResizeBilinearDescriptorBuilder {
7048 typedef ResizeBilinearDescriptor Table;
7049 flatbuffers::FlatBufferBuilder &fbb_;
7050 flatbuffers::uoffset_t start_;
7051 void add_targetWidth(uint32_t targetWidth) {
7052 fbb_.AddElement<uint32_t>(ResizeBilinearDescriptor::VT_TARGETWIDTH, targetWidth, 0);
7053 }
7054 void add_targetHeight(uint32_t targetHeight) {
7055 fbb_.AddElement<uint32_t>(ResizeBilinearDescriptor::VT_TARGETHEIGHT, targetHeight, 0);
7056 }
7057 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
7058 fbb_.AddElement<int8_t>(ResizeBilinearDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
7059 }
7060 void add_alignCorners(bool alignCorners) {
7061 fbb_.AddElement<uint8_t>(ResizeBilinearDescriptor::VT_ALIGNCORNERS, static_cast<uint8_t>(alignCorners), 0);
7062 }
7063 void add_halfPixelCenters(bool halfPixelCenters) {
7064 fbb_.AddElement<uint8_t>(ResizeBilinearDescriptor::VT_HALFPIXELCENTERS, static_cast<uint8_t>(halfPixelCenters), 0);
7065 }
7066 explicit ResizeBilinearDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7067 : fbb_(_fbb) {
7068 start_ = fbb_.StartTable();
7069 }
7070 ResizeBilinearDescriptorBuilder &operator=(const ResizeBilinearDescriptorBuilder &);
7071 flatbuffers::Offset<ResizeBilinearDescriptor> Finish() {
7072 const auto end = fbb_.EndTable(start_);
7073 auto o = flatbuffers::Offset<ResizeBilinearDescriptor>(end);
7074 return o;
7075 }
7076};
7077
7078inline flatbuffers::Offset<ResizeBilinearDescriptor> CreateResizeBilinearDescriptor(
7079 flatbuffers::FlatBufferBuilder &_fbb,
7080 uint32_t targetWidth = 0,
7081 uint32_t targetHeight = 0,
7082 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC,
7083 bool alignCorners = false,
7084 bool halfPixelCenters = false) {
7085 ResizeBilinearDescriptorBuilder builder_(_fbb);
7086 builder_.add_targetHeight(targetHeight);
7087 builder_.add_targetWidth(targetWidth);
7088 builder_.add_halfPixelCenters(halfPixelCenters);
7089 builder_.add_alignCorners(alignCorners);
7090 builder_.add_dataLayout(dataLayout);
7091 return builder_.Finish();
7092}
7093
7094struct SliceLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7095 typedef SliceLayerBuilder Builder;
7096 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7097 VT_BASE = 4,
7098 VT_DESCRIPTOR = 6
7099 };
7100 const armnnSerializer::LayerBase *base() const {
7101 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
7102 }
7103 const armnnSerializer::SliceDescriptor *descriptor() const {
7104 return GetPointer<const armnnSerializer::SliceDescriptor *>(VT_DESCRIPTOR);
7105 }
7106 bool Verify(flatbuffers::Verifier &verifier) const {
7107 return VerifyTableStart(verifier) &&
7108 VerifyOffset(verifier, VT_BASE) &&
7109 verifier.VerifyTable(base()) &&
7110 VerifyOffset(verifier, VT_DESCRIPTOR) &&
7111 verifier.VerifyTable(descriptor()) &&
7112 verifier.EndTable();
7113 }
7114};
7115
7116struct SliceLayerBuilder {
7117 typedef SliceLayer Table;
7118 flatbuffers::FlatBufferBuilder &fbb_;
7119 flatbuffers::uoffset_t start_;
7120 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
7121 fbb_.AddOffset(SliceLayer::VT_BASE, base);
7122 }
7123 void add_descriptor(flatbuffers::Offset<armnnSerializer::SliceDescriptor> descriptor) {
7124 fbb_.AddOffset(SliceLayer::VT_DESCRIPTOR, descriptor);
7125 }
7126 explicit SliceLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7127 : fbb_(_fbb) {
7128 start_ = fbb_.StartTable();
7129 }
7130 SliceLayerBuilder &operator=(const SliceLayerBuilder &);
7131 flatbuffers::Offset<SliceLayer> Finish() {
7132 const auto end = fbb_.EndTable(start_);
7133 auto o = flatbuffers::Offset<SliceLayer>(end);
7134 return o;
7135 }
7136};
7137
7138inline flatbuffers::Offset<SliceLayer> CreateSliceLayer(
7139 flatbuffers::FlatBufferBuilder &_fbb,
7140 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
7141 flatbuffers::Offset<armnnSerializer::SliceDescriptor> descriptor = 0) {
7142 SliceLayerBuilder builder_(_fbb);
7143 builder_.add_descriptor(descriptor);
7144 builder_.add_base(base);
7145 return builder_.Finish();
7146}
7147
7148struct SliceDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7149 typedef SliceDescriptorBuilder Builder;
7150 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7151 VT_BEGIN = 4,
7152 VT_SIZE = 6
7153 };
7154 const flatbuffers::Vector<uint32_t> *begin() const {
7155 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_BEGIN);
7156 }
7157 const flatbuffers::Vector<uint32_t> *size() const {
7158 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_SIZE);
7159 }
7160 bool Verify(flatbuffers::Verifier &verifier) const {
7161 return VerifyTableStart(verifier) &&
7162 VerifyOffset(verifier, VT_BEGIN) &&
7163 verifier.VerifyVector(begin()) &&
7164 VerifyOffset(verifier, VT_SIZE) &&
7165 verifier.VerifyVector(size()) &&
7166 verifier.EndTable();
7167 }
7168};
7169
7170struct SliceDescriptorBuilder {
7171 typedef SliceDescriptor Table;
7172 flatbuffers::FlatBufferBuilder &fbb_;
7173 flatbuffers::uoffset_t start_;
7174 void add_begin(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> begin) {
7175 fbb_.AddOffset(SliceDescriptor::VT_BEGIN, begin);
7176 }
7177 void add_size(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> size) {
7178 fbb_.AddOffset(SliceDescriptor::VT_SIZE, size);
7179 }
7180 explicit SliceDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7181 : fbb_(_fbb) {
7182 start_ = fbb_.StartTable();
7183 }
7184 SliceDescriptorBuilder &operator=(const SliceDescriptorBuilder &);
7185 flatbuffers::Offset<SliceDescriptor> Finish() {
7186 const auto end = fbb_.EndTable(start_);
7187 auto o = flatbuffers::Offset<SliceDescriptor>(end);
7188 return o;
7189 }
7190};
7191
7192inline flatbuffers::Offset<SliceDescriptor> CreateSliceDescriptor(
7193 flatbuffers::FlatBufferBuilder &_fbb,
7194 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> begin = 0,
7195 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> size = 0) {
7196 SliceDescriptorBuilder builder_(_fbb);
7197 builder_.add_size(size);
7198 builder_.add_begin(begin);
7199 return builder_.Finish();
7200}
7201
7202inline flatbuffers::Offset<SliceDescriptor> CreateSliceDescriptorDirect(
7203 flatbuffers::FlatBufferBuilder &_fbb,
7204 const std::vector<uint32_t> *begin = nullptr,
7205 const std::vector<uint32_t> *size = nullptr) {
7206 auto begin__ = begin ? _fbb.CreateVector<uint32_t>(*begin) : 0;
7207 auto size__ = size ? _fbb.CreateVector<uint32_t>(*size) : 0;
7208 return armnnSerializer::CreateSliceDescriptor(
7209 _fbb,
7210 begin__,
7211 size__);
7212}
7213
7214struct StridedSliceLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7215 typedef StridedSliceLayerBuilder Builder;
7216 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7217 VT_BASE = 4,
7218 VT_DESCRIPTOR = 6
7219 };
7220 const armnnSerializer::LayerBase *base() const {
7221 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
7222 }
7223 const armnnSerializer::StridedSliceDescriptor *descriptor() const {
7224 return GetPointer<const armnnSerializer::StridedSliceDescriptor *>(VT_DESCRIPTOR);
7225 }
7226 bool Verify(flatbuffers::Verifier &verifier) const {
7227 return VerifyTableStart(verifier) &&
7228 VerifyOffset(verifier, VT_BASE) &&
7229 verifier.VerifyTable(base()) &&
7230 VerifyOffset(verifier, VT_DESCRIPTOR) &&
7231 verifier.VerifyTable(descriptor()) &&
7232 verifier.EndTable();
7233 }
7234};
7235
7236struct StridedSliceLayerBuilder {
7237 typedef StridedSliceLayer Table;
7238 flatbuffers::FlatBufferBuilder &fbb_;
7239 flatbuffers::uoffset_t start_;
7240 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
7241 fbb_.AddOffset(StridedSliceLayer::VT_BASE, base);
7242 }
7243 void add_descriptor(flatbuffers::Offset<armnnSerializer::StridedSliceDescriptor> descriptor) {
7244 fbb_.AddOffset(StridedSliceLayer::VT_DESCRIPTOR, descriptor);
7245 }
7246 explicit StridedSliceLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7247 : fbb_(_fbb) {
7248 start_ = fbb_.StartTable();
7249 }
7250 StridedSliceLayerBuilder &operator=(const StridedSliceLayerBuilder &);
7251 flatbuffers::Offset<StridedSliceLayer> Finish() {
7252 const auto end = fbb_.EndTable(start_);
7253 auto o = flatbuffers::Offset<StridedSliceLayer>(end);
7254 return o;
7255 }
7256};
7257
7258inline flatbuffers::Offset<StridedSliceLayer> CreateStridedSliceLayer(
7259 flatbuffers::FlatBufferBuilder &_fbb,
7260 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
7261 flatbuffers::Offset<armnnSerializer::StridedSliceDescriptor> descriptor = 0) {
7262 StridedSliceLayerBuilder builder_(_fbb);
7263 builder_.add_descriptor(descriptor);
7264 builder_.add_base(base);
7265 return builder_.Finish();
7266}
7267
7268struct StridedSliceDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7269 typedef StridedSliceDescriptorBuilder Builder;
7270 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7271 VT_BEGIN = 4,
7272 VT_END = 6,
7273 VT_STRIDE = 8,
7274 VT_BEGINMASK = 10,
7275 VT_ENDMASK = 12,
7276 VT_SHRINKAXISMASK = 14,
7277 VT_ELLIPSISMASK = 16,
7278 VT_NEWAXISMASK = 18,
7279 VT_DATALAYOUT = 20
7280 };
7281 const flatbuffers::Vector<int32_t> *begin() const {
7282 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_BEGIN);
7283 }
7284 const flatbuffers::Vector<int32_t> *end() const {
7285 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_END);
7286 }
7287 const flatbuffers::Vector<int32_t> *stride() const {
7288 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
7289 }
7290 int32_t beginMask() const {
7291 return GetField<int32_t>(VT_BEGINMASK, 0);
7292 }
7293 int32_t endMask() const {
7294 return GetField<int32_t>(VT_ENDMASK, 0);
7295 }
7296 int32_t shrinkAxisMask() const {
7297 return GetField<int32_t>(VT_SHRINKAXISMASK, 0);
7298 }
7299 int32_t ellipsisMask() const {
7300 return GetField<int32_t>(VT_ELLIPSISMASK, 0);
7301 }
7302 int32_t newAxisMask() const {
7303 return GetField<int32_t>(VT_NEWAXISMASK, 0);
7304 }
7305 armnnSerializer::DataLayout dataLayout() const {
7306 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
7307 }
7308 bool Verify(flatbuffers::Verifier &verifier) const {
7309 return VerifyTableStart(verifier) &&
7310 VerifyOffset(verifier, VT_BEGIN) &&
7311 verifier.VerifyVector(begin()) &&
7312 VerifyOffset(verifier, VT_END) &&
7313 verifier.VerifyVector(end()) &&
7314 VerifyOffset(verifier, VT_STRIDE) &&
7315 verifier.VerifyVector(stride()) &&
7316 VerifyField<int32_t>(verifier, VT_BEGINMASK) &&
7317 VerifyField<int32_t>(verifier, VT_ENDMASK) &&
7318 VerifyField<int32_t>(verifier, VT_SHRINKAXISMASK) &&
7319 VerifyField<int32_t>(verifier, VT_ELLIPSISMASK) &&
7320 VerifyField<int32_t>(verifier, VT_NEWAXISMASK) &&
7321 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
7322 verifier.EndTable();
7323 }
7324};
7325
7326struct StridedSliceDescriptorBuilder {
7327 typedef StridedSliceDescriptor Table;
7328 flatbuffers::FlatBufferBuilder &fbb_;
7329 flatbuffers::uoffset_t start_;
7330 void add_begin(flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin) {
7331 fbb_.AddOffset(StridedSliceDescriptor::VT_BEGIN, begin);
7332 }
7333 void add_end(flatbuffers::Offset<flatbuffers::Vector<int32_t>> end) {
7334 fbb_.AddOffset(StridedSliceDescriptor::VT_END, end);
7335 }
7336 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
7337 fbb_.AddOffset(StridedSliceDescriptor::VT_STRIDE, stride);
7338 }
7339 void add_beginMask(int32_t beginMask) {
7340 fbb_.AddElement<int32_t>(StridedSliceDescriptor::VT_BEGINMASK, beginMask, 0);
7341 }
7342 void add_endMask(int32_t endMask) {
7343 fbb_.AddElement<int32_t>(StridedSliceDescriptor::VT_ENDMASK, endMask, 0);
7344 }
7345 void add_shrinkAxisMask(int32_t shrinkAxisMask) {
7346 fbb_.AddElement<int32_t>(StridedSliceDescriptor::VT_SHRINKAXISMASK, shrinkAxisMask, 0);
7347 }
7348 void add_ellipsisMask(int32_t ellipsisMask) {
7349 fbb_.AddElement<int32_t>(StridedSliceDescriptor::VT_ELLIPSISMASK, ellipsisMask, 0);
7350 }
7351 void add_newAxisMask(int32_t newAxisMask) {
7352 fbb_.AddElement<int32_t>(StridedSliceDescriptor::VT_NEWAXISMASK, newAxisMask, 0);
7353 }
7354 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
7355 fbb_.AddElement<int8_t>(StridedSliceDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
7356 }
7357 explicit StridedSliceDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7358 : fbb_(_fbb) {
7359 start_ = fbb_.StartTable();
7360 }
7361 StridedSliceDescriptorBuilder &operator=(const StridedSliceDescriptorBuilder &);
7362 flatbuffers::Offset<StridedSliceDescriptor> Finish() {
7363 const auto end = fbb_.EndTable(start_);
7364 auto o = flatbuffers::Offset<StridedSliceDescriptor>(end);
7365 return o;
7366 }
7367};
7368
7369inline flatbuffers::Offset<StridedSliceDescriptor> CreateStridedSliceDescriptor(
7370 flatbuffers::FlatBufferBuilder &_fbb,
7371 flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin = 0,
7372 flatbuffers::Offset<flatbuffers::Vector<int32_t>> end = 0,
7373 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
7374 int32_t beginMask = 0,
7375 int32_t endMask = 0,
7376 int32_t shrinkAxisMask = 0,
7377 int32_t ellipsisMask = 0,
7378 int32_t newAxisMask = 0,
7379 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC) {
7380 StridedSliceDescriptorBuilder builder_(_fbb);
7381 builder_.add_newAxisMask(newAxisMask);
7382 builder_.add_ellipsisMask(ellipsisMask);
7383 builder_.add_shrinkAxisMask(shrinkAxisMask);
7384 builder_.add_endMask(endMask);
7385 builder_.add_beginMask(beginMask);
7386 builder_.add_stride(stride);
7387 builder_.add_end(end);
7388 builder_.add_begin(begin);
7389 builder_.add_dataLayout(dataLayout);
7390 return builder_.Finish();
7391}
7392
7393inline flatbuffers::Offset<StridedSliceDescriptor> CreateStridedSliceDescriptorDirect(
7394 flatbuffers::FlatBufferBuilder &_fbb,
7395 const std::vector<int32_t> *begin = nullptr,
7396 const std::vector<int32_t> *end = nullptr,
7397 const std::vector<int32_t> *stride = nullptr,
7398 int32_t beginMask = 0,
7399 int32_t endMask = 0,
7400 int32_t shrinkAxisMask = 0,
7401 int32_t ellipsisMask = 0,
7402 int32_t newAxisMask = 0,
7403 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC) {
7404 auto begin__ = begin ? _fbb.CreateVector<int32_t>(*begin) : 0;
7405 auto end__ = end ? _fbb.CreateVector<int32_t>(*end) : 0;
7406 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
7407 return armnnSerializer::CreateStridedSliceDescriptor(
7408 _fbb,
7409 begin__,
7410 end__,
7411 stride__,
7412 beginMask,
7413 endMask,
7414 shrinkAxisMask,
7415 ellipsisMask,
7416 newAxisMask,
7417 dataLayout);
7418}
7419
7420struct ConcatLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7421 typedef ConcatLayerBuilder Builder;
7422 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7423 VT_BASE = 4,
7424 VT_DESCRIPTOR = 6
7425 };
7426 const armnnSerializer::LayerBase *base() const {
7427 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
7428 }
7429 const armnnSerializer::OriginsDescriptor *descriptor() const {
7430 return GetPointer<const armnnSerializer::OriginsDescriptor *>(VT_DESCRIPTOR);
7431 }
7432 bool Verify(flatbuffers::Verifier &verifier) const {
7433 return VerifyTableStart(verifier) &&
7434 VerifyOffset(verifier, VT_BASE) &&
7435 verifier.VerifyTable(base()) &&
7436 VerifyOffset(verifier, VT_DESCRIPTOR) &&
7437 verifier.VerifyTable(descriptor()) &&
7438 verifier.EndTable();
7439 }
7440};
7441
7442struct ConcatLayerBuilder {
7443 typedef ConcatLayer Table;
7444 flatbuffers::FlatBufferBuilder &fbb_;
7445 flatbuffers::uoffset_t start_;
7446 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
7447 fbb_.AddOffset(ConcatLayer::VT_BASE, base);
7448 }
7449 void add_descriptor(flatbuffers::Offset<armnnSerializer::OriginsDescriptor> descriptor) {
7450 fbb_.AddOffset(ConcatLayer::VT_DESCRIPTOR, descriptor);
7451 }
7452 explicit ConcatLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7453 : fbb_(_fbb) {
7454 start_ = fbb_.StartTable();
7455 }
7456 ConcatLayerBuilder &operator=(const ConcatLayerBuilder &);
7457 flatbuffers::Offset<ConcatLayer> Finish() {
7458 const auto end = fbb_.EndTable(start_);
7459 auto o = flatbuffers::Offset<ConcatLayer>(end);
7460 return o;
7461 }
7462};
7463
7464inline flatbuffers::Offset<ConcatLayer> CreateConcatLayer(
7465 flatbuffers::FlatBufferBuilder &_fbb,
7466 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
7467 flatbuffers::Offset<armnnSerializer::OriginsDescriptor> descriptor = 0) {
7468 ConcatLayerBuilder builder_(_fbb);
7469 builder_.add_descriptor(descriptor);
7470 builder_.add_base(base);
7471 return builder_.Finish();
7472}
7473
7474/// @deprecated Use ConcatLayer instead
7475struct MergerLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7476 typedef MergerLayerBuilder Builder;
7477 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7478 VT_BASE = 4,
7479 VT_DESCRIPTOR = 6
7480 };
7481 const armnnSerializer::LayerBase *base() const {
7482 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
7483 }
7484 const armnnSerializer::OriginsDescriptor *descriptor() const {
7485 return GetPointer<const armnnSerializer::OriginsDescriptor *>(VT_DESCRIPTOR);
7486 }
7487 bool Verify(flatbuffers::Verifier &verifier) const {
7488 return VerifyTableStart(verifier) &&
7489 VerifyOffset(verifier, VT_BASE) &&
7490 verifier.VerifyTable(base()) &&
7491 VerifyOffset(verifier, VT_DESCRIPTOR) &&
7492 verifier.VerifyTable(descriptor()) &&
7493 verifier.EndTable();
7494 }
7495};
7496
7497struct MergerLayerBuilder {
7498 typedef MergerLayer Table;
7499 flatbuffers::FlatBufferBuilder &fbb_;
7500 flatbuffers::uoffset_t start_;
7501 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
7502 fbb_.AddOffset(MergerLayer::VT_BASE, base);
7503 }
7504 void add_descriptor(flatbuffers::Offset<armnnSerializer::OriginsDescriptor> descriptor) {
7505 fbb_.AddOffset(MergerLayer::VT_DESCRIPTOR, descriptor);
7506 }
7507 explicit MergerLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7508 : fbb_(_fbb) {
7509 start_ = fbb_.StartTable();
7510 }
7511 MergerLayerBuilder &operator=(const MergerLayerBuilder &);
7512 flatbuffers::Offset<MergerLayer> Finish() {
7513 const auto end = fbb_.EndTable(start_);
7514 auto o = flatbuffers::Offset<MergerLayer>(end);
7515 return o;
7516 }
7517};
7518
7519inline flatbuffers::Offset<MergerLayer> CreateMergerLayer(
7520 flatbuffers::FlatBufferBuilder &_fbb,
7521 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
7522 flatbuffers::Offset<armnnSerializer::OriginsDescriptor> descriptor = 0) {
7523 MergerLayerBuilder builder_(_fbb);
7524 builder_.add_descriptor(descriptor);
7525 builder_.add_base(base);
7526 return builder_.Finish();
7527}
7528
7529struct UintVector FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7530 typedef UintVectorBuilder Builder;
7531 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7532 VT_DATA = 4
7533 };
7534 const flatbuffers::Vector<uint32_t> *data() const {
7535 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_DATA);
7536 }
7537 bool Verify(flatbuffers::Verifier &verifier) const {
7538 return VerifyTableStart(verifier) &&
7539 VerifyOffset(verifier, VT_DATA) &&
7540 verifier.VerifyVector(data()) &&
7541 verifier.EndTable();
7542 }
7543};
7544
7545struct UintVectorBuilder {
7546 typedef UintVector Table;
7547 flatbuffers::FlatBufferBuilder &fbb_;
7548 flatbuffers::uoffset_t start_;
7549 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> data) {
7550 fbb_.AddOffset(UintVector::VT_DATA, data);
7551 }
7552 explicit UintVectorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7553 : fbb_(_fbb) {
7554 start_ = fbb_.StartTable();
7555 }
7556 UintVectorBuilder &operator=(const UintVectorBuilder &);
7557 flatbuffers::Offset<UintVector> Finish() {
7558 const auto end = fbb_.EndTable(start_);
7559 auto o = flatbuffers::Offset<UintVector>(end);
7560 return o;
7561 }
7562};
7563
7564inline flatbuffers::Offset<UintVector> CreateUintVector(
7565 flatbuffers::FlatBufferBuilder &_fbb,
7566 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> data = 0) {
7567 UintVectorBuilder builder_(_fbb);
7568 builder_.add_data(data);
7569 return builder_.Finish();
7570}
7571
7572inline flatbuffers::Offset<UintVector> CreateUintVectorDirect(
7573 flatbuffers::FlatBufferBuilder &_fbb,
7574 const std::vector<uint32_t> *data = nullptr) {
7575 auto data__ = data ? _fbb.CreateVector<uint32_t>(*data) : 0;
7576 return armnnSerializer::CreateUintVector(
7577 _fbb,
7578 data__);
7579}
7580
7581struct OriginsDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7582 typedef OriginsDescriptorBuilder Builder;
7583 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7584 VT_CONCATAXIS = 4,
7585 VT_NUMVIEWS = 6,
7586 VT_NUMDIMENSIONS = 8,
7587 VT_VIEWORIGINS = 10
7588 };
7589 uint32_t concatAxis() const {
7590 return GetField<uint32_t>(VT_CONCATAXIS, 0);
7591 }
7592 uint32_t numViews() const {
7593 return GetField<uint32_t>(VT_NUMVIEWS, 0);
7594 }
7595 uint32_t numDimensions() const {
7596 return GetField<uint32_t>(VT_NUMDIMENSIONS, 0);
7597 }
7598 const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>> *viewOrigins() const {
7599 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>> *>(VT_VIEWORIGINS);
7600 }
7601 bool Verify(flatbuffers::Verifier &verifier) const {
7602 return VerifyTableStart(verifier) &&
7603 VerifyField<uint32_t>(verifier, VT_CONCATAXIS) &&
7604 VerifyField<uint32_t>(verifier, VT_NUMVIEWS) &&
7605 VerifyField<uint32_t>(verifier, VT_NUMDIMENSIONS) &&
7606 VerifyOffset(verifier, VT_VIEWORIGINS) &&
7607 verifier.VerifyVector(viewOrigins()) &&
7608 verifier.VerifyVectorOfTables(viewOrigins()) &&
7609 verifier.EndTable();
7610 }
7611};
7612
7613struct OriginsDescriptorBuilder {
7614 typedef OriginsDescriptor Table;
7615 flatbuffers::FlatBufferBuilder &fbb_;
7616 flatbuffers::uoffset_t start_;
7617 void add_concatAxis(uint32_t concatAxis) {
7618 fbb_.AddElement<uint32_t>(OriginsDescriptor::VT_CONCATAXIS, concatAxis, 0);
7619 }
7620 void add_numViews(uint32_t numViews) {
7621 fbb_.AddElement<uint32_t>(OriginsDescriptor::VT_NUMVIEWS, numViews, 0);
7622 }
7623 void add_numDimensions(uint32_t numDimensions) {
7624 fbb_.AddElement<uint32_t>(OriginsDescriptor::VT_NUMDIMENSIONS, numDimensions, 0);
7625 }
7626 void add_viewOrigins(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>>> viewOrigins) {
7627 fbb_.AddOffset(OriginsDescriptor::VT_VIEWORIGINS, viewOrigins);
7628 }
7629 explicit OriginsDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7630 : fbb_(_fbb) {
7631 start_ = fbb_.StartTable();
7632 }
7633 OriginsDescriptorBuilder &operator=(const OriginsDescriptorBuilder &);
7634 flatbuffers::Offset<OriginsDescriptor> Finish() {
7635 const auto end = fbb_.EndTable(start_);
7636 auto o = flatbuffers::Offset<OriginsDescriptor>(end);
7637 return o;
7638 }
7639};
7640
7641inline flatbuffers::Offset<OriginsDescriptor> CreateOriginsDescriptor(
7642 flatbuffers::FlatBufferBuilder &_fbb,
7643 uint32_t concatAxis = 0,
7644 uint32_t numViews = 0,
7645 uint32_t numDimensions = 0,
7646 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>>> viewOrigins = 0) {
7647 OriginsDescriptorBuilder builder_(_fbb);
7648 builder_.add_viewOrigins(viewOrigins);
7649 builder_.add_numDimensions(numDimensions);
7650 builder_.add_numViews(numViews);
7651 builder_.add_concatAxis(concatAxis);
7652 return builder_.Finish();
7653}
7654
7655inline flatbuffers::Offset<OriginsDescriptor> CreateOriginsDescriptorDirect(
7656 flatbuffers::FlatBufferBuilder &_fbb,
7657 uint32_t concatAxis = 0,
7658 uint32_t numViews = 0,
7659 uint32_t numDimensions = 0,
7660 const std::vector<flatbuffers::Offset<armnnSerializer::UintVector>> *viewOrigins = nullptr) {
7661 auto viewOrigins__ = viewOrigins ? _fbb.CreateVector<flatbuffers::Offset<armnnSerializer::UintVector>>(*viewOrigins) : 0;
7662 return armnnSerializer::CreateOriginsDescriptor(
7663 _fbb,
7664 concatAxis,
7665 numViews,
7666 numDimensions,
7667 viewOrigins__);
7668}
7669
7670struct ViewsDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7671 typedef ViewsDescriptorBuilder Builder;
7672 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7673 VT_ORIGINS = 4,
7674 VT_VIEWSIZES = 6
7675 };
7676 const armnnSerializer::OriginsDescriptor *origins() const {
7677 return GetPointer<const armnnSerializer::OriginsDescriptor *>(VT_ORIGINS);
7678 }
7679 const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>> *viewSizes() const {
7680 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>> *>(VT_VIEWSIZES);
7681 }
7682 bool Verify(flatbuffers::Verifier &verifier) const {
7683 return VerifyTableStart(verifier) &&
7684 VerifyOffset(verifier, VT_ORIGINS) &&
7685 verifier.VerifyTable(origins()) &&
7686 VerifyOffset(verifier, VT_VIEWSIZES) &&
7687 verifier.VerifyVector(viewSizes()) &&
7688 verifier.VerifyVectorOfTables(viewSizes()) &&
7689 verifier.EndTable();
7690 }
7691};
7692
7693struct ViewsDescriptorBuilder {
7694 typedef ViewsDescriptor Table;
7695 flatbuffers::FlatBufferBuilder &fbb_;
7696 flatbuffers::uoffset_t start_;
7697 void add_origins(flatbuffers::Offset<armnnSerializer::OriginsDescriptor> origins) {
7698 fbb_.AddOffset(ViewsDescriptor::VT_ORIGINS, origins);
7699 }
7700 void add_viewSizes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>>> viewSizes) {
7701 fbb_.AddOffset(ViewsDescriptor::VT_VIEWSIZES, viewSizes);
7702 }
7703 explicit ViewsDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7704 : fbb_(_fbb) {
7705 start_ = fbb_.StartTable();
7706 }
7707 ViewsDescriptorBuilder &operator=(const ViewsDescriptorBuilder &);
7708 flatbuffers::Offset<ViewsDescriptor> Finish() {
7709 const auto end = fbb_.EndTable(start_);
7710 auto o = flatbuffers::Offset<ViewsDescriptor>(end);
7711 return o;
7712 }
7713};
7714
7715inline flatbuffers::Offset<ViewsDescriptor> CreateViewsDescriptor(
7716 flatbuffers::FlatBufferBuilder &_fbb,
7717 flatbuffers::Offset<armnnSerializer::OriginsDescriptor> origins = 0,
7718 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::UintVector>>> viewSizes = 0) {
7719 ViewsDescriptorBuilder builder_(_fbb);
7720 builder_.add_viewSizes(viewSizes);
7721 builder_.add_origins(origins);
7722 return builder_.Finish();
7723}
7724
7725inline flatbuffers::Offset<ViewsDescriptor> CreateViewsDescriptorDirect(
7726 flatbuffers::FlatBufferBuilder &_fbb,
7727 flatbuffers::Offset<armnnSerializer::OriginsDescriptor> origins = 0,
7728 const std::vector<flatbuffers::Offset<armnnSerializer::UintVector>> *viewSizes = nullptr) {
7729 auto viewSizes__ = viewSizes ? _fbb.CreateVector<flatbuffers::Offset<armnnSerializer::UintVector>>(*viewSizes) : 0;
7730 return armnnSerializer::CreateViewsDescriptor(
7731 _fbb,
7732 origins,
7733 viewSizes__);
7734}
7735
7736struct SplitterLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7737 typedef SplitterLayerBuilder Builder;
7738 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7739 VT_BASE = 4,
7740 VT_DESCRIPTOR = 6
7741 };
7742 const armnnSerializer::LayerBase *base() const {
7743 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
7744 }
7745 const armnnSerializer::ViewsDescriptor *descriptor() const {
7746 return GetPointer<const armnnSerializer::ViewsDescriptor *>(VT_DESCRIPTOR);
7747 }
7748 bool Verify(flatbuffers::Verifier &verifier) const {
7749 return VerifyTableStart(verifier) &&
7750 VerifyOffset(verifier, VT_BASE) &&
7751 verifier.VerifyTable(base()) &&
7752 VerifyOffset(verifier, VT_DESCRIPTOR) &&
7753 verifier.VerifyTable(descriptor()) &&
7754 verifier.EndTable();
7755 }
7756};
7757
7758struct SplitterLayerBuilder {
7759 typedef SplitterLayer Table;
7760 flatbuffers::FlatBufferBuilder &fbb_;
7761 flatbuffers::uoffset_t start_;
7762 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
7763 fbb_.AddOffset(SplitterLayer::VT_BASE, base);
7764 }
7765 void add_descriptor(flatbuffers::Offset<armnnSerializer::ViewsDescriptor> descriptor) {
7766 fbb_.AddOffset(SplitterLayer::VT_DESCRIPTOR, descriptor);
7767 }
7768 explicit SplitterLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7769 : fbb_(_fbb) {
7770 start_ = fbb_.StartTable();
7771 }
7772 SplitterLayerBuilder &operator=(const SplitterLayerBuilder &);
7773 flatbuffers::Offset<SplitterLayer> Finish() {
7774 const auto end = fbb_.EndTable(start_);
7775 auto o = flatbuffers::Offset<SplitterLayer>(end);
7776 return o;
7777 }
7778};
7779
7780inline flatbuffers::Offset<SplitterLayer> CreateSplitterLayer(
7781 flatbuffers::FlatBufferBuilder &_fbb,
7782 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
7783 flatbuffers::Offset<armnnSerializer::ViewsDescriptor> descriptor = 0) {
7784 SplitterLayerBuilder builder_(_fbb);
7785 builder_.add_descriptor(descriptor);
7786 builder_.add_base(base);
7787 return builder_.Finish();
7788}
7789
7790struct DetectionPostProcessLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7791 typedef DetectionPostProcessLayerBuilder Builder;
7792 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7793 VT_BASE = 4,
7794 VT_DESCRIPTOR = 6,
7795 VT_ANCHORS = 8
7796 };
7797 const armnnSerializer::LayerBase *base() const {
7798 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
7799 }
7800 const armnnSerializer::DetectionPostProcessDescriptor *descriptor() const {
7801 return GetPointer<const armnnSerializer::DetectionPostProcessDescriptor *>(VT_DESCRIPTOR);
7802 }
7803 const armnnSerializer::ConstTensor *anchors() const {
7804 return GetPointer<const armnnSerializer::ConstTensor *>(VT_ANCHORS);
7805 }
7806 bool Verify(flatbuffers::Verifier &verifier) const {
7807 return VerifyTableStart(verifier) &&
7808 VerifyOffset(verifier, VT_BASE) &&
7809 verifier.VerifyTable(base()) &&
7810 VerifyOffset(verifier, VT_DESCRIPTOR) &&
7811 verifier.VerifyTable(descriptor()) &&
7812 VerifyOffset(verifier, VT_ANCHORS) &&
7813 verifier.VerifyTable(anchors()) &&
7814 verifier.EndTable();
7815 }
7816};
7817
7818struct DetectionPostProcessLayerBuilder {
7819 typedef DetectionPostProcessLayer Table;
7820 flatbuffers::FlatBufferBuilder &fbb_;
7821 flatbuffers::uoffset_t start_;
7822 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
7823 fbb_.AddOffset(DetectionPostProcessLayer::VT_BASE, base);
7824 }
7825 void add_descriptor(flatbuffers::Offset<armnnSerializer::DetectionPostProcessDescriptor> descriptor) {
7826 fbb_.AddOffset(DetectionPostProcessLayer::VT_DESCRIPTOR, descriptor);
7827 }
7828 void add_anchors(flatbuffers::Offset<armnnSerializer::ConstTensor> anchors) {
7829 fbb_.AddOffset(DetectionPostProcessLayer::VT_ANCHORS, anchors);
7830 }
7831 explicit DetectionPostProcessLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7832 : fbb_(_fbb) {
7833 start_ = fbb_.StartTable();
7834 }
7835 DetectionPostProcessLayerBuilder &operator=(const DetectionPostProcessLayerBuilder &);
7836 flatbuffers::Offset<DetectionPostProcessLayer> Finish() {
7837 const auto end = fbb_.EndTable(start_);
7838 auto o = flatbuffers::Offset<DetectionPostProcessLayer>(end);
7839 return o;
7840 }
7841};
7842
7843inline flatbuffers::Offset<DetectionPostProcessLayer> CreateDetectionPostProcessLayer(
7844 flatbuffers::FlatBufferBuilder &_fbb,
7845 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
7846 flatbuffers::Offset<armnnSerializer::DetectionPostProcessDescriptor> descriptor = 0,
7847 flatbuffers::Offset<armnnSerializer::ConstTensor> anchors = 0) {
7848 DetectionPostProcessLayerBuilder builder_(_fbb);
7849 builder_.add_anchors(anchors);
7850 builder_.add_descriptor(descriptor);
7851 builder_.add_base(base);
7852 return builder_.Finish();
7853}
7854
7855struct DetectionPostProcessDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7856 typedef DetectionPostProcessDescriptorBuilder Builder;
7857 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
7858 VT_MAXDETECTIONS = 4,
7859 VT_MAXCLASSESPERDETECTION = 6,
7860 VT_DETECTIONSPERCLASS = 8,
7861 VT_NMSSCORETHRESHOLD = 10,
7862 VT_NMSIOUTHRESHOLD = 12,
7863 VT_NUMCLASSES = 14,
7864 VT_USEREGULARNMS = 16,
7865 VT_SCALEX = 18,
7866 VT_SCALEY = 20,
7867 VT_SCALEW = 22,
7868 VT_SCALEH = 24
7869 };
7870 uint32_t maxDetections() const {
7871 return GetField<uint32_t>(VT_MAXDETECTIONS, 0);
7872 }
7873 uint32_t maxClassesPerDetection() const {
7874 return GetField<uint32_t>(VT_MAXCLASSESPERDETECTION, 0);
7875 }
7876 uint32_t detectionsPerClass() const {
7877 return GetField<uint32_t>(VT_DETECTIONSPERCLASS, 0);
7878 }
7879 float nmsScoreThreshold() const {
7880 return GetField<float>(VT_NMSSCORETHRESHOLD, 0.0f);
7881 }
7882 float nmsIouThreshold() const {
7883 return GetField<float>(VT_NMSIOUTHRESHOLD, 0.0f);
7884 }
7885 uint32_t numClasses() const {
7886 return GetField<uint32_t>(VT_NUMCLASSES, 0);
7887 }
7888 bool useRegularNms() const {
7889 return GetField<uint8_t>(VT_USEREGULARNMS, 0) != 0;
7890 }
7891 float scaleX() const {
7892 return GetField<float>(VT_SCALEX, 0.0f);
7893 }
7894 float scaleY() const {
7895 return GetField<float>(VT_SCALEY, 0.0f);
7896 }
7897 float scaleW() const {
7898 return GetField<float>(VT_SCALEW, 0.0f);
7899 }
7900 float scaleH() const {
7901 return GetField<float>(VT_SCALEH, 0.0f);
7902 }
7903 bool Verify(flatbuffers::Verifier &verifier) const {
7904 return VerifyTableStart(verifier) &&
7905 VerifyField<uint32_t>(verifier, VT_MAXDETECTIONS) &&
7906 VerifyField<uint32_t>(verifier, VT_MAXCLASSESPERDETECTION) &&
7907 VerifyField<uint32_t>(verifier, VT_DETECTIONSPERCLASS) &&
7908 VerifyField<float>(verifier, VT_NMSSCORETHRESHOLD) &&
7909 VerifyField<float>(verifier, VT_NMSIOUTHRESHOLD) &&
7910 VerifyField<uint32_t>(verifier, VT_NUMCLASSES) &&
7911 VerifyField<uint8_t>(verifier, VT_USEREGULARNMS) &&
7912 VerifyField<float>(verifier, VT_SCALEX) &&
7913 VerifyField<float>(verifier, VT_SCALEY) &&
7914 VerifyField<float>(verifier, VT_SCALEW) &&
7915 VerifyField<float>(verifier, VT_SCALEH) &&
7916 verifier.EndTable();
7917 }
7918};
7919
7920struct DetectionPostProcessDescriptorBuilder {
7921 typedef DetectionPostProcessDescriptor Table;
7922 flatbuffers::FlatBufferBuilder &fbb_;
7923 flatbuffers::uoffset_t start_;
7924 void add_maxDetections(uint32_t maxDetections) {
7925 fbb_.AddElement<uint32_t>(DetectionPostProcessDescriptor::VT_MAXDETECTIONS, maxDetections, 0);
7926 }
7927 void add_maxClassesPerDetection(uint32_t maxClassesPerDetection) {
7928 fbb_.AddElement<uint32_t>(DetectionPostProcessDescriptor::VT_MAXCLASSESPERDETECTION, maxClassesPerDetection, 0);
7929 }
7930 void add_detectionsPerClass(uint32_t detectionsPerClass) {
7931 fbb_.AddElement<uint32_t>(DetectionPostProcessDescriptor::VT_DETECTIONSPERCLASS, detectionsPerClass, 0);
7932 }
7933 void add_nmsScoreThreshold(float nmsScoreThreshold) {
7934 fbb_.AddElement<float>(DetectionPostProcessDescriptor::VT_NMSSCORETHRESHOLD, nmsScoreThreshold, 0.0f);
7935 }
7936 void add_nmsIouThreshold(float nmsIouThreshold) {
7937 fbb_.AddElement<float>(DetectionPostProcessDescriptor::VT_NMSIOUTHRESHOLD, nmsIouThreshold, 0.0f);
7938 }
7939 void add_numClasses(uint32_t numClasses) {
7940 fbb_.AddElement<uint32_t>(DetectionPostProcessDescriptor::VT_NUMCLASSES, numClasses, 0);
7941 }
7942 void add_useRegularNms(bool useRegularNms) {
7943 fbb_.AddElement<uint8_t>(DetectionPostProcessDescriptor::VT_USEREGULARNMS, static_cast<uint8_t>(useRegularNms), 0);
7944 }
7945 void add_scaleX(float scaleX) {
7946 fbb_.AddElement<float>(DetectionPostProcessDescriptor::VT_SCALEX, scaleX, 0.0f);
7947 }
7948 void add_scaleY(float scaleY) {
7949 fbb_.AddElement<float>(DetectionPostProcessDescriptor::VT_SCALEY, scaleY, 0.0f);
7950 }
7951 void add_scaleW(float scaleW) {
7952 fbb_.AddElement<float>(DetectionPostProcessDescriptor::VT_SCALEW, scaleW, 0.0f);
7953 }
7954 void add_scaleH(float scaleH) {
7955 fbb_.AddElement<float>(DetectionPostProcessDescriptor::VT_SCALEH, scaleH, 0.0f);
7956 }
7957 explicit DetectionPostProcessDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7958 : fbb_(_fbb) {
7959 start_ = fbb_.StartTable();
7960 }
7961 DetectionPostProcessDescriptorBuilder &operator=(const DetectionPostProcessDescriptorBuilder &);
7962 flatbuffers::Offset<DetectionPostProcessDescriptor> Finish() {
7963 const auto end = fbb_.EndTable(start_);
7964 auto o = flatbuffers::Offset<DetectionPostProcessDescriptor>(end);
7965 return o;
7966 }
7967};
7968
7969inline flatbuffers::Offset<DetectionPostProcessDescriptor> CreateDetectionPostProcessDescriptor(
7970 flatbuffers::FlatBufferBuilder &_fbb,
7971 uint32_t maxDetections = 0,
7972 uint32_t maxClassesPerDetection = 0,
7973 uint32_t detectionsPerClass = 0,
7974 float nmsScoreThreshold = 0.0f,
7975 float nmsIouThreshold = 0.0f,
7976 uint32_t numClasses = 0,
7977 bool useRegularNms = false,
7978 float scaleX = 0.0f,
7979 float scaleY = 0.0f,
7980 float scaleW = 0.0f,
7981 float scaleH = 0.0f) {
7982 DetectionPostProcessDescriptorBuilder builder_(_fbb);
7983 builder_.add_scaleH(scaleH);
7984 builder_.add_scaleW(scaleW);
7985 builder_.add_scaleY(scaleY);
7986 builder_.add_scaleX(scaleX);
7987 builder_.add_numClasses(numClasses);
7988 builder_.add_nmsIouThreshold(nmsIouThreshold);
7989 builder_.add_nmsScoreThreshold(nmsScoreThreshold);
7990 builder_.add_detectionsPerClass(detectionsPerClass);
7991 builder_.add_maxClassesPerDetection(maxClassesPerDetection);
7992 builder_.add_maxDetections(maxDetections);
7993 builder_.add_useRegularNms(useRegularNms);
7994 return builder_.Finish();
7995}
7996
7997struct LstmInputParams FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
7998 typedef LstmInputParamsBuilder Builder;
7999 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8000 VT_INPUTTOFORGETWEIGHTS = 4,
8001 VT_INPUTTOCELLWEIGHTS = 6,
8002 VT_INPUTTOOUTPUTWEIGHTS = 8,
8003 VT_RECURRENTTOFORGETWEIGHTS = 10,
8004 VT_RECURRENTTOCELLWEIGHTS = 12,
8005 VT_RECURRENTTOOUTPUTWEIGHTS = 14,
8006 VT_FORGETGATEBIAS = 16,
8007 VT_CELLBIAS = 18,
8008 VT_OUTPUTGATEBIAS = 20,
8009 VT_INPUTTOINPUTWEIGHTS = 22,
8010 VT_RECURRENTTOINPUTWEIGHTS = 24,
8011 VT_CELLTOINPUTWEIGHTS = 26,
8012 VT_INPUTGATEBIAS = 28,
8013 VT_PROJECTIONWEIGHTS = 30,
8014 VT_PROJECTIONBIAS = 32,
8015 VT_CELLTOFORGETWEIGHTS = 34,
8016 VT_CELLTOOUTPUTWEIGHTS = 36,
8017 VT_INPUTLAYERNORMWEIGHTS = 38,
8018 VT_FORGETLAYERNORMWEIGHTS = 40,
8019 VT_CELLLAYERNORMWEIGHTS = 42,
8020 VT_OUTPUTLAYERNORMWEIGHTS = 44
8021 };
8022 const armnnSerializer::ConstTensor *inputToForgetWeights() const {
8023 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOFORGETWEIGHTS);
8024 }
8025 const armnnSerializer::ConstTensor *inputToCellWeights() const {
8026 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOCELLWEIGHTS);
8027 }
8028 const armnnSerializer::ConstTensor *inputToOutputWeights() const {
8029 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOOUTPUTWEIGHTS);
8030 }
8031 const armnnSerializer::ConstTensor *recurrentToForgetWeights() const {
8032 return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOFORGETWEIGHTS);
8033 }
8034 const armnnSerializer::ConstTensor *recurrentToCellWeights() const {
8035 return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOCELLWEIGHTS);
8036 }
8037 const armnnSerializer::ConstTensor *recurrentToOutputWeights() const {
8038 return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOOUTPUTWEIGHTS);
8039 }
8040 const armnnSerializer::ConstTensor *forgetGateBias() const {
8041 return GetPointer<const armnnSerializer::ConstTensor *>(VT_FORGETGATEBIAS);
8042 }
8043 const armnnSerializer::ConstTensor *cellBias() const {
8044 return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLBIAS);
8045 }
8046 const armnnSerializer::ConstTensor *outputGateBias() const {
8047 return GetPointer<const armnnSerializer::ConstTensor *>(VT_OUTPUTGATEBIAS);
8048 }
8049 const armnnSerializer::ConstTensor *inputToInputWeights() const {
8050 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOINPUTWEIGHTS);
8051 }
8052 const armnnSerializer::ConstTensor *recurrentToInputWeights() const {
8053 return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOINPUTWEIGHTS);
8054 }
8055 const armnnSerializer::ConstTensor *cellToInputWeights() const {
8056 return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLTOINPUTWEIGHTS);
8057 }
8058 const armnnSerializer::ConstTensor *inputGateBias() const {
8059 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTGATEBIAS);
8060 }
8061 const armnnSerializer::ConstTensor *projectionWeights() const {
8062 return GetPointer<const armnnSerializer::ConstTensor *>(VT_PROJECTIONWEIGHTS);
8063 }
8064 const armnnSerializer::ConstTensor *projectionBias() const {
8065 return GetPointer<const armnnSerializer::ConstTensor *>(VT_PROJECTIONBIAS);
8066 }
8067 const armnnSerializer::ConstTensor *cellToForgetWeights() const {
8068 return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLTOFORGETWEIGHTS);
8069 }
8070 const armnnSerializer::ConstTensor *cellToOutputWeights() const {
8071 return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLTOOUTPUTWEIGHTS);
8072 }
8073 const armnnSerializer::ConstTensor *inputLayerNormWeights() const {
8074 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTLAYERNORMWEIGHTS);
8075 }
8076 const armnnSerializer::ConstTensor *forgetLayerNormWeights() const {
8077 return GetPointer<const armnnSerializer::ConstTensor *>(VT_FORGETLAYERNORMWEIGHTS);
8078 }
8079 const armnnSerializer::ConstTensor *cellLayerNormWeights() const {
8080 return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLLAYERNORMWEIGHTS);
8081 }
8082 const armnnSerializer::ConstTensor *outputLayerNormWeights() const {
8083 return GetPointer<const armnnSerializer::ConstTensor *>(VT_OUTPUTLAYERNORMWEIGHTS);
8084 }
8085 bool Verify(flatbuffers::Verifier &verifier) const {
8086 return VerifyTableStart(verifier) &&
8087 VerifyOffset(verifier, VT_INPUTTOFORGETWEIGHTS) &&
8088 verifier.VerifyTable(inputToForgetWeights()) &&
8089 VerifyOffset(verifier, VT_INPUTTOCELLWEIGHTS) &&
8090 verifier.VerifyTable(inputToCellWeights()) &&
8091 VerifyOffset(verifier, VT_INPUTTOOUTPUTWEIGHTS) &&
8092 verifier.VerifyTable(inputToOutputWeights()) &&
8093 VerifyOffset(verifier, VT_RECURRENTTOFORGETWEIGHTS) &&
8094 verifier.VerifyTable(recurrentToForgetWeights()) &&
8095 VerifyOffset(verifier, VT_RECURRENTTOCELLWEIGHTS) &&
8096 verifier.VerifyTable(recurrentToCellWeights()) &&
8097 VerifyOffset(verifier, VT_RECURRENTTOOUTPUTWEIGHTS) &&
8098 verifier.VerifyTable(recurrentToOutputWeights()) &&
8099 VerifyOffset(verifier, VT_FORGETGATEBIAS) &&
8100 verifier.VerifyTable(forgetGateBias()) &&
8101 VerifyOffset(verifier, VT_CELLBIAS) &&
8102 verifier.VerifyTable(cellBias()) &&
8103 VerifyOffset(verifier, VT_OUTPUTGATEBIAS) &&
8104 verifier.VerifyTable(outputGateBias()) &&
8105 VerifyOffset(verifier, VT_INPUTTOINPUTWEIGHTS) &&
8106 verifier.VerifyTable(inputToInputWeights()) &&
8107 VerifyOffset(verifier, VT_RECURRENTTOINPUTWEIGHTS) &&
8108 verifier.VerifyTable(recurrentToInputWeights()) &&
8109 VerifyOffset(verifier, VT_CELLTOINPUTWEIGHTS) &&
8110 verifier.VerifyTable(cellToInputWeights()) &&
8111 VerifyOffset(verifier, VT_INPUTGATEBIAS) &&
8112 verifier.VerifyTable(inputGateBias()) &&
8113 VerifyOffset(verifier, VT_PROJECTIONWEIGHTS) &&
8114 verifier.VerifyTable(projectionWeights()) &&
8115 VerifyOffset(verifier, VT_PROJECTIONBIAS) &&
8116 verifier.VerifyTable(projectionBias()) &&
8117 VerifyOffset(verifier, VT_CELLTOFORGETWEIGHTS) &&
8118 verifier.VerifyTable(cellToForgetWeights()) &&
8119 VerifyOffset(verifier, VT_CELLTOOUTPUTWEIGHTS) &&
8120 verifier.VerifyTable(cellToOutputWeights()) &&
8121 VerifyOffset(verifier, VT_INPUTLAYERNORMWEIGHTS) &&
8122 verifier.VerifyTable(inputLayerNormWeights()) &&
8123 VerifyOffset(verifier, VT_FORGETLAYERNORMWEIGHTS) &&
8124 verifier.VerifyTable(forgetLayerNormWeights()) &&
8125 VerifyOffset(verifier, VT_CELLLAYERNORMWEIGHTS) &&
8126 verifier.VerifyTable(cellLayerNormWeights()) &&
8127 VerifyOffset(verifier, VT_OUTPUTLAYERNORMWEIGHTS) &&
8128 verifier.VerifyTable(outputLayerNormWeights()) &&
8129 verifier.EndTable();
8130 }
8131};
8132
8133struct LstmInputParamsBuilder {
8134 typedef LstmInputParams Table;
8135 flatbuffers::FlatBufferBuilder &fbb_;
8136 flatbuffers::uoffset_t start_;
8137 void add_inputToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToForgetWeights) {
8138 fbb_.AddOffset(LstmInputParams::VT_INPUTTOFORGETWEIGHTS, inputToForgetWeights);
8139 }
8140 void add_inputToCellWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToCellWeights) {
8141 fbb_.AddOffset(LstmInputParams::VT_INPUTTOCELLWEIGHTS, inputToCellWeights);
8142 }
8143 void add_inputToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToOutputWeights) {
8144 fbb_.AddOffset(LstmInputParams::VT_INPUTTOOUTPUTWEIGHTS, inputToOutputWeights);
8145 }
8146 void add_recurrentToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToForgetWeights) {
8147 fbb_.AddOffset(LstmInputParams::VT_RECURRENTTOFORGETWEIGHTS, recurrentToForgetWeights);
8148 }
8149 void add_recurrentToCellWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToCellWeights) {
8150 fbb_.AddOffset(LstmInputParams::VT_RECURRENTTOCELLWEIGHTS, recurrentToCellWeights);
8151 }
8152 void add_recurrentToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToOutputWeights) {
8153 fbb_.AddOffset(LstmInputParams::VT_RECURRENTTOOUTPUTWEIGHTS, recurrentToOutputWeights);
8154 }
8155 void add_forgetGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> forgetGateBias) {
8156 fbb_.AddOffset(LstmInputParams::VT_FORGETGATEBIAS, forgetGateBias);
8157 }
8158 void add_cellBias(flatbuffers::Offset<armnnSerializer::ConstTensor> cellBias) {
8159 fbb_.AddOffset(LstmInputParams::VT_CELLBIAS, cellBias);
8160 }
8161 void add_outputGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> outputGateBias) {
8162 fbb_.AddOffset(LstmInputParams::VT_OUTPUTGATEBIAS, outputGateBias);
8163 }
8164 void add_inputToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToInputWeights) {
8165 fbb_.AddOffset(LstmInputParams::VT_INPUTTOINPUTWEIGHTS, inputToInputWeights);
8166 }
8167 void add_recurrentToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToInputWeights) {
8168 fbb_.AddOffset(LstmInputParams::VT_RECURRENTTOINPUTWEIGHTS, recurrentToInputWeights);
8169 }
8170 void add_cellToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellToInputWeights) {
8171 fbb_.AddOffset(LstmInputParams::VT_CELLTOINPUTWEIGHTS, cellToInputWeights);
8172 }
8173 void add_inputGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> inputGateBias) {
8174 fbb_.AddOffset(LstmInputParams::VT_INPUTGATEBIAS, inputGateBias);
8175 }
8176 void add_projectionWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> projectionWeights) {
8177 fbb_.AddOffset(LstmInputParams::VT_PROJECTIONWEIGHTS, projectionWeights);
8178 }
8179 void add_projectionBias(flatbuffers::Offset<armnnSerializer::ConstTensor> projectionBias) {
8180 fbb_.AddOffset(LstmInputParams::VT_PROJECTIONBIAS, projectionBias);
8181 }
8182 void add_cellToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellToForgetWeights) {
8183 fbb_.AddOffset(LstmInputParams::VT_CELLTOFORGETWEIGHTS, cellToForgetWeights);
8184 }
8185 void add_cellToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellToOutputWeights) {
8186 fbb_.AddOffset(LstmInputParams::VT_CELLTOOUTPUTWEIGHTS, cellToOutputWeights);
8187 }
8188 void add_inputLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputLayerNormWeights) {
8189 fbb_.AddOffset(LstmInputParams::VT_INPUTLAYERNORMWEIGHTS, inputLayerNormWeights);
8190 }
8191 void add_forgetLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> forgetLayerNormWeights) {
8192 fbb_.AddOffset(LstmInputParams::VT_FORGETLAYERNORMWEIGHTS, forgetLayerNormWeights);
8193 }
8194 void add_cellLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellLayerNormWeights) {
8195 fbb_.AddOffset(LstmInputParams::VT_CELLLAYERNORMWEIGHTS, cellLayerNormWeights);
8196 }
8197 void add_outputLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> outputLayerNormWeights) {
8198 fbb_.AddOffset(LstmInputParams::VT_OUTPUTLAYERNORMWEIGHTS, outputLayerNormWeights);
8199 }
8200 explicit LstmInputParamsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8201 : fbb_(_fbb) {
8202 start_ = fbb_.StartTable();
8203 }
8204 LstmInputParamsBuilder &operator=(const LstmInputParamsBuilder &);
8205 flatbuffers::Offset<LstmInputParams> Finish() {
8206 const auto end = fbb_.EndTable(start_);
8207 auto o = flatbuffers::Offset<LstmInputParams>(end);
8208 return o;
8209 }
8210};
8211
8212inline flatbuffers::Offset<LstmInputParams> CreateLstmInputParams(
8213 flatbuffers::FlatBufferBuilder &_fbb,
8214 flatbuffers::Offset<armnnSerializer::ConstTensor> inputToForgetWeights = 0,
8215 flatbuffers::Offset<armnnSerializer::ConstTensor> inputToCellWeights = 0,
8216 flatbuffers::Offset<armnnSerializer::ConstTensor> inputToOutputWeights = 0,
8217 flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToForgetWeights = 0,
8218 flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToCellWeights = 0,
8219 flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToOutputWeights = 0,
8220 flatbuffers::Offset<armnnSerializer::ConstTensor> forgetGateBias = 0,
8221 flatbuffers::Offset<armnnSerializer::ConstTensor> cellBias = 0,
8222 flatbuffers::Offset<armnnSerializer::ConstTensor> outputGateBias = 0,
8223 flatbuffers::Offset<armnnSerializer::ConstTensor> inputToInputWeights = 0,
8224 flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToInputWeights = 0,
8225 flatbuffers::Offset<armnnSerializer::ConstTensor> cellToInputWeights = 0,
8226 flatbuffers::Offset<armnnSerializer::ConstTensor> inputGateBias = 0,
8227 flatbuffers::Offset<armnnSerializer::ConstTensor> projectionWeights = 0,
8228 flatbuffers::Offset<armnnSerializer::ConstTensor> projectionBias = 0,
8229 flatbuffers::Offset<armnnSerializer::ConstTensor> cellToForgetWeights = 0,
8230 flatbuffers::Offset<armnnSerializer::ConstTensor> cellToOutputWeights = 0,
8231 flatbuffers::Offset<armnnSerializer::ConstTensor> inputLayerNormWeights = 0,
8232 flatbuffers::Offset<armnnSerializer::ConstTensor> forgetLayerNormWeights = 0,
8233 flatbuffers::Offset<armnnSerializer::ConstTensor> cellLayerNormWeights = 0,
8234 flatbuffers::Offset<armnnSerializer::ConstTensor> outputLayerNormWeights = 0) {
8235 LstmInputParamsBuilder builder_(_fbb);
8236 builder_.add_outputLayerNormWeights(outputLayerNormWeights);
8237 builder_.add_cellLayerNormWeights(cellLayerNormWeights);
8238 builder_.add_forgetLayerNormWeights(forgetLayerNormWeights);
8239 builder_.add_inputLayerNormWeights(inputLayerNormWeights);
8240 builder_.add_cellToOutputWeights(cellToOutputWeights);
8241 builder_.add_cellToForgetWeights(cellToForgetWeights);
8242 builder_.add_projectionBias(projectionBias);
8243 builder_.add_projectionWeights(projectionWeights);
8244 builder_.add_inputGateBias(inputGateBias);
8245 builder_.add_cellToInputWeights(cellToInputWeights);
8246 builder_.add_recurrentToInputWeights(recurrentToInputWeights);
8247 builder_.add_inputToInputWeights(inputToInputWeights);
8248 builder_.add_outputGateBias(outputGateBias);
8249 builder_.add_cellBias(cellBias);
8250 builder_.add_forgetGateBias(forgetGateBias);
8251 builder_.add_recurrentToOutputWeights(recurrentToOutputWeights);
8252 builder_.add_recurrentToCellWeights(recurrentToCellWeights);
8253 builder_.add_recurrentToForgetWeights(recurrentToForgetWeights);
8254 builder_.add_inputToOutputWeights(inputToOutputWeights);
8255 builder_.add_inputToCellWeights(inputToCellWeights);
8256 builder_.add_inputToForgetWeights(inputToForgetWeights);
8257 return builder_.Finish();
8258}
8259
8260struct LstmDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8261 typedef LstmDescriptorBuilder Builder;
8262 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8263 VT_ACTIVATIONFUNC = 4,
8264 VT_CLIPPINGTHRESCELL = 6,
8265 VT_CLIPPINGTHRESPROJ = 8,
8266 VT_CIFGENABLED = 10,
8267 VT_PEEPHOLEENABLED = 12,
8268 VT_PROJECTIONENABLED = 14,
8269 VT_LAYERNORMENABLED = 16
8270 };
8271 uint32_t activationFunc() const {
8272 return GetField<uint32_t>(VT_ACTIVATIONFUNC, 0);
8273 }
8274 float clippingThresCell() const {
8275 return GetField<float>(VT_CLIPPINGTHRESCELL, 0.0f);
8276 }
8277 float clippingThresProj() const {
8278 return GetField<float>(VT_CLIPPINGTHRESPROJ, 0.0f);
8279 }
8280 bool cifgEnabled() const {
8281 return GetField<uint8_t>(VT_CIFGENABLED, 1) != 0;
8282 }
8283 bool peepholeEnabled() const {
8284 return GetField<uint8_t>(VT_PEEPHOLEENABLED, 0) != 0;
8285 }
8286 bool projectionEnabled() const {
8287 return GetField<uint8_t>(VT_PROJECTIONENABLED, 0) != 0;
8288 }
8289 bool layerNormEnabled() const {
8290 return GetField<uint8_t>(VT_LAYERNORMENABLED, 0) != 0;
8291 }
8292 bool Verify(flatbuffers::Verifier &verifier) const {
8293 return VerifyTableStart(verifier) &&
8294 VerifyField<uint32_t>(verifier, VT_ACTIVATIONFUNC) &&
8295 VerifyField<float>(verifier, VT_CLIPPINGTHRESCELL) &&
8296 VerifyField<float>(verifier, VT_CLIPPINGTHRESPROJ) &&
8297 VerifyField<uint8_t>(verifier, VT_CIFGENABLED) &&
8298 VerifyField<uint8_t>(verifier, VT_PEEPHOLEENABLED) &&
8299 VerifyField<uint8_t>(verifier, VT_PROJECTIONENABLED) &&
8300 VerifyField<uint8_t>(verifier, VT_LAYERNORMENABLED) &&
8301 verifier.EndTable();
8302 }
8303};
8304
8305struct LstmDescriptorBuilder {
8306 typedef LstmDescriptor Table;
8307 flatbuffers::FlatBufferBuilder &fbb_;
8308 flatbuffers::uoffset_t start_;
8309 void add_activationFunc(uint32_t activationFunc) {
8310 fbb_.AddElement<uint32_t>(LstmDescriptor::VT_ACTIVATIONFUNC, activationFunc, 0);
8311 }
8312 void add_clippingThresCell(float clippingThresCell) {
8313 fbb_.AddElement<float>(LstmDescriptor::VT_CLIPPINGTHRESCELL, clippingThresCell, 0.0f);
8314 }
8315 void add_clippingThresProj(float clippingThresProj) {
8316 fbb_.AddElement<float>(LstmDescriptor::VT_CLIPPINGTHRESPROJ, clippingThresProj, 0.0f);
8317 }
8318 void add_cifgEnabled(bool cifgEnabled) {
8319 fbb_.AddElement<uint8_t>(LstmDescriptor::VT_CIFGENABLED, static_cast<uint8_t>(cifgEnabled), 1);
8320 }
8321 void add_peepholeEnabled(bool peepholeEnabled) {
8322 fbb_.AddElement<uint8_t>(LstmDescriptor::VT_PEEPHOLEENABLED, static_cast<uint8_t>(peepholeEnabled), 0);
8323 }
8324 void add_projectionEnabled(bool projectionEnabled) {
8325 fbb_.AddElement<uint8_t>(LstmDescriptor::VT_PROJECTIONENABLED, static_cast<uint8_t>(projectionEnabled), 0);
8326 }
8327 void add_layerNormEnabled(bool layerNormEnabled) {
8328 fbb_.AddElement<uint8_t>(LstmDescriptor::VT_LAYERNORMENABLED, static_cast<uint8_t>(layerNormEnabled), 0);
8329 }
8330 explicit LstmDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8331 : fbb_(_fbb) {
8332 start_ = fbb_.StartTable();
8333 }
8334 LstmDescriptorBuilder &operator=(const LstmDescriptorBuilder &);
8335 flatbuffers::Offset<LstmDescriptor> Finish() {
8336 const auto end = fbb_.EndTable(start_);
8337 auto o = flatbuffers::Offset<LstmDescriptor>(end);
8338 return o;
8339 }
8340};
8341
8342inline flatbuffers::Offset<LstmDescriptor> CreateLstmDescriptor(
8343 flatbuffers::FlatBufferBuilder &_fbb,
8344 uint32_t activationFunc = 0,
8345 float clippingThresCell = 0.0f,
8346 float clippingThresProj = 0.0f,
8347 bool cifgEnabled = true,
8348 bool peepholeEnabled = false,
8349 bool projectionEnabled = false,
8350 bool layerNormEnabled = false) {
8351 LstmDescriptorBuilder builder_(_fbb);
8352 builder_.add_clippingThresProj(clippingThresProj);
8353 builder_.add_clippingThresCell(clippingThresCell);
8354 builder_.add_activationFunc(activationFunc);
8355 builder_.add_layerNormEnabled(layerNormEnabled);
8356 builder_.add_projectionEnabled(projectionEnabled);
8357 builder_.add_peepholeEnabled(peepholeEnabled);
8358 builder_.add_cifgEnabled(cifgEnabled);
8359 return builder_.Finish();
8360}
8361
8362struct LstmLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8363 typedef LstmLayerBuilder Builder;
8364 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8365 VT_BASE = 4,
8366 VT_DESCRIPTOR = 6,
8367 VT_INPUTPARAMS = 8
8368 };
8369 const armnnSerializer::LayerBase *base() const {
8370 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
8371 }
8372 const armnnSerializer::LstmDescriptor *descriptor() const {
8373 return GetPointer<const armnnSerializer::LstmDescriptor *>(VT_DESCRIPTOR);
8374 }
8375 const armnnSerializer::LstmInputParams *inputParams() const {
8376 return GetPointer<const armnnSerializer::LstmInputParams *>(VT_INPUTPARAMS);
8377 }
8378 bool Verify(flatbuffers::Verifier &verifier) const {
8379 return VerifyTableStart(verifier) &&
8380 VerifyOffset(verifier, VT_BASE) &&
8381 verifier.VerifyTable(base()) &&
8382 VerifyOffset(verifier, VT_DESCRIPTOR) &&
8383 verifier.VerifyTable(descriptor()) &&
8384 VerifyOffset(verifier, VT_INPUTPARAMS) &&
8385 verifier.VerifyTable(inputParams()) &&
8386 verifier.EndTable();
8387 }
8388};
8389
8390struct LstmLayerBuilder {
8391 typedef LstmLayer Table;
8392 flatbuffers::FlatBufferBuilder &fbb_;
8393 flatbuffers::uoffset_t start_;
8394 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
8395 fbb_.AddOffset(LstmLayer::VT_BASE, base);
8396 }
8397 void add_descriptor(flatbuffers::Offset<armnnSerializer::LstmDescriptor> descriptor) {
8398 fbb_.AddOffset(LstmLayer::VT_DESCRIPTOR, descriptor);
8399 }
8400 void add_inputParams(flatbuffers::Offset<armnnSerializer::LstmInputParams> inputParams) {
8401 fbb_.AddOffset(LstmLayer::VT_INPUTPARAMS, inputParams);
8402 }
8403 explicit LstmLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8404 : fbb_(_fbb) {
8405 start_ = fbb_.StartTable();
8406 }
8407 LstmLayerBuilder &operator=(const LstmLayerBuilder &);
8408 flatbuffers::Offset<LstmLayer> Finish() {
8409 const auto end = fbb_.EndTable(start_);
8410 auto o = flatbuffers::Offset<LstmLayer>(end);
8411 return o;
8412 }
8413};
8414
8415inline flatbuffers::Offset<LstmLayer> CreateLstmLayer(
8416 flatbuffers::FlatBufferBuilder &_fbb,
8417 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
8418 flatbuffers::Offset<armnnSerializer::LstmDescriptor> descriptor = 0,
8419 flatbuffers::Offset<armnnSerializer::LstmInputParams> inputParams = 0) {
8420 LstmLayerBuilder builder_(_fbb);
8421 builder_.add_inputParams(inputParams);
8422 builder_.add_descriptor(descriptor);
8423 builder_.add_base(base);
8424 return builder_.Finish();
8425}
8426
8427struct QLstmInputParams FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8428 typedef QLstmInputParamsBuilder Builder;
8429 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8430 VT_INPUTTOFORGETWEIGHTS = 4,
8431 VT_INPUTTOCELLWEIGHTS = 6,
8432 VT_INPUTTOOUTPUTWEIGHTS = 8,
8433 VT_RECURRENTTOFORGETWEIGHTS = 10,
8434 VT_RECURRENTTOCELLWEIGHTS = 12,
8435 VT_RECURRENTTOOUTPUTWEIGHTS = 14,
8436 VT_FORGETGATEBIAS = 16,
8437 VT_CELLBIAS = 18,
8438 VT_OUTPUTGATEBIAS = 20,
8439 VT_INPUTTOINPUTWEIGHTS = 22,
8440 VT_RECURRENTTOINPUTWEIGHTS = 24,
8441 VT_INPUTGATEBIAS = 26,
8442 VT_PROJECTIONWEIGHTS = 28,
8443 VT_PROJECTIONBIAS = 30,
8444 VT_CELLTOINPUTWEIGHTS = 32,
8445 VT_CELLTOFORGETWEIGHTS = 34,
8446 VT_CELLTOOUTPUTWEIGHTS = 36,
8447 VT_INPUTLAYERNORMWEIGHTS = 38,
8448 VT_FORGETLAYERNORMWEIGHTS = 40,
8449 VT_CELLLAYERNORMWEIGHTS = 42,
8450 VT_OUTPUTLAYERNORMWEIGHTS = 44
8451 };
8452 const armnnSerializer::ConstTensor *inputToForgetWeights() const {
8453 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOFORGETWEIGHTS);
8454 }
8455 const armnnSerializer::ConstTensor *inputToCellWeights() const {
8456 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOCELLWEIGHTS);
8457 }
8458 const armnnSerializer::ConstTensor *inputToOutputWeights() const {
8459 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOOUTPUTWEIGHTS);
8460 }
8461 const armnnSerializer::ConstTensor *recurrentToForgetWeights() const {
8462 return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOFORGETWEIGHTS);
8463 }
8464 const armnnSerializer::ConstTensor *recurrentToCellWeights() const {
8465 return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOCELLWEIGHTS);
8466 }
8467 const armnnSerializer::ConstTensor *recurrentToOutputWeights() const {
8468 return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOOUTPUTWEIGHTS);
8469 }
8470 const armnnSerializer::ConstTensor *forgetGateBias() const {
8471 return GetPointer<const armnnSerializer::ConstTensor *>(VT_FORGETGATEBIAS);
8472 }
8473 const armnnSerializer::ConstTensor *cellBias() const {
8474 return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLBIAS);
8475 }
8476 const armnnSerializer::ConstTensor *outputGateBias() const {
8477 return GetPointer<const armnnSerializer::ConstTensor *>(VT_OUTPUTGATEBIAS);
8478 }
8479 const armnnSerializer::ConstTensor *inputToInputWeights() const {
8480 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOINPUTWEIGHTS);
8481 }
8482 const armnnSerializer::ConstTensor *recurrentToInputWeights() const {
8483 return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOINPUTWEIGHTS);
8484 }
8485 const armnnSerializer::ConstTensor *inputGateBias() const {
8486 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTGATEBIAS);
8487 }
8488 const armnnSerializer::ConstTensor *projectionWeights() const {
8489 return GetPointer<const armnnSerializer::ConstTensor *>(VT_PROJECTIONWEIGHTS);
8490 }
8491 const armnnSerializer::ConstTensor *projectionBias() const {
8492 return GetPointer<const armnnSerializer::ConstTensor *>(VT_PROJECTIONBIAS);
8493 }
8494 const armnnSerializer::ConstTensor *cellToInputWeights() const {
8495 return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLTOINPUTWEIGHTS);
8496 }
8497 const armnnSerializer::ConstTensor *cellToForgetWeights() const {
8498 return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLTOFORGETWEIGHTS);
8499 }
8500 const armnnSerializer::ConstTensor *cellToOutputWeights() const {
8501 return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLTOOUTPUTWEIGHTS);
8502 }
8503 const armnnSerializer::ConstTensor *inputLayerNormWeights() const {
8504 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTLAYERNORMWEIGHTS);
8505 }
8506 const armnnSerializer::ConstTensor *forgetLayerNormWeights() const {
8507 return GetPointer<const armnnSerializer::ConstTensor *>(VT_FORGETLAYERNORMWEIGHTS);
8508 }
8509 const armnnSerializer::ConstTensor *cellLayerNormWeights() const {
8510 return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLLAYERNORMWEIGHTS);
8511 }
8512 const armnnSerializer::ConstTensor *outputLayerNormWeights() const {
8513 return GetPointer<const armnnSerializer::ConstTensor *>(VT_OUTPUTLAYERNORMWEIGHTS);
8514 }
8515 bool Verify(flatbuffers::Verifier &verifier) const {
8516 return VerifyTableStart(verifier) &&
8517 VerifyOffset(verifier, VT_INPUTTOFORGETWEIGHTS) &&
8518 verifier.VerifyTable(inputToForgetWeights()) &&
8519 VerifyOffset(verifier, VT_INPUTTOCELLWEIGHTS) &&
8520 verifier.VerifyTable(inputToCellWeights()) &&
8521 VerifyOffset(verifier, VT_INPUTTOOUTPUTWEIGHTS) &&
8522 verifier.VerifyTable(inputToOutputWeights()) &&
8523 VerifyOffset(verifier, VT_RECURRENTTOFORGETWEIGHTS) &&
8524 verifier.VerifyTable(recurrentToForgetWeights()) &&
8525 VerifyOffset(verifier, VT_RECURRENTTOCELLWEIGHTS) &&
8526 verifier.VerifyTable(recurrentToCellWeights()) &&
8527 VerifyOffset(verifier, VT_RECURRENTTOOUTPUTWEIGHTS) &&
8528 verifier.VerifyTable(recurrentToOutputWeights()) &&
8529 VerifyOffset(verifier, VT_FORGETGATEBIAS) &&
8530 verifier.VerifyTable(forgetGateBias()) &&
8531 VerifyOffset(verifier, VT_CELLBIAS) &&
8532 verifier.VerifyTable(cellBias()) &&
8533 VerifyOffset(verifier, VT_OUTPUTGATEBIAS) &&
8534 verifier.VerifyTable(outputGateBias()) &&
8535 VerifyOffset(verifier, VT_INPUTTOINPUTWEIGHTS) &&
8536 verifier.VerifyTable(inputToInputWeights()) &&
8537 VerifyOffset(verifier, VT_RECURRENTTOINPUTWEIGHTS) &&
8538 verifier.VerifyTable(recurrentToInputWeights()) &&
8539 VerifyOffset(verifier, VT_INPUTGATEBIAS) &&
8540 verifier.VerifyTable(inputGateBias()) &&
8541 VerifyOffset(verifier, VT_PROJECTIONWEIGHTS) &&
8542 verifier.VerifyTable(projectionWeights()) &&
8543 VerifyOffset(verifier, VT_PROJECTIONBIAS) &&
8544 verifier.VerifyTable(projectionBias()) &&
8545 VerifyOffset(verifier, VT_CELLTOINPUTWEIGHTS) &&
8546 verifier.VerifyTable(cellToInputWeights()) &&
8547 VerifyOffset(verifier, VT_CELLTOFORGETWEIGHTS) &&
8548 verifier.VerifyTable(cellToForgetWeights()) &&
8549 VerifyOffset(verifier, VT_CELLTOOUTPUTWEIGHTS) &&
8550 verifier.VerifyTable(cellToOutputWeights()) &&
8551 VerifyOffset(verifier, VT_INPUTLAYERNORMWEIGHTS) &&
8552 verifier.VerifyTable(inputLayerNormWeights()) &&
8553 VerifyOffset(verifier, VT_FORGETLAYERNORMWEIGHTS) &&
8554 verifier.VerifyTable(forgetLayerNormWeights()) &&
8555 VerifyOffset(verifier, VT_CELLLAYERNORMWEIGHTS) &&
8556 verifier.VerifyTable(cellLayerNormWeights()) &&
8557 VerifyOffset(verifier, VT_OUTPUTLAYERNORMWEIGHTS) &&
8558 verifier.VerifyTable(outputLayerNormWeights()) &&
8559 verifier.EndTable();
8560 }
8561};
8562
8563struct QLstmInputParamsBuilder {
8564 typedef QLstmInputParams Table;
8565 flatbuffers::FlatBufferBuilder &fbb_;
8566 flatbuffers::uoffset_t start_;
8567 void add_inputToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToForgetWeights) {
8568 fbb_.AddOffset(QLstmInputParams::VT_INPUTTOFORGETWEIGHTS, inputToForgetWeights);
8569 }
8570 void add_inputToCellWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToCellWeights) {
8571 fbb_.AddOffset(QLstmInputParams::VT_INPUTTOCELLWEIGHTS, inputToCellWeights);
8572 }
8573 void add_inputToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToOutputWeights) {
8574 fbb_.AddOffset(QLstmInputParams::VT_INPUTTOOUTPUTWEIGHTS, inputToOutputWeights);
8575 }
8576 void add_recurrentToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToForgetWeights) {
8577 fbb_.AddOffset(QLstmInputParams::VT_RECURRENTTOFORGETWEIGHTS, recurrentToForgetWeights);
8578 }
8579 void add_recurrentToCellWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToCellWeights) {
8580 fbb_.AddOffset(QLstmInputParams::VT_RECURRENTTOCELLWEIGHTS, recurrentToCellWeights);
8581 }
8582 void add_recurrentToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToOutputWeights) {
8583 fbb_.AddOffset(QLstmInputParams::VT_RECURRENTTOOUTPUTWEIGHTS, recurrentToOutputWeights);
8584 }
8585 void add_forgetGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> forgetGateBias) {
8586 fbb_.AddOffset(QLstmInputParams::VT_FORGETGATEBIAS, forgetGateBias);
8587 }
8588 void add_cellBias(flatbuffers::Offset<armnnSerializer::ConstTensor> cellBias) {
8589 fbb_.AddOffset(QLstmInputParams::VT_CELLBIAS, cellBias);
8590 }
8591 void add_outputGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> outputGateBias) {
8592 fbb_.AddOffset(QLstmInputParams::VT_OUTPUTGATEBIAS, outputGateBias);
8593 }
8594 void add_inputToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToInputWeights) {
8595 fbb_.AddOffset(QLstmInputParams::VT_INPUTTOINPUTWEIGHTS, inputToInputWeights);
8596 }
8597 void add_recurrentToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToInputWeights) {
8598 fbb_.AddOffset(QLstmInputParams::VT_RECURRENTTOINPUTWEIGHTS, recurrentToInputWeights);
8599 }
8600 void add_inputGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> inputGateBias) {
8601 fbb_.AddOffset(QLstmInputParams::VT_INPUTGATEBIAS, inputGateBias);
8602 }
8603 void add_projectionWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> projectionWeights) {
8604 fbb_.AddOffset(QLstmInputParams::VT_PROJECTIONWEIGHTS, projectionWeights);
8605 }
8606 void add_projectionBias(flatbuffers::Offset<armnnSerializer::ConstTensor> projectionBias) {
8607 fbb_.AddOffset(QLstmInputParams::VT_PROJECTIONBIAS, projectionBias);
8608 }
8609 void add_cellToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellToInputWeights) {
8610 fbb_.AddOffset(QLstmInputParams::VT_CELLTOINPUTWEIGHTS, cellToInputWeights);
8611 }
8612 void add_cellToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellToForgetWeights) {
8613 fbb_.AddOffset(QLstmInputParams::VT_CELLTOFORGETWEIGHTS, cellToForgetWeights);
8614 }
8615 void add_cellToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellToOutputWeights) {
8616 fbb_.AddOffset(QLstmInputParams::VT_CELLTOOUTPUTWEIGHTS, cellToOutputWeights);
8617 }
8618 void add_inputLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputLayerNormWeights) {
8619 fbb_.AddOffset(QLstmInputParams::VT_INPUTLAYERNORMWEIGHTS, inputLayerNormWeights);
8620 }
8621 void add_forgetLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> forgetLayerNormWeights) {
8622 fbb_.AddOffset(QLstmInputParams::VT_FORGETLAYERNORMWEIGHTS, forgetLayerNormWeights);
8623 }
8624 void add_cellLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> cellLayerNormWeights) {
8625 fbb_.AddOffset(QLstmInputParams::VT_CELLLAYERNORMWEIGHTS, cellLayerNormWeights);
8626 }
8627 void add_outputLayerNormWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> outputLayerNormWeights) {
8628 fbb_.AddOffset(QLstmInputParams::VT_OUTPUTLAYERNORMWEIGHTS, outputLayerNormWeights);
8629 }
8630 explicit QLstmInputParamsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8631 : fbb_(_fbb) {
8632 start_ = fbb_.StartTable();
8633 }
8634 QLstmInputParamsBuilder &operator=(const QLstmInputParamsBuilder &);
8635 flatbuffers::Offset<QLstmInputParams> Finish() {
8636 const auto end = fbb_.EndTable(start_);
8637 auto o = flatbuffers::Offset<QLstmInputParams>(end);
8638 return o;
8639 }
8640};
8641
8642inline flatbuffers::Offset<QLstmInputParams> CreateQLstmInputParams(
8643 flatbuffers::FlatBufferBuilder &_fbb,
8644 flatbuffers::Offset<armnnSerializer::ConstTensor> inputToForgetWeights = 0,
8645 flatbuffers::Offset<armnnSerializer::ConstTensor> inputToCellWeights = 0,
8646 flatbuffers::Offset<armnnSerializer::ConstTensor> inputToOutputWeights = 0,
8647 flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToForgetWeights = 0,
8648 flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToCellWeights = 0,
8649 flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToOutputWeights = 0,
8650 flatbuffers::Offset<armnnSerializer::ConstTensor> forgetGateBias = 0,
8651 flatbuffers::Offset<armnnSerializer::ConstTensor> cellBias = 0,
8652 flatbuffers::Offset<armnnSerializer::ConstTensor> outputGateBias = 0,
8653 flatbuffers::Offset<armnnSerializer::ConstTensor> inputToInputWeights = 0,
8654 flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToInputWeights = 0,
8655 flatbuffers::Offset<armnnSerializer::ConstTensor> inputGateBias = 0,
8656 flatbuffers::Offset<armnnSerializer::ConstTensor> projectionWeights = 0,
8657 flatbuffers::Offset<armnnSerializer::ConstTensor> projectionBias = 0,
8658 flatbuffers::Offset<armnnSerializer::ConstTensor> cellToInputWeights = 0,
8659 flatbuffers::Offset<armnnSerializer::ConstTensor> cellToForgetWeights = 0,
8660 flatbuffers::Offset<armnnSerializer::ConstTensor> cellToOutputWeights = 0,
8661 flatbuffers::Offset<armnnSerializer::ConstTensor> inputLayerNormWeights = 0,
8662 flatbuffers::Offset<armnnSerializer::ConstTensor> forgetLayerNormWeights = 0,
8663 flatbuffers::Offset<armnnSerializer::ConstTensor> cellLayerNormWeights = 0,
8664 flatbuffers::Offset<armnnSerializer::ConstTensor> outputLayerNormWeights = 0) {
8665 QLstmInputParamsBuilder builder_(_fbb);
8666 builder_.add_outputLayerNormWeights(outputLayerNormWeights);
8667 builder_.add_cellLayerNormWeights(cellLayerNormWeights);
8668 builder_.add_forgetLayerNormWeights(forgetLayerNormWeights);
8669 builder_.add_inputLayerNormWeights(inputLayerNormWeights);
8670 builder_.add_cellToOutputWeights(cellToOutputWeights);
8671 builder_.add_cellToForgetWeights(cellToForgetWeights);
8672 builder_.add_cellToInputWeights(cellToInputWeights);
8673 builder_.add_projectionBias(projectionBias);
8674 builder_.add_projectionWeights(projectionWeights);
8675 builder_.add_inputGateBias(inputGateBias);
8676 builder_.add_recurrentToInputWeights(recurrentToInputWeights);
8677 builder_.add_inputToInputWeights(inputToInputWeights);
8678 builder_.add_outputGateBias(outputGateBias);
8679 builder_.add_cellBias(cellBias);
8680 builder_.add_forgetGateBias(forgetGateBias);
8681 builder_.add_recurrentToOutputWeights(recurrentToOutputWeights);
8682 builder_.add_recurrentToCellWeights(recurrentToCellWeights);
8683 builder_.add_recurrentToForgetWeights(recurrentToForgetWeights);
8684 builder_.add_inputToOutputWeights(inputToOutputWeights);
8685 builder_.add_inputToCellWeights(inputToCellWeights);
8686 builder_.add_inputToForgetWeights(inputToForgetWeights);
8687 return builder_.Finish();
8688}
8689
8690struct QLstmDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8691 typedef QLstmDescriptorBuilder Builder;
8692 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8693 VT_CIFGENABLED = 4,
8694 VT_PEEPHOLEENABLED = 6,
8695 VT_PROJECTIONENABLED = 8,
8696 VT_LAYERNORMENABLED = 10,
8697 VT_CELLCLIP = 12,
8698 VT_PROJECTIONCLIP = 14,
8699 VT_INPUTINTERMEDIATESCALE = 16,
8700 VT_FORGETINTERMEDIATESCALE = 18,
8701 VT_CELLINTERMEDIATESCALE = 20,
8702 VT_OUTPUTINTERMEDIATESCALE = 22,
8703 VT_HIDDENSTATEZEROPOINT = 24,
8704 VT_HIDDENSTATESCALE = 26
8705 };
8706 bool cifgEnabled() const {
8707 return GetField<uint8_t>(VT_CIFGENABLED, 1) != 0;
8708 }
8709 bool peepholeEnabled() const {
8710 return GetField<uint8_t>(VT_PEEPHOLEENABLED, 0) != 0;
8711 }
8712 bool projectionEnabled() const {
8713 return GetField<uint8_t>(VT_PROJECTIONENABLED, 0) != 0;
8714 }
8715 bool layerNormEnabled() const {
8716 return GetField<uint8_t>(VT_LAYERNORMENABLED, 0) != 0;
8717 }
8718 float cellClip() const {
8719 return GetField<float>(VT_CELLCLIP, 0.0f);
8720 }
8721 float projectionClip() const {
8722 return GetField<float>(VT_PROJECTIONCLIP, 0.0f);
8723 }
8724 float inputIntermediateScale() const {
8725 return GetField<float>(VT_INPUTINTERMEDIATESCALE, 0.0f);
8726 }
8727 float forgetIntermediateScale() const {
8728 return GetField<float>(VT_FORGETINTERMEDIATESCALE, 0.0f);
8729 }
8730 float cellIntermediateScale() const {
8731 return GetField<float>(VT_CELLINTERMEDIATESCALE, 0.0f);
8732 }
8733 float outputIntermediateScale() const {
8734 return GetField<float>(VT_OUTPUTINTERMEDIATESCALE, 0.0f);
8735 }
8736 int32_t hiddenStateZeroPoint() const {
8737 return GetField<int32_t>(VT_HIDDENSTATEZEROPOINT, 0);
8738 }
8739 float hiddenStateScale() const {
8740 return GetField<float>(VT_HIDDENSTATESCALE, 0.0f);
8741 }
8742 bool Verify(flatbuffers::Verifier &verifier) const {
8743 return VerifyTableStart(verifier) &&
8744 VerifyField<uint8_t>(verifier, VT_CIFGENABLED) &&
8745 VerifyField<uint8_t>(verifier, VT_PEEPHOLEENABLED) &&
8746 VerifyField<uint8_t>(verifier, VT_PROJECTIONENABLED) &&
8747 VerifyField<uint8_t>(verifier, VT_LAYERNORMENABLED) &&
8748 VerifyField<float>(verifier, VT_CELLCLIP) &&
8749 VerifyField<float>(verifier, VT_PROJECTIONCLIP) &&
8750 VerifyField<float>(verifier, VT_INPUTINTERMEDIATESCALE) &&
8751 VerifyField<float>(verifier, VT_FORGETINTERMEDIATESCALE) &&
8752 VerifyField<float>(verifier, VT_CELLINTERMEDIATESCALE) &&
8753 VerifyField<float>(verifier, VT_OUTPUTINTERMEDIATESCALE) &&
8754 VerifyField<int32_t>(verifier, VT_HIDDENSTATEZEROPOINT) &&
8755 VerifyField<float>(verifier, VT_HIDDENSTATESCALE) &&
8756 verifier.EndTable();
8757 }
8758};
8759
8760struct QLstmDescriptorBuilder {
8761 typedef QLstmDescriptor Table;
8762 flatbuffers::FlatBufferBuilder &fbb_;
8763 flatbuffers::uoffset_t start_;
8764 void add_cifgEnabled(bool cifgEnabled) {
8765 fbb_.AddElement<uint8_t>(QLstmDescriptor::VT_CIFGENABLED, static_cast<uint8_t>(cifgEnabled), 1);
8766 }
8767 void add_peepholeEnabled(bool peepholeEnabled) {
8768 fbb_.AddElement<uint8_t>(QLstmDescriptor::VT_PEEPHOLEENABLED, static_cast<uint8_t>(peepholeEnabled), 0);
8769 }
8770 void add_projectionEnabled(bool projectionEnabled) {
8771 fbb_.AddElement<uint8_t>(QLstmDescriptor::VT_PROJECTIONENABLED, static_cast<uint8_t>(projectionEnabled), 0);
8772 }
8773 void add_layerNormEnabled(bool layerNormEnabled) {
8774 fbb_.AddElement<uint8_t>(QLstmDescriptor::VT_LAYERNORMENABLED, static_cast<uint8_t>(layerNormEnabled), 0);
8775 }
8776 void add_cellClip(float cellClip) {
8777 fbb_.AddElement<float>(QLstmDescriptor::VT_CELLCLIP, cellClip, 0.0f);
8778 }
8779 void add_projectionClip(float projectionClip) {
8780 fbb_.AddElement<float>(QLstmDescriptor::VT_PROJECTIONCLIP, projectionClip, 0.0f);
8781 }
8782 void add_inputIntermediateScale(float inputIntermediateScale) {
8783 fbb_.AddElement<float>(QLstmDescriptor::VT_INPUTINTERMEDIATESCALE, inputIntermediateScale, 0.0f);
8784 }
8785 void add_forgetIntermediateScale(float forgetIntermediateScale) {
8786 fbb_.AddElement<float>(QLstmDescriptor::VT_FORGETINTERMEDIATESCALE, forgetIntermediateScale, 0.0f);
8787 }
8788 void add_cellIntermediateScale(float cellIntermediateScale) {
8789 fbb_.AddElement<float>(QLstmDescriptor::VT_CELLINTERMEDIATESCALE, cellIntermediateScale, 0.0f);
8790 }
8791 void add_outputIntermediateScale(float outputIntermediateScale) {
8792 fbb_.AddElement<float>(QLstmDescriptor::VT_OUTPUTINTERMEDIATESCALE, outputIntermediateScale, 0.0f);
8793 }
8794 void add_hiddenStateZeroPoint(int32_t hiddenStateZeroPoint) {
8795 fbb_.AddElement<int32_t>(QLstmDescriptor::VT_HIDDENSTATEZEROPOINT, hiddenStateZeroPoint, 0);
8796 }
8797 void add_hiddenStateScale(float hiddenStateScale) {
8798 fbb_.AddElement<float>(QLstmDescriptor::VT_HIDDENSTATESCALE, hiddenStateScale, 0.0f);
8799 }
8800 explicit QLstmDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8801 : fbb_(_fbb) {
8802 start_ = fbb_.StartTable();
8803 }
8804 QLstmDescriptorBuilder &operator=(const QLstmDescriptorBuilder &);
8805 flatbuffers::Offset<QLstmDescriptor> Finish() {
8806 const auto end = fbb_.EndTable(start_);
8807 auto o = flatbuffers::Offset<QLstmDescriptor>(end);
8808 return o;
8809 }
8810};
8811
8812inline flatbuffers::Offset<QLstmDescriptor> CreateQLstmDescriptor(
8813 flatbuffers::FlatBufferBuilder &_fbb,
8814 bool cifgEnabled = true,
8815 bool peepholeEnabled = false,
8816 bool projectionEnabled = false,
8817 bool layerNormEnabled = false,
8818 float cellClip = 0.0f,
8819 float projectionClip = 0.0f,
8820 float inputIntermediateScale = 0.0f,
8821 float forgetIntermediateScale = 0.0f,
8822 float cellIntermediateScale = 0.0f,
8823 float outputIntermediateScale = 0.0f,
8824 int32_t hiddenStateZeroPoint = 0,
8825 float hiddenStateScale = 0.0f) {
8826 QLstmDescriptorBuilder builder_(_fbb);
8827 builder_.add_hiddenStateScale(hiddenStateScale);
8828 builder_.add_hiddenStateZeroPoint(hiddenStateZeroPoint);
8829 builder_.add_outputIntermediateScale(outputIntermediateScale);
8830 builder_.add_cellIntermediateScale(cellIntermediateScale);
8831 builder_.add_forgetIntermediateScale(forgetIntermediateScale);
8832 builder_.add_inputIntermediateScale(inputIntermediateScale);
8833 builder_.add_projectionClip(projectionClip);
8834 builder_.add_cellClip(cellClip);
8835 builder_.add_layerNormEnabled(layerNormEnabled);
8836 builder_.add_projectionEnabled(projectionEnabled);
8837 builder_.add_peepholeEnabled(peepholeEnabled);
8838 builder_.add_cifgEnabled(cifgEnabled);
8839 return builder_.Finish();
8840}
8841
8842struct QLstmLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8843 typedef QLstmLayerBuilder Builder;
8844 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8845 VT_BASE = 4,
8846 VT_DESCRIPTOR = 6,
8847 VT_INPUTPARAMS = 8
8848 };
8849 const armnnSerializer::LayerBase *base() const {
8850 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
8851 }
8852 const armnnSerializer::QLstmDescriptor *descriptor() const {
8853 return GetPointer<const armnnSerializer::QLstmDescriptor *>(VT_DESCRIPTOR);
8854 }
8855 const armnnSerializer::QLstmInputParams *inputParams() const {
8856 return GetPointer<const armnnSerializer::QLstmInputParams *>(VT_INPUTPARAMS);
8857 }
8858 bool Verify(flatbuffers::Verifier &verifier) const {
8859 return VerifyTableStart(verifier) &&
8860 VerifyOffset(verifier, VT_BASE) &&
8861 verifier.VerifyTable(base()) &&
8862 VerifyOffset(verifier, VT_DESCRIPTOR) &&
8863 verifier.VerifyTable(descriptor()) &&
8864 VerifyOffset(verifier, VT_INPUTPARAMS) &&
8865 verifier.VerifyTable(inputParams()) &&
8866 verifier.EndTable();
8867 }
8868};
8869
8870struct QLstmLayerBuilder {
8871 typedef QLstmLayer Table;
8872 flatbuffers::FlatBufferBuilder &fbb_;
8873 flatbuffers::uoffset_t start_;
8874 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
8875 fbb_.AddOffset(QLstmLayer::VT_BASE, base);
8876 }
8877 void add_descriptor(flatbuffers::Offset<armnnSerializer::QLstmDescriptor> descriptor) {
8878 fbb_.AddOffset(QLstmLayer::VT_DESCRIPTOR, descriptor);
8879 }
8880 void add_inputParams(flatbuffers::Offset<armnnSerializer::QLstmInputParams> inputParams) {
8881 fbb_.AddOffset(QLstmLayer::VT_INPUTPARAMS, inputParams);
8882 }
8883 explicit QLstmLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
8884 : fbb_(_fbb) {
8885 start_ = fbb_.StartTable();
8886 }
8887 QLstmLayerBuilder &operator=(const QLstmLayerBuilder &);
8888 flatbuffers::Offset<QLstmLayer> Finish() {
8889 const auto end = fbb_.EndTable(start_);
8890 auto o = flatbuffers::Offset<QLstmLayer>(end);
8891 return o;
8892 }
8893};
8894
8895inline flatbuffers::Offset<QLstmLayer> CreateQLstmLayer(
8896 flatbuffers::FlatBufferBuilder &_fbb,
8897 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
8898 flatbuffers::Offset<armnnSerializer::QLstmDescriptor> descriptor = 0,
8899 flatbuffers::Offset<armnnSerializer::QLstmInputParams> inputParams = 0) {
8900 QLstmLayerBuilder builder_(_fbb);
8901 builder_.add_inputParams(inputParams);
8902 builder_.add_descriptor(descriptor);
8903 builder_.add_base(base);
8904 return builder_.Finish();
8905}
8906
8907struct QuantizedLstmInputParams FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
8908 typedef QuantizedLstmInputParamsBuilder Builder;
8909 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
8910 VT_INPUTTOINPUTWEIGHTS = 4,
8911 VT_INPUTTOFORGETWEIGHTS = 6,
8912 VT_INPUTTOCELLWEIGHTS = 8,
8913 VT_INPUTTOOUTPUTWEIGHTS = 10,
8914 VT_RECURRENTTOINPUTWEIGHTS = 12,
8915 VT_RECURRENTTOFORGETWEIGHTS = 14,
8916 VT_RECURRENTTOCELLWEIGHTS = 16,
8917 VT_RECURRENTTOOUTPUTWEIGHTS = 18,
8918 VT_INPUTGATEBIAS = 20,
8919 VT_FORGETGATEBIAS = 22,
8920 VT_CELLBIAS = 24,
8921 VT_OUTPUTGATEBIAS = 26
8922 };
8923 const armnnSerializer::ConstTensor *inputToInputWeights() const {
8924 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOINPUTWEIGHTS);
8925 }
8926 const armnnSerializer::ConstTensor *inputToForgetWeights() const {
8927 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOFORGETWEIGHTS);
8928 }
8929 const armnnSerializer::ConstTensor *inputToCellWeights() const {
8930 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOCELLWEIGHTS);
8931 }
8932 const armnnSerializer::ConstTensor *inputToOutputWeights() const {
8933 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTTOOUTPUTWEIGHTS);
8934 }
8935 const armnnSerializer::ConstTensor *recurrentToInputWeights() const {
8936 return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOINPUTWEIGHTS);
8937 }
8938 const armnnSerializer::ConstTensor *recurrentToForgetWeights() const {
8939 return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOFORGETWEIGHTS);
8940 }
8941 const armnnSerializer::ConstTensor *recurrentToCellWeights() const {
8942 return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOCELLWEIGHTS);
8943 }
8944 const armnnSerializer::ConstTensor *recurrentToOutputWeights() const {
8945 return GetPointer<const armnnSerializer::ConstTensor *>(VT_RECURRENTTOOUTPUTWEIGHTS);
8946 }
8947 const armnnSerializer::ConstTensor *inputGateBias() const {
8948 return GetPointer<const armnnSerializer::ConstTensor *>(VT_INPUTGATEBIAS);
8949 }
8950 const armnnSerializer::ConstTensor *forgetGateBias() const {
8951 return GetPointer<const armnnSerializer::ConstTensor *>(VT_FORGETGATEBIAS);
8952 }
8953 const armnnSerializer::ConstTensor *cellBias() const {
8954 return GetPointer<const armnnSerializer::ConstTensor *>(VT_CELLBIAS);
8955 }
8956 const armnnSerializer::ConstTensor *outputGateBias() const {
8957 return GetPointer<const armnnSerializer::ConstTensor *>(VT_OUTPUTGATEBIAS);
8958 }
8959 bool Verify(flatbuffers::Verifier &verifier) const {
8960 return VerifyTableStart(verifier) &&
8961 VerifyOffset(verifier, VT_INPUTTOINPUTWEIGHTS) &&
8962 verifier.VerifyTable(inputToInputWeights()) &&
8963 VerifyOffset(verifier, VT_INPUTTOFORGETWEIGHTS) &&
8964 verifier.VerifyTable(inputToForgetWeights()) &&
8965 VerifyOffset(verifier, VT_INPUTTOCELLWEIGHTS) &&
8966 verifier.VerifyTable(inputToCellWeights()) &&
8967 VerifyOffset(verifier, VT_INPUTTOOUTPUTWEIGHTS) &&
8968 verifier.VerifyTable(inputToOutputWeights()) &&
8969 VerifyOffset(verifier, VT_RECURRENTTOINPUTWEIGHTS) &&
8970 verifier.VerifyTable(recurrentToInputWeights()) &&
8971 VerifyOffset(verifier, VT_RECURRENTTOFORGETWEIGHTS) &&
8972 verifier.VerifyTable(recurrentToForgetWeights()) &&
8973 VerifyOffset(verifier, VT_RECURRENTTOCELLWEIGHTS) &&
8974 verifier.VerifyTable(recurrentToCellWeights()) &&
8975 VerifyOffset(verifier, VT_RECURRENTTOOUTPUTWEIGHTS) &&
8976 verifier.VerifyTable(recurrentToOutputWeights()) &&
8977 VerifyOffset(verifier, VT_INPUTGATEBIAS) &&
8978 verifier.VerifyTable(inputGateBias()) &&
8979 VerifyOffset(verifier, VT_FORGETGATEBIAS) &&
8980 verifier.VerifyTable(forgetGateBias()) &&
8981 VerifyOffset(verifier, VT_CELLBIAS) &&
8982 verifier.VerifyTable(cellBias()) &&
8983 VerifyOffset(verifier, VT_OUTPUTGATEBIAS) &&
8984 verifier.VerifyTable(outputGateBias()) &&
8985 verifier.EndTable();
8986 }
8987};
8988
8989struct QuantizedLstmInputParamsBuilder {
8990 typedef QuantizedLstmInputParams Table;
8991 flatbuffers::FlatBufferBuilder &fbb_;
8992 flatbuffers::uoffset_t start_;
8993 void add_inputToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToInputWeights) {
8994 fbb_.AddOffset(QuantizedLstmInputParams::VT_INPUTTOINPUTWEIGHTS, inputToInputWeights);
8995 }
8996 void add_inputToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToForgetWeights) {
8997 fbb_.AddOffset(QuantizedLstmInputParams::VT_INPUTTOFORGETWEIGHTS, inputToForgetWeights);
8998 }
8999 void add_inputToCellWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToCellWeights) {
9000 fbb_.AddOffset(QuantizedLstmInputParams::VT_INPUTTOCELLWEIGHTS, inputToCellWeights);
9001 }
9002 void add_inputToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> inputToOutputWeights) {
9003 fbb_.AddOffset(QuantizedLstmInputParams::VT_INPUTTOOUTPUTWEIGHTS, inputToOutputWeights);
9004 }
9005 void add_recurrentToInputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToInputWeights) {
9006 fbb_.AddOffset(QuantizedLstmInputParams::VT_RECURRENTTOINPUTWEIGHTS, recurrentToInputWeights);
9007 }
9008 void add_recurrentToForgetWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToForgetWeights) {
9009 fbb_.AddOffset(QuantizedLstmInputParams::VT_RECURRENTTOFORGETWEIGHTS, recurrentToForgetWeights);
9010 }
9011 void add_recurrentToCellWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToCellWeights) {
9012 fbb_.AddOffset(QuantizedLstmInputParams::VT_RECURRENTTOCELLWEIGHTS, recurrentToCellWeights);
9013 }
9014 void add_recurrentToOutputWeights(flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToOutputWeights) {
9015 fbb_.AddOffset(QuantizedLstmInputParams::VT_RECURRENTTOOUTPUTWEIGHTS, recurrentToOutputWeights);
9016 }
9017 void add_inputGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> inputGateBias) {
9018 fbb_.AddOffset(QuantizedLstmInputParams::VT_INPUTGATEBIAS, inputGateBias);
9019 }
9020 void add_forgetGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> forgetGateBias) {
9021 fbb_.AddOffset(QuantizedLstmInputParams::VT_FORGETGATEBIAS, forgetGateBias);
9022 }
9023 void add_cellBias(flatbuffers::Offset<armnnSerializer::ConstTensor> cellBias) {
9024 fbb_.AddOffset(QuantizedLstmInputParams::VT_CELLBIAS, cellBias);
9025 }
9026 void add_outputGateBias(flatbuffers::Offset<armnnSerializer::ConstTensor> outputGateBias) {
9027 fbb_.AddOffset(QuantizedLstmInputParams::VT_OUTPUTGATEBIAS, outputGateBias);
9028 }
9029 explicit QuantizedLstmInputParamsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9030 : fbb_(_fbb) {
9031 start_ = fbb_.StartTable();
9032 }
9033 QuantizedLstmInputParamsBuilder &operator=(const QuantizedLstmInputParamsBuilder &);
9034 flatbuffers::Offset<QuantizedLstmInputParams> Finish() {
9035 const auto end = fbb_.EndTable(start_);
9036 auto o = flatbuffers::Offset<QuantizedLstmInputParams>(end);
9037 return o;
9038 }
9039};
9040
9041inline flatbuffers::Offset<QuantizedLstmInputParams> CreateQuantizedLstmInputParams(
9042 flatbuffers::FlatBufferBuilder &_fbb,
9043 flatbuffers::Offset<armnnSerializer::ConstTensor> inputToInputWeights = 0,
9044 flatbuffers::Offset<armnnSerializer::ConstTensor> inputToForgetWeights = 0,
9045 flatbuffers::Offset<armnnSerializer::ConstTensor> inputToCellWeights = 0,
9046 flatbuffers::Offset<armnnSerializer::ConstTensor> inputToOutputWeights = 0,
9047 flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToInputWeights = 0,
9048 flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToForgetWeights = 0,
9049 flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToCellWeights = 0,
9050 flatbuffers::Offset<armnnSerializer::ConstTensor> recurrentToOutputWeights = 0,
9051 flatbuffers::Offset<armnnSerializer::ConstTensor> inputGateBias = 0,
9052 flatbuffers::Offset<armnnSerializer::ConstTensor> forgetGateBias = 0,
9053 flatbuffers::Offset<armnnSerializer::ConstTensor> cellBias = 0,
9054 flatbuffers::Offset<armnnSerializer::ConstTensor> outputGateBias = 0) {
9055 QuantizedLstmInputParamsBuilder builder_(_fbb);
9056 builder_.add_outputGateBias(outputGateBias);
9057 builder_.add_cellBias(cellBias);
9058 builder_.add_forgetGateBias(forgetGateBias);
9059 builder_.add_inputGateBias(inputGateBias);
9060 builder_.add_recurrentToOutputWeights(recurrentToOutputWeights);
9061 builder_.add_recurrentToCellWeights(recurrentToCellWeights);
9062 builder_.add_recurrentToForgetWeights(recurrentToForgetWeights);
9063 builder_.add_recurrentToInputWeights(recurrentToInputWeights);
9064 builder_.add_inputToOutputWeights(inputToOutputWeights);
9065 builder_.add_inputToCellWeights(inputToCellWeights);
9066 builder_.add_inputToForgetWeights(inputToForgetWeights);
9067 builder_.add_inputToInputWeights(inputToInputWeights);
9068 return builder_.Finish();
9069}
9070
9071struct QuantizedLstmLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9072 typedef QuantizedLstmLayerBuilder Builder;
9073 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9074 VT_BASE = 4,
9075 VT_INPUTPARAMS = 6
9076 };
9077 const armnnSerializer::LayerBase *base() const {
9078 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9079 }
9080 const armnnSerializer::QuantizedLstmInputParams *inputParams() const {
9081 return GetPointer<const armnnSerializer::QuantizedLstmInputParams *>(VT_INPUTPARAMS);
9082 }
9083 bool Verify(flatbuffers::Verifier &verifier) const {
9084 return VerifyTableStart(verifier) &&
9085 VerifyOffset(verifier, VT_BASE) &&
9086 verifier.VerifyTable(base()) &&
9087 VerifyOffset(verifier, VT_INPUTPARAMS) &&
9088 verifier.VerifyTable(inputParams()) &&
9089 verifier.EndTable();
9090 }
9091};
9092
9093struct QuantizedLstmLayerBuilder {
9094 typedef QuantizedLstmLayer Table;
9095 flatbuffers::FlatBufferBuilder &fbb_;
9096 flatbuffers::uoffset_t start_;
9097 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9098 fbb_.AddOffset(QuantizedLstmLayer::VT_BASE, base);
9099 }
9100 void add_inputParams(flatbuffers::Offset<armnnSerializer::QuantizedLstmInputParams> inputParams) {
9101 fbb_.AddOffset(QuantizedLstmLayer::VT_INPUTPARAMS, inputParams);
9102 }
9103 explicit QuantizedLstmLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9104 : fbb_(_fbb) {
9105 start_ = fbb_.StartTable();
9106 }
9107 QuantizedLstmLayerBuilder &operator=(const QuantizedLstmLayerBuilder &);
9108 flatbuffers::Offset<QuantizedLstmLayer> Finish() {
9109 const auto end = fbb_.EndTable(start_);
9110 auto o = flatbuffers::Offset<QuantizedLstmLayer>(end);
9111 return o;
9112 }
9113};
9114
9115inline flatbuffers::Offset<QuantizedLstmLayer> CreateQuantizedLstmLayer(
9116 flatbuffers::FlatBufferBuilder &_fbb,
9117 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
9118 flatbuffers::Offset<armnnSerializer::QuantizedLstmInputParams> inputParams = 0) {
9119 QuantizedLstmLayerBuilder builder_(_fbb);
9120 builder_.add_inputParams(inputParams);
9121 builder_.add_base(base);
9122 return builder_.Finish();
9123}
9124
9125struct DequantizeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9126 typedef DequantizeLayerBuilder Builder;
9127 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9128 VT_BASE = 4
9129 };
9130 const armnnSerializer::LayerBase *base() const {
9131 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9132 }
9133 bool Verify(flatbuffers::Verifier &verifier) const {
9134 return VerifyTableStart(verifier) &&
9135 VerifyOffset(verifier, VT_BASE) &&
9136 verifier.VerifyTable(base()) &&
9137 verifier.EndTable();
9138 }
9139};
9140
9141struct DequantizeLayerBuilder {
9142 typedef DequantizeLayer Table;
9143 flatbuffers::FlatBufferBuilder &fbb_;
9144 flatbuffers::uoffset_t start_;
9145 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9146 fbb_.AddOffset(DequantizeLayer::VT_BASE, base);
9147 }
9148 explicit DequantizeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9149 : fbb_(_fbb) {
9150 start_ = fbb_.StartTable();
9151 }
9152 DequantizeLayerBuilder &operator=(const DequantizeLayerBuilder &);
9153 flatbuffers::Offset<DequantizeLayer> Finish() {
9154 const auto end = fbb_.EndTable(start_);
9155 auto o = flatbuffers::Offset<DequantizeLayer>(end);
9156 return o;
9157 }
9158};
9159
9160inline flatbuffers::Offset<DequantizeLayer> CreateDequantizeLayer(
9161 flatbuffers::FlatBufferBuilder &_fbb,
9162 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
9163 DequantizeLayerBuilder builder_(_fbb);
9164 builder_.add_base(base);
9165 return builder_.Finish();
9166}
9167
9168struct MergeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9169 typedef MergeLayerBuilder Builder;
9170 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9171 VT_BASE = 4
9172 };
9173 const armnnSerializer::LayerBase *base() const {
9174 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9175 }
9176 bool Verify(flatbuffers::Verifier &verifier) const {
9177 return VerifyTableStart(verifier) &&
9178 VerifyOffset(verifier, VT_BASE) &&
9179 verifier.VerifyTable(base()) &&
9180 verifier.EndTable();
9181 }
9182};
9183
9184struct MergeLayerBuilder {
9185 typedef MergeLayer Table;
9186 flatbuffers::FlatBufferBuilder &fbb_;
9187 flatbuffers::uoffset_t start_;
9188 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9189 fbb_.AddOffset(MergeLayer::VT_BASE, base);
9190 }
9191 explicit MergeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9192 : fbb_(_fbb) {
9193 start_ = fbb_.StartTable();
9194 }
9195 MergeLayerBuilder &operator=(const MergeLayerBuilder &);
9196 flatbuffers::Offset<MergeLayer> Finish() {
9197 const auto end = fbb_.EndTable(start_);
9198 auto o = flatbuffers::Offset<MergeLayer>(end);
9199 return o;
9200 }
9201};
9202
9203inline flatbuffers::Offset<MergeLayer> CreateMergeLayer(
9204 flatbuffers::FlatBufferBuilder &_fbb,
9205 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
9206 MergeLayerBuilder builder_(_fbb);
9207 builder_.add_base(base);
9208 return builder_.Finish();
9209}
9210
9211struct SwitchLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9212 typedef SwitchLayerBuilder Builder;
9213 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9214 VT_BASE = 4
9215 };
9216 const armnnSerializer::LayerBase *base() const {
9217 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9218 }
9219 bool Verify(flatbuffers::Verifier &verifier) const {
9220 return VerifyTableStart(verifier) &&
9221 VerifyOffset(verifier, VT_BASE) &&
9222 verifier.VerifyTable(base()) &&
9223 verifier.EndTable();
9224 }
9225};
9226
9227struct SwitchLayerBuilder {
9228 typedef SwitchLayer Table;
9229 flatbuffers::FlatBufferBuilder &fbb_;
9230 flatbuffers::uoffset_t start_;
9231 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9232 fbb_.AddOffset(SwitchLayer::VT_BASE, base);
9233 }
9234 explicit SwitchLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9235 : fbb_(_fbb) {
9236 start_ = fbb_.StartTable();
9237 }
9238 SwitchLayerBuilder &operator=(const SwitchLayerBuilder &);
9239 flatbuffers::Offset<SwitchLayer> Finish() {
9240 const auto end = fbb_.EndTable(start_);
9241 auto o = flatbuffers::Offset<SwitchLayer>(end);
9242 return o;
9243 }
9244};
9245
9246inline flatbuffers::Offset<SwitchLayer> CreateSwitchLayer(
9247 flatbuffers::FlatBufferBuilder &_fbb,
9248 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
9249 SwitchLayerBuilder builder_(_fbb);
9250 builder_.add_base(base);
9251 return builder_.Finish();
9252}
9253
9254struct PreluLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9255 typedef PreluLayerBuilder Builder;
9256 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9257 VT_BASE = 4
9258 };
9259 const armnnSerializer::LayerBase *base() const {
9260 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9261 }
9262 bool Verify(flatbuffers::Verifier &verifier) const {
9263 return VerifyTableStart(verifier) &&
9264 VerifyOffset(verifier, VT_BASE) &&
9265 verifier.VerifyTable(base()) &&
9266 verifier.EndTable();
9267 }
9268};
9269
9270struct PreluLayerBuilder {
9271 typedef PreluLayer Table;
9272 flatbuffers::FlatBufferBuilder &fbb_;
9273 flatbuffers::uoffset_t start_;
9274 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9275 fbb_.AddOffset(PreluLayer::VT_BASE, base);
9276 }
9277 explicit PreluLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9278 : fbb_(_fbb) {
9279 start_ = fbb_.StartTable();
9280 }
9281 PreluLayerBuilder &operator=(const PreluLayerBuilder &);
9282 flatbuffers::Offset<PreluLayer> Finish() {
9283 const auto end = fbb_.EndTable(start_);
9284 auto o = flatbuffers::Offset<PreluLayer>(end);
9285 return o;
9286 }
9287};
9288
9289inline flatbuffers::Offset<PreluLayer> CreatePreluLayer(
9290 flatbuffers::FlatBufferBuilder &_fbb,
9291 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
9292 PreluLayerBuilder builder_(_fbb);
9293 builder_.add_base(base);
9294 return builder_.Finish();
9295}
9296
9297struct TransposeConvolution2dLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9298 typedef TransposeConvolution2dLayerBuilder Builder;
9299 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9300 VT_BASE = 4,
9301 VT_DESCRIPTOR = 6,
9302 VT_WEIGHTS = 8,
9303 VT_BIASES = 10
9304 };
9305 const armnnSerializer::LayerBase *base() const {
9306 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9307 }
9308 const armnnSerializer::TransposeConvolution2dDescriptor *descriptor() const {
9309 return GetPointer<const armnnSerializer::TransposeConvolution2dDescriptor *>(VT_DESCRIPTOR);
9310 }
9311 const armnnSerializer::ConstTensor *weights() const {
9312 return GetPointer<const armnnSerializer::ConstTensor *>(VT_WEIGHTS);
9313 }
9314 const armnnSerializer::ConstTensor *biases() const {
9315 return GetPointer<const armnnSerializer::ConstTensor *>(VT_BIASES);
9316 }
9317 bool Verify(flatbuffers::Verifier &verifier) const {
9318 return VerifyTableStart(verifier) &&
9319 VerifyOffset(verifier, VT_BASE) &&
9320 verifier.VerifyTable(base()) &&
9321 VerifyOffset(verifier, VT_DESCRIPTOR) &&
9322 verifier.VerifyTable(descriptor()) &&
9323 VerifyOffset(verifier, VT_WEIGHTS) &&
9324 verifier.VerifyTable(weights()) &&
9325 VerifyOffset(verifier, VT_BIASES) &&
9326 verifier.VerifyTable(biases()) &&
9327 verifier.EndTable();
9328 }
9329};
9330
9331struct TransposeConvolution2dLayerBuilder {
9332 typedef TransposeConvolution2dLayer Table;
9333 flatbuffers::FlatBufferBuilder &fbb_;
9334 flatbuffers::uoffset_t start_;
9335 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9336 fbb_.AddOffset(TransposeConvolution2dLayer::VT_BASE, base);
9337 }
9338 void add_descriptor(flatbuffers::Offset<armnnSerializer::TransposeConvolution2dDescriptor> descriptor) {
9339 fbb_.AddOffset(TransposeConvolution2dLayer::VT_DESCRIPTOR, descriptor);
9340 }
9341 void add_weights(flatbuffers::Offset<armnnSerializer::ConstTensor> weights) {
9342 fbb_.AddOffset(TransposeConvolution2dLayer::VT_WEIGHTS, weights);
9343 }
9344 void add_biases(flatbuffers::Offset<armnnSerializer::ConstTensor> biases) {
9345 fbb_.AddOffset(TransposeConvolution2dLayer::VT_BIASES, biases);
9346 }
9347 explicit TransposeConvolution2dLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9348 : fbb_(_fbb) {
9349 start_ = fbb_.StartTable();
9350 }
9351 TransposeConvolution2dLayerBuilder &operator=(const TransposeConvolution2dLayerBuilder &);
9352 flatbuffers::Offset<TransposeConvolution2dLayer> Finish() {
9353 const auto end = fbb_.EndTable(start_);
9354 auto o = flatbuffers::Offset<TransposeConvolution2dLayer>(end);
9355 return o;
9356 }
9357};
9358
9359inline flatbuffers::Offset<TransposeConvolution2dLayer> CreateTransposeConvolution2dLayer(
9360 flatbuffers::FlatBufferBuilder &_fbb,
9361 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
9362 flatbuffers::Offset<armnnSerializer::TransposeConvolution2dDescriptor> descriptor = 0,
9363 flatbuffers::Offset<armnnSerializer::ConstTensor> weights = 0,
9364 flatbuffers::Offset<armnnSerializer::ConstTensor> biases = 0) {
9365 TransposeConvolution2dLayerBuilder builder_(_fbb);
9366 builder_.add_biases(biases);
9367 builder_.add_weights(weights);
9368 builder_.add_descriptor(descriptor);
9369 builder_.add_base(base);
9370 return builder_.Finish();
9371}
9372
9373struct TransposeConvolution2dDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9374 typedef TransposeConvolution2dDescriptorBuilder Builder;
9375 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9376 VT_PADLEFT = 4,
9377 VT_PADRIGHT = 6,
9378 VT_PADTOP = 8,
9379 VT_PADBOTTOM = 10,
9380 VT_STRIDEX = 12,
9381 VT_STRIDEY = 14,
9382 VT_BIASENABLED = 16,
9383 VT_DATALAYOUT = 18
9384 };
9385 uint32_t padLeft() const {
9386 return GetField<uint32_t>(VT_PADLEFT, 0);
9387 }
9388 uint32_t padRight() const {
9389 return GetField<uint32_t>(VT_PADRIGHT, 0);
9390 }
9391 uint32_t padTop() const {
9392 return GetField<uint32_t>(VT_PADTOP, 0);
9393 }
9394 uint32_t padBottom() const {
9395 return GetField<uint32_t>(VT_PADBOTTOM, 0);
9396 }
9397 uint32_t strideX() const {
9398 return GetField<uint32_t>(VT_STRIDEX, 0);
9399 }
9400 uint32_t strideY() const {
9401 return GetField<uint32_t>(VT_STRIDEY, 0);
9402 }
9403 bool biasEnabled() const {
9404 return GetField<uint8_t>(VT_BIASENABLED, 0) != 0;
9405 }
9406 armnnSerializer::DataLayout dataLayout() const {
9407 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 1));
9408 }
9409 bool Verify(flatbuffers::Verifier &verifier) const {
9410 return VerifyTableStart(verifier) &&
9411 VerifyField<uint32_t>(verifier, VT_PADLEFT) &&
9412 VerifyField<uint32_t>(verifier, VT_PADRIGHT) &&
9413 VerifyField<uint32_t>(verifier, VT_PADTOP) &&
9414 VerifyField<uint32_t>(verifier, VT_PADBOTTOM) &&
9415 VerifyField<uint32_t>(verifier, VT_STRIDEX) &&
9416 VerifyField<uint32_t>(verifier, VT_STRIDEY) &&
9417 VerifyField<uint8_t>(verifier, VT_BIASENABLED) &&
9418 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
9419 verifier.EndTable();
9420 }
9421};
9422
9423struct TransposeConvolution2dDescriptorBuilder {
9424 typedef TransposeConvolution2dDescriptor Table;
9425 flatbuffers::FlatBufferBuilder &fbb_;
9426 flatbuffers::uoffset_t start_;
9427 void add_padLeft(uint32_t padLeft) {
9428 fbb_.AddElement<uint32_t>(TransposeConvolution2dDescriptor::VT_PADLEFT, padLeft, 0);
9429 }
9430 void add_padRight(uint32_t padRight) {
9431 fbb_.AddElement<uint32_t>(TransposeConvolution2dDescriptor::VT_PADRIGHT, padRight, 0);
9432 }
9433 void add_padTop(uint32_t padTop) {
9434 fbb_.AddElement<uint32_t>(TransposeConvolution2dDescriptor::VT_PADTOP, padTop, 0);
9435 }
9436 void add_padBottom(uint32_t padBottom) {
9437 fbb_.AddElement<uint32_t>(TransposeConvolution2dDescriptor::VT_PADBOTTOM, padBottom, 0);
9438 }
9439 void add_strideX(uint32_t strideX) {
9440 fbb_.AddElement<uint32_t>(TransposeConvolution2dDescriptor::VT_STRIDEX, strideX, 0);
9441 }
9442 void add_strideY(uint32_t strideY) {
9443 fbb_.AddElement<uint32_t>(TransposeConvolution2dDescriptor::VT_STRIDEY, strideY, 0);
9444 }
9445 void add_biasEnabled(bool biasEnabled) {
9446 fbb_.AddElement<uint8_t>(TransposeConvolution2dDescriptor::VT_BIASENABLED, static_cast<uint8_t>(biasEnabled), 0);
9447 }
9448 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
9449 fbb_.AddElement<int8_t>(TransposeConvolution2dDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 1);
9450 }
9451 explicit TransposeConvolution2dDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9452 : fbb_(_fbb) {
9453 start_ = fbb_.StartTable();
9454 }
9455 TransposeConvolution2dDescriptorBuilder &operator=(const TransposeConvolution2dDescriptorBuilder &);
9456 flatbuffers::Offset<TransposeConvolution2dDescriptor> Finish() {
9457 const auto end = fbb_.EndTable(start_);
9458 auto o = flatbuffers::Offset<TransposeConvolution2dDescriptor>(end);
9459 return o;
9460 }
9461};
9462
9463inline flatbuffers::Offset<TransposeConvolution2dDescriptor> CreateTransposeConvolution2dDescriptor(
9464 flatbuffers::FlatBufferBuilder &_fbb,
9465 uint32_t padLeft = 0,
9466 uint32_t padRight = 0,
9467 uint32_t padTop = 0,
9468 uint32_t padBottom = 0,
9469 uint32_t strideX = 0,
9470 uint32_t strideY = 0,
9471 bool biasEnabled = false,
9472 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NCHW) {
9473 TransposeConvolution2dDescriptorBuilder builder_(_fbb);
9474 builder_.add_strideY(strideY);
9475 builder_.add_strideX(strideX);
9476 builder_.add_padBottom(padBottom);
9477 builder_.add_padTop(padTop);
9478 builder_.add_padRight(padRight);
9479 builder_.add_padLeft(padLeft);
9480 builder_.add_dataLayout(dataLayout);
9481 builder_.add_biasEnabled(biasEnabled);
9482 return builder_.Finish();
9483}
9484
9485struct TransposeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9486 typedef TransposeLayerBuilder Builder;
9487 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9488 VT_BASE = 4,
9489 VT_DESCRIPTOR = 6
9490 };
9491 const armnnSerializer::LayerBase *base() const {
9492 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9493 }
9494 const armnnSerializer::TransposeDescriptor *descriptor() const {
9495 return GetPointer<const armnnSerializer::TransposeDescriptor *>(VT_DESCRIPTOR);
9496 }
9497 bool Verify(flatbuffers::Verifier &verifier) const {
9498 return VerifyTableStart(verifier) &&
9499 VerifyOffset(verifier, VT_BASE) &&
9500 verifier.VerifyTable(base()) &&
9501 VerifyOffset(verifier, VT_DESCRIPTOR) &&
9502 verifier.VerifyTable(descriptor()) &&
9503 verifier.EndTable();
9504 }
9505};
9506
9507struct TransposeLayerBuilder {
9508 typedef TransposeLayer Table;
9509 flatbuffers::FlatBufferBuilder &fbb_;
9510 flatbuffers::uoffset_t start_;
9511 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9512 fbb_.AddOffset(TransposeLayer::VT_BASE, base);
9513 }
9514 void add_descriptor(flatbuffers::Offset<armnnSerializer::TransposeDescriptor> descriptor) {
9515 fbb_.AddOffset(TransposeLayer::VT_DESCRIPTOR, descriptor);
9516 }
9517 explicit TransposeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9518 : fbb_(_fbb) {
9519 start_ = fbb_.StartTable();
9520 }
9521 TransposeLayerBuilder &operator=(const TransposeLayerBuilder &);
9522 flatbuffers::Offset<TransposeLayer> Finish() {
9523 const auto end = fbb_.EndTable(start_);
9524 auto o = flatbuffers::Offset<TransposeLayer>(end);
9525 return o;
9526 }
9527};
9528
9529inline flatbuffers::Offset<TransposeLayer> CreateTransposeLayer(
9530 flatbuffers::FlatBufferBuilder &_fbb,
9531 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
9532 flatbuffers::Offset<armnnSerializer::TransposeDescriptor> descriptor = 0) {
9533 TransposeLayerBuilder builder_(_fbb);
9534 builder_.add_descriptor(descriptor);
9535 builder_.add_base(base);
9536 return builder_.Finish();
9537}
9538
9539struct TransposeDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9540 typedef TransposeDescriptorBuilder Builder;
9541 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9542 VT_DIMMAPPINGS = 4
9543 };
9544 const flatbuffers::Vector<uint32_t> *dimMappings() const {
9545 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_DIMMAPPINGS);
9546 }
9547 bool Verify(flatbuffers::Verifier &verifier) const {
9548 return VerifyTableStart(verifier) &&
9549 VerifyOffset(verifier, VT_DIMMAPPINGS) &&
9550 verifier.VerifyVector(dimMappings()) &&
9551 verifier.EndTable();
9552 }
9553};
9554
9555struct TransposeDescriptorBuilder {
9556 typedef TransposeDescriptor Table;
9557 flatbuffers::FlatBufferBuilder &fbb_;
9558 flatbuffers::uoffset_t start_;
9559 void add_dimMappings(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> dimMappings) {
9560 fbb_.AddOffset(TransposeDescriptor::VT_DIMMAPPINGS, dimMappings);
9561 }
9562 explicit TransposeDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9563 : fbb_(_fbb) {
9564 start_ = fbb_.StartTable();
9565 }
9566 TransposeDescriptorBuilder &operator=(const TransposeDescriptorBuilder &);
9567 flatbuffers::Offset<TransposeDescriptor> Finish() {
9568 const auto end = fbb_.EndTable(start_);
9569 auto o = flatbuffers::Offset<TransposeDescriptor>(end);
9570 return o;
9571 }
9572};
9573
9574inline flatbuffers::Offset<TransposeDescriptor> CreateTransposeDescriptor(
9575 flatbuffers::FlatBufferBuilder &_fbb,
9576 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> dimMappings = 0) {
9577 TransposeDescriptorBuilder builder_(_fbb);
9578 builder_.add_dimMappings(dimMappings);
9579 return builder_.Finish();
9580}
9581
9582inline flatbuffers::Offset<TransposeDescriptor> CreateTransposeDescriptorDirect(
9583 flatbuffers::FlatBufferBuilder &_fbb,
9584 const std::vector<uint32_t> *dimMappings = nullptr) {
9585 auto dimMappings__ = dimMappings ? _fbb.CreateVector<uint32_t>(*dimMappings) : 0;
9586 return armnnSerializer::CreateTransposeDescriptor(
9587 _fbb,
9588 dimMappings__);
9589}
9590
9591struct ResizeLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9592 typedef ResizeLayerBuilder Builder;
9593 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9594 VT_BASE = 4,
9595 VT_DESCRIPTOR = 6
9596 };
9597 const armnnSerializer::LayerBase *base() const {
9598 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9599 }
9600 const armnnSerializer::ResizeDescriptor *descriptor() const {
9601 return GetPointer<const armnnSerializer::ResizeDescriptor *>(VT_DESCRIPTOR);
9602 }
9603 bool Verify(flatbuffers::Verifier &verifier) const {
9604 return VerifyTableStart(verifier) &&
9605 VerifyOffset(verifier, VT_BASE) &&
9606 verifier.VerifyTable(base()) &&
9607 VerifyOffset(verifier, VT_DESCRIPTOR) &&
9608 verifier.VerifyTable(descriptor()) &&
9609 verifier.EndTable();
9610 }
9611};
9612
9613struct ResizeLayerBuilder {
9614 typedef ResizeLayer Table;
9615 flatbuffers::FlatBufferBuilder &fbb_;
9616 flatbuffers::uoffset_t start_;
9617 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9618 fbb_.AddOffset(ResizeLayer::VT_BASE, base);
9619 }
9620 void add_descriptor(flatbuffers::Offset<armnnSerializer::ResizeDescriptor> descriptor) {
9621 fbb_.AddOffset(ResizeLayer::VT_DESCRIPTOR, descriptor);
9622 }
9623 explicit ResizeLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9624 : fbb_(_fbb) {
9625 start_ = fbb_.StartTable();
9626 }
9627 ResizeLayerBuilder &operator=(const ResizeLayerBuilder &);
9628 flatbuffers::Offset<ResizeLayer> Finish() {
9629 const auto end = fbb_.EndTable(start_);
9630 auto o = flatbuffers::Offset<ResizeLayer>(end);
9631 return o;
9632 }
9633};
9634
9635inline flatbuffers::Offset<ResizeLayer> CreateResizeLayer(
9636 flatbuffers::FlatBufferBuilder &_fbb,
9637 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
9638 flatbuffers::Offset<armnnSerializer::ResizeDescriptor> descriptor = 0) {
9639 ResizeLayerBuilder builder_(_fbb);
9640 builder_.add_descriptor(descriptor);
9641 builder_.add_base(base);
9642 return builder_.Finish();
9643}
9644
9645struct ResizeDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9646 typedef ResizeDescriptorBuilder Builder;
9647 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9648 VT_TARGETHEIGHT = 4,
9649 VT_TARGETWIDTH = 6,
9650 VT_METHOD = 8,
9651 VT_DATALAYOUT = 10,
9652 VT_ALIGNCORNERS = 12,
9653 VT_HALFPIXELCENTERS = 14
9654 };
9655 uint32_t targetHeight() const {
9656 return GetField<uint32_t>(VT_TARGETHEIGHT, 0);
9657 }
9658 uint32_t targetWidth() const {
9659 return GetField<uint32_t>(VT_TARGETWIDTH, 0);
9660 }
9661 armnnSerializer::ResizeMethod method() const {
9662 return static_cast<armnnSerializer::ResizeMethod>(GetField<int8_t>(VT_METHOD, 0));
9663 }
9664 armnnSerializer::DataLayout dataLayout() const {
9665 return static_cast<armnnSerializer::DataLayout>(GetField<int8_t>(VT_DATALAYOUT, 0));
9666 }
9667 bool alignCorners() const {
9668 return GetField<uint8_t>(VT_ALIGNCORNERS, 0) != 0;
9669 }
9670 bool halfPixelCenters() const {
9671 return GetField<uint8_t>(VT_HALFPIXELCENTERS, 0) != 0;
9672 }
9673 bool Verify(flatbuffers::Verifier &verifier) const {
9674 return VerifyTableStart(verifier) &&
9675 VerifyField<uint32_t>(verifier, VT_TARGETHEIGHT) &&
9676 VerifyField<uint32_t>(verifier, VT_TARGETWIDTH) &&
9677 VerifyField<int8_t>(verifier, VT_METHOD) &&
9678 VerifyField<int8_t>(verifier, VT_DATALAYOUT) &&
9679 VerifyField<uint8_t>(verifier, VT_ALIGNCORNERS) &&
9680 VerifyField<uint8_t>(verifier, VT_HALFPIXELCENTERS) &&
9681 verifier.EndTable();
9682 }
9683};
9684
9685struct ResizeDescriptorBuilder {
9686 typedef ResizeDescriptor Table;
9687 flatbuffers::FlatBufferBuilder &fbb_;
9688 flatbuffers::uoffset_t start_;
9689 void add_targetHeight(uint32_t targetHeight) {
9690 fbb_.AddElement<uint32_t>(ResizeDescriptor::VT_TARGETHEIGHT, targetHeight, 0);
9691 }
9692 void add_targetWidth(uint32_t targetWidth) {
9693 fbb_.AddElement<uint32_t>(ResizeDescriptor::VT_TARGETWIDTH, targetWidth, 0);
9694 }
9695 void add_method(armnnSerializer::ResizeMethod method) {
9696 fbb_.AddElement<int8_t>(ResizeDescriptor::VT_METHOD, static_cast<int8_t>(method), 0);
9697 }
9698 void add_dataLayout(armnnSerializer::DataLayout dataLayout) {
9699 fbb_.AddElement<int8_t>(ResizeDescriptor::VT_DATALAYOUT, static_cast<int8_t>(dataLayout), 0);
9700 }
9701 void add_alignCorners(bool alignCorners) {
9702 fbb_.AddElement<uint8_t>(ResizeDescriptor::VT_ALIGNCORNERS, static_cast<uint8_t>(alignCorners), 0);
9703 }
9704 void add_halfPixelCenters(bool halfPixelCenters) {
9705 fbb_.AddElement<uint8_t>(ResizeDescriptor::VT_HALFPIXELCENTERS, static_cast<uint8_t>(halfPixelCenters), 0);
9706 }
9707 explicit ResizeDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9708 : fbb_(_fbb) {
9709 start_ = fbb_.StartTable();
9710 }
9711 ResizeDescriptorBuilder &operator=(const ResizeDescriptorBuilder &);
9712 flatbuffers::Offset<ResizeDescriptor> Finish() {
9713 const auto end = fbb_.EndTable(start_);
9714 auto o = flatbuffers::Offset<ResizeDescriptor>(end);
9715 return o;
9716 }
9717};
9718
9719inline flatbuffers::Offset<ResizeDescriptor> CreateResizeDescriptor(
9720 flatbuffers::FlatBufferBuilder &_fbb,
9721 uint32_t targetHeight = 0,
9722 uint32_t targetWidth = 0,
9723 armnnSerializer::ResizeMethod method = armnnSerializer::ResizeMethod_NearestNeighbor,
9724 armnnSerializer::DataLayout dataLayout = armnnSerializer::DataLayout_NHWC,
9725 bool alignCorners = false,
9726 bool halfPixelCenters = false) {
9727 ResizeDescriptorBuilder builder_(_fbb);
9728 builder_.add_targetWidth(targetWidth);
9729 builder_.add_targetHeight(targetHeight);
9730 builder_.add_halfPixelCenters(halfPixelCenters);
9731 builder_.add_alignCorners(alignCorners);
9732 builder_.add_dataLayout(dataLayout);
9733 builder_.add_method(method);
9734 return builder_.Finish();
9735}
9736
9737struct StackLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9738 typedef StackLayerBuilder Builder;
9739 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9740 VT_BASE = 4,
9741 VT_DESCRIPTOR = 6
9742 };
9743 const armnnSerializer::LayerBase *base() const {
9744 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9745 }
9746 const armnnSerializer::StackDescriptor *descriptor() const {
9747 return GetPointer<const armnnSerializer::StackDescriptor *>(VT_DESCRIPTOR);
9748 }
9749 bool Verify(flatbuffers::Verifier &verifier) const {
9750 return VerifyTableStart(verifier) &&
9751 VerifyOffset(verifier, VT_BASE) &&
9752 verifier.VerifyTable(base()) &&
9753 VerifyOffset(verifier, VT_DESCRIPTOR) &&
9754 verifier.VerifyTable(descriptor()) &&
9755 verifier.EndTable();
9756 }
9757};
9758
9759struct StackLayerBuilder {
9760 typedef StackLayer Table;
9761 flatbuffers::FlatBufferBuilder &fbb_;
9762 flatbuffers::uoffset_t start_;
9763 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9764 fbb_.AddOffset(StackLayer::VT_BASE, base);
9765 }
9766 void add_descriptor(flatbuffers::Offset<armnnSerializer::StackDescriptor> descriptor) {
9767 fbb_.AddOffset(StackLayer::VT_DESCRIPTOR, descriptor);
9768 }
9769 explicit StackLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9770 : fbb_(_fbb) {
9771 start_ = fbb_.StartTable();
9772 }
9773 StackLayerBuilder &operator=(const StackLayerBuilder &);
9774 flatbuffers::Offset<StackLayer> Finish() {
9775 const auto end = fbb_.EndTable(start_);
9776 auto o = flatbuffers::Offset<StackLayer>(end);
9777 return o;
9778 }
9779};
9780
9781inline flatbuffers::Offset<StackLayer> CreateStackLayer(
9782 flatbuffers::FlatBufferBuilder &_fbb,
9783 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
9784 flatbuffers::Offset<armnnSerializer::StackDescriptor> descriptor = 0) {
9785 StackLayerBuilder builder_(_fbb);
9786 builder_.add_descriptor(descriptor);
9787 builder_.add_base(base);
9788 return builder_.Finish();
9789}
9790
9791struct StackDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9792 typedef StackDescriptorBuilder Builder;
9793 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9794 VT_AXIS = 4,
9795 VT_NUMINPUTS = 6,
9796 VT_INPUTSHAPE = 8
9797 };
9798 uint32_t axis() const {
9799 return GetField<uint32_t>(VT_AXIS, 0);
9800 }
9801 uint32_t numInputs() const {
9802 return GetField<uint32_t>(VT_NUMINPUTS, 0);
9803 }
9804 const flatbuffers::Vector<uint32_t> *inputShape() const {
9805 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_INPUTSHAPE);
9806 }
9807 bool Verify(flatbuffers::Verifier &verifier) const {
9808 return VerifyTableStart(verifier) &&
9809 VerifyField<uint32_t>(verifier, VT_AXIS) &&
9810 VerifyField<uint32_t>(verifier, VT_NUMINPUTS) &&
9811 VerifyOffset(verifier, VT_INPUTSHAPE) &&
9812 verifier.VerifyVector(inputShape()) &&
9813 verifier.EndTable();
9814 }
9815};
9816
9817struct StackDescriptorBuilder {
9818 typedef StackDescriptor Table;
9819 flatbuffers::FlatBufferBuilder &fbb_;
9820 flatbuffers::uoffset_t start_;
9821 void add_axis(uint32_t axis) {
9822 fbb_.AddElement<uint32_t>(StackDescriptor::VT_AXIS, axis, 0);
9823 }
9824 void add_numInputs(uint32_t numInputs) {
9825 fbb_.AddElement<uint32_t>(StackDescriptor::VT_NUMINPUTS, numInputs, 0);
9826 }
9827 void add_inputShape(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> inputShape) {
9828 fbb_.AddOffset(StackDescriptor::VT_INPUTSHAPE, inputShape);
9829 }
9830 explicit StackDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9831 : fbb_(_fbb) {
9832 start_ = fbb_.StartTable();
9833 }
9834 StackDescriptorBuilder &operator=(const StackDescriptorBuilder &);
9835 flatbuffers::Offset<StackDescriptor> Finish() {
9836 const auto end = fbb_.EndTable(start_);
9837 auto o = flatbuffers::Offset<StackDescriptor>(end);
9838 return o;
9839 }
9840};
9841
9842inline flatbuffers::Offset<StackDescriptor> CreateStackDescriptor(
9843 flatbuffers::FlatBufferBuilder &_fbb,
9844 uint32_t axis = 0,
9845 uint32_t numInputs = 0,
9846 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> inputShape = 0) {
9847 StackDescriptorBuilder builder_(_fbb);
9848 builder_.add_inputShape(inputShape);
9849 builder_.add_numInputs(numInputs);
9850 builder_.add_axis(axis);
9851 return builder_.Finish();
9852}
9853
9854inline flatbuffers::Offset<StackDescriptor> CreateStackDescriptorDirect(
9855 flatbuffers::FlatBufferBuilder &_fbb,
9856 uint32_t axis = 0,
9857 uint32_t numInputs = 0,
9858 const std::vector<uint32_t> *inputShape = nullptr) {
9859 auto inputShape__ = inputShape ? _fbb.CreateVector<uint32_t>(*inputShape) : 0;
9860 return armnnSerializer::CreateStackDescriptor(
9861 _fbb,
9862 axis,
9863 numInputs,
9864 inputShape__);
9865}
9866
9867struct StandInDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9868 typedef StandInDescriptorBuilder Builder;
9869 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9870 VT_NUMINPUTS = 4,
9871 VT_NUMOUTPUTS = 6
9872 };
9873 uint32_t numInputs() const {
9874 return GetField<uint32_t>(VT_NUMINPUTS, 0);
9875 }
9876 uint32_t numOutputs() const {
9877 return GetField<uint32_t>(VT_NUMOUTPUTS, 0);
9878 }
9879 bool Verify(flatbuffers::Verifier &verifier) const {
9880 return VerifyTableStart(verifier) &&
9881 VerifyField<uint32_t>(verifier, VT_NUMINPUTS) &&
9882 VerifyField<uint32_t>(verifier, VT_NUMOUTPUTS) &&
9883 verifier.EndTable();
9884 }
9885};
9886
9887struct StandInDescriptorBuilder {
9888 typedef StandInDescriptor Table;
9889 flatbuffers::FlatBufferBuilder &fbb_;
9890 flatbuffers::uoffset_t start_;
9891 void add_numInputs(uint32_t numInputs) {
9892 fbb_.AddElement<uint32_t>(StandInDescriptor::VT_NUMINPUTS, numInputs, 0);
9893 }
9894 void add_numOutputs(uint32_t numOutputs) {
9895 fbb_.AddElement<uint32_t>(StandInDescriptor::VT_NUMOUTPUTS, numOutputs, 0);
9896 }
9897 explicit StandInDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9898 : fbb_(_fbb) {
9899 start_ = fbb_.StartTable();
9900 }
9901 StandInDescriptorBuilder &operator=(const StandInDescriptorBuilder &);
9902 flatbuffers::Offset<StandInDescriptor> Finish() {
9903 const auto end = fbb_.EndTable(start_);
9904 auto o = flatbuffers::Offset<StandInDescriptor>(end);
9905 return o;
9906 }
9907};
9908
9909inline flatbuffers::Offset<StandInDescriptor> CreateStandInDescriptor(
9910 flatbuffers::FlatBufferBuilder &_fbb,
9911 uint32_t numInputs = 0,
9912 uint32_t numOutputs = 0) {
9913 StandInDescriptorBuilder builder_(_fbb);
9914 builder_.add_numOutputs(numOutputs);
9915 builder_.add_numInputs(numInputs);
9916 return builder_.Finish();
9917}
9918
9919struct StandInLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9920 typedef StandInLayerBuilder Builder;
9921 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9922 VT_BASE = 4,
9923 VT_DESCRIPTOR = 6
9924 };
9925 const armnnSerializer::LayerBase *base() const {
9926 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9927 }
9928 const armnnSerializer::StandInDescriptor *descriptor() const {
9929 return GetPointer<const armnnSerializer::StandInDescriptor *>(VT_DESCRIPTOR);
9930 }
9931 bool Verify(flatbuffers::Verifier &verifier) const {
9932 return VerifyTableStart(verifier) &&
9933 VerifyOffset(verifier, VT_BASE) &&
9934 verifier.VerifyTable(base()) &&
9935 VerifyOffset(verifier, VT_DESCRIPTOR) &&
9936 verifier.VerifyTable(descriptor()) &&
9937 verifier.EndTable();
9938 }
9939};
9940
9941struct StandInLayerBuilder {
9942 typedef StandInLayer Table;
9943 flatbuffers::FlatBufferBuilder &fbb_;
9944 flatbuffers::uoffset_t start_;
9945 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9946 fbb_.AddOffset(StandInLayer::VT_BASE, base);
9947 }
9948 void add_descriptor(flatbuffers::Offset<armnnSerializer::StandInDescriptor> descriptor) {
9949 fbb_.AddOffset(StandInLayer::VT_DESCRIPTOR, descriptor);
9950 }
9951 explicit StandInLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9952 : fbb_(_fbb) {
9953 start_ = fbb_.StartTable();
9954 }
9955 StandInLayerBuilder &operator=(const StandInLayerBuilder &);
9956 flatbuffers::Offset<StandInLayer> Finish() {
9957 const auto end = fbb_.EndTable(start_);
9958 auto o = flatbuffers::Offset<StandInLayer>(end);
9959 return o;
9960 }
9961};
9962
9963inline flatbuffers::Offset<StandInLayer> CreateStandInLayer(
9964 flatbuffers::FlatBufferBuilder &_fbb,
9965 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
9966 flatbuffers::Offset<armnnSerializer::StandInDescriptor> descriptor = 0) {
9967 StandInLayerBuilder builder_(_fbb);
9968 builder_.add_descriptor(descriptor);
9969 builder_.add_base(base);
9970 return builder_.Finish();
9971}
9972
9973struct RankLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
9974 typedef RankLayerBuilder Builder;
9975 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
9976 VT_BASE = 4
9977 };
9978 const armnnSerializer::LayerBase *base() const {
9979 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
9980 }
9981 bool Verify(flatbuffers::Verifier &verifier) const {
9982 return VerifyTableStart(verifier) &&
9983 VerifyOffset(verifier, VT_BASE) &&
9984 verifier.VerifyTable(base()) &&
9985 verifier.EndTable();
9986 }
9987};
9988
9989struct RankLayerBuilder {
9990 typedef RankLayer Table;
9991 flatbuffers::FlatBufferBuilder &fbb_;
9992 flatbuffers::uoffset_t start_;
9993 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
9994 fbb_.AddOffset(RankLayer::VT_BASE, base);
9995 }
9996 explicit RankLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
9997 : fbb_(_fbb) {
9998 start_ = fbb_.StartTable();
9999 }
10000 RankLayerBuilder &operator=(const RankLayerBuilder &);
10001 flatbuffers::Offset<RankLayer> Finish() {
10002 const auto end = fbb_.EndTable(start_);
10003 auto o = flatbuffers::Offset<RankLayer>(end);
10004 return o;
10005 }
10006};
10007
10008inline flatbuffers::Offset<RankLayer> CreateRankLayer(
10009 flatbuffers::FlatBufferBuilder &_fbb,
10010 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0) {
10011 RankLayerBuilder builder_(_fbb);
10012 builder_.add_base(base);
10013 return builder_.Finish();
10014}
10015
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000010016struct ReduceLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
10017 typedef ReduceLayerBuilder Builder;
10018 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
10019 VT_BASE = 4,
10020 VT_DESCRIPTOR = 6
10021 };
10022 const armnnSerializer::LayerBase *base() const {
10023 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
10024 }
10025 const armnnSerializer::ReduceDescriptor *descriptor() const {
10026 return GetPointer<const armnnSerializer::ReduceDescriptor *>(VT_DESCRIPTOR);
10027 }
10028 bool Verify(flatbuffers::Verifier &verifier) const {
10029 return VerifyTableStart(verifier) &&
10030 VerifyOffset(verifier, VT_BASE) &&
10031 verifier.VerifyTable(base()) &&
10032 VerifyOffset(verifier, VT_DESCRIPTOR) &&
10033 verifier.VerifyTable(descriptor()) &&
10034 verifier.EndTable();
10035 }
10036};
10037
10038struct ReduceLayerBuilder {
10039 typedef ReduceLayer Table;
10040 flatbuffers::FlatBufferBuilder &fbb_;
10041 flatbuffers::uoffset_t start_;
10042 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
10043 fbb_.AddOffset(ReduceLayer::VT_BASE, base);
10044 }
10045 void add_descriptor(flatbuffers::Offset<armnnSerializer::ReduceDescriptor> descriptor) {
10046 fbb_.AddOffset(ReduceLayer::VT_DESCRIPTOR, descriptor);
10047 }
10048 explicit ReduceLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
10049 : fbb_(_fbb) {
10050 start_ = fbb_.StartTable();
10051 }
10052 ReduceLayerBuilder &operator=(const ReduceLayerBuilder &);
10053 flatbuffers::Offset<ReduceLayer> Finish() {
10054 const auto end = fbb_.EndTable(start_);
10055 auto o = flatbuffers::Offset<ReduceLayer>(end);
10056 return o;
10057 }
10058};
10059
10060inline flatbuffers::Offset<ReduceLayer> CreateReduceLayer(
10061 flatbuffers::FlatBufferBuilder &_fbb,
10062 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
10063 flatbuffers::Offset<armnnSerializer::ReduceDescriptor> descriptor = 0) {
10064 ReduceLayerBuilder builder_(_fbb);
10065 builder_.add_descriptor(descriptor);
10066 builder_.add_base(base);
10067 return builder_.Finish();
10068}
10069
10070struct ReduceDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
10071 typedef ReduceDescriptorBuilder Builder;
10072 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Sadik Armagan49bdb792021-02-11 13:57:07 +000010073 VT_KEEPDIMS = 4,
10074 VT_AXIS = 6,
10075 VT_REDUCEOPERATION = 8
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000010076 };
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000010077 bool keepDims() const {
10078 return GetField<uint8_t>(VT_KEEPDIMS, 0) != 0;
10079 }
10080 const flatbuffers::Vector<uint32_t> *axis() const {
10081 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_AXIS);
10082 }
10083 armnnSerializer::ReduceOperation reduceOperation() const {
10084 return static_cast<armnnSerializer::ReduceOperation>(GetField<int8_t>(VT_REDUCEOPERATION, 0));
10085 }
10086 bool Verify(flatbuffers::Verifier &verifier) const {
10087 return VerifyTableStart(verifier) &&
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000010088 VerifyField<uint8_t>(verifier, VT_KEEPDIMS) &&
10089 VerifyOffset(verifier, VT_AXIS) &&
10090 verifier.VerifyVector(axis()) &&
10091 VerifyField<int8_t>(verifier, VT_REDUCEOPERATION) &&
10092 verifier.EndTable();
10093 }
10094};
10095
10096struct ReduceDescriptorBuilder {
10097 typedef ReduceDescriptor Table;
10098 flatbuffers::FlatBufferBuilder &fbb_;
10099 flatbuffers::uoffset_t start_;
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000010100 void add_keepDims(bool keepDims) {
10101 fbb_.AddElement<uint8_t>(ReduceDescriptor::VT_KEEPDIMS, static_cast<uint8_t>(keepDims), 0);
10102 }
10103 void add_axis(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> axis) {
10104 fbb_.AddOffset(ReduceDescriptor::VT_AXIS, axis);
10105 }
10106 void add_reduceOperation(armnnSerializer::ReduceOperation reduceOperation) {
10107 fbb_.AddElement<int8_t>(ReduceDescriptor::VT_REDUCEOPERATION, static_cast<int8_t>(reduceOperation), 0);
10108 }
10109 explicit ReduceDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
10110 : fbb_(_fbb) {
10111 start_ = fbb_.StartTable();
10112 }
10113 ReduceDescriptorBuilder &operator=(const ReduceDescriptorBuilder &);
10114 flatbuffers::Offset<ReduceDescriptor> Finish() {
10115 const auto end = fbb_.EndTable(start_);
10116 auto o = flatbuffers::Offset<ReduceDescriptor>(end);
10117 return o;
10118 }
10119};
10120
10121inline flatbuffers::Offset<ReduceDescriptor> CreateReduceDescriptor(
10122 flatbuffers::FlatBufferBuilder &_fbb,
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000010123 bool keepDims = false,
10124 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> axis = 0,
10125 armnnSerializer::ReduceOperation reduceOperation = armnnSerializer::ReduceOperation_Sum) {
10126 ReduceDescriptorBuilder builder_(_fbb);
10127 builder_.add_axis(axis);
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000010128 builder_.add_reduceOperation(reduceOperation);
10129 builder_.add_keepDims(keepDims);
10130 return builder_.Finish();
10131}
10132
10133inline flatbuffers::Offset<ReduceDescriptor> CreateReduceDescriptorDirect(
10134 flatbuffers::FlatBufferBuilder &_fbb,
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000010135 bool keepDims = false,
10136 const std::vector<uint32_t> *axis = nullptr,
10137 armnnSerializer::ReduceOperation reduceOperation = armnnSerializer::ReduceOperation_Sum) {
10138 auto axis__ = axis ? _fbb.CreateVector<uint32_t>(*axis) : 0;
10139 return armnnSerializer::CreateReduceDescriptor(
10140 _fbb,
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000010141 keepDims,
10142 axis__,
10143 reduceOperation);
10144}
10145
Narumol Prangnawarata0162e12021-07-23 14:47:49 +010010146struct UnidirectionalSequenceLstmDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
10147 typedef UnidirectionalSequenceLstmDescriptorBuilder Builder;
10148 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
10149 VT_ACTIVATIONFUNC = 4,
10150 VT_CLIPPINGTHRESCELL = 6,
10151 VT_CLIPPINGTHRESPROJ = 8,
10152 VT_CIFGENABLED = 10,
10153 VT_PEEPHOLEENABLED = 12,
10154 VT_PROJECTIONENABLED = 14,
10155 VT_LAYERNORMENABLED = 16,
10156 VT_TIMEMAJOR = 18
10157 };
10158 uint32_t activationFunc() const {
10159 return GetField<uint32_t>(VT_ACTIVATIONFUNC, 0);
10160 }
10161 float clippingThresCell() const {
10162 return GetField<float>(VT_CLIPPINGTHRESCELL, 0.0f);
10163 }
10164 float clippingThresProj() const {
10165 return GetField<float>(VT_CLIPPINGTHRESPROJ, 0.0f);
10166 }
10167 bool cifgEnabled() const {
10168 return GetField<uint8_t>(VT_CIFGENABLED, 1) != 0;
10169 }
10170 bool peepholeEnabled() const {
10171 return GetField<uint8_t>(VT_PEEPHOLEENABLED, 0) != 0;
10172 }
10173 bool projectionEnabled() const {
10174 return GetField<uint8_t>(VT_PROJECTIONENABLED, 0) != 0;
10175 }
10176 bool layerNormEnabled() const {
10177 return GetField<uint8_t>(VT_LAYERNORMENABLED, 0) != 0;
10178 }
10179 bool timeMajor() const {
10180 return GetField<uint8_t>(VT_TIMEMAJOR, 0) != 0;
10181 }
10182 bool Verify(flatbuffers::Verifier &verifier) const {
10183 return VerifyTableStart(verifier) &&
10184 VerifyField<uint32_t>(verifier, VT_ACTIVATIONFUNC) &&
10185 VerifyField<float>(verifier, VT_CLIPPINGTHRESCELL) &&
10186 VerifyField<float>(verifier, VT_CLIPPINGTHRESPROJ) &&
10187 VerifyField<uint8_t>(verifier, VT_CIFGENABLED) &&
10188 VerifyField<uint8_t>(verifier, VT_PEEPHOLEENABLED) &&
10189 VerifyField<uint8_t>(verifier, VT_PROJECTIONENABLED) &&
10190 VerifyField<uint8_t>(verifier, VT_LAYERNORMENABLED) &&
10191 VerifyField<uint8_t>(verifier, VT_TIMEMAJOR) &&
10192 verifier.EndTable();
10193 }
10194};
10195
10196struct UnidirectionalSequenceLstmDescriptorBuilder {
10197 typedef UnidirectionalSequenceLstmDescriptor Table;
10198 flatbuffers::FlatBufferBuilder &fbb_;
10199 flatbuffers::uoffset_t start_;
10200 void add_activationFunc(uint32_t activationFunc) {
10201 fbb_.AddElement<uint32_t>(UnidirectionalSequenceLstmDescriptor::VT_ACTIVATIONFUNC, activationFunc, 0);
10202 }
10203 void add_clippingThresCell(float clippingThresCell) {
10204 fbb_.AddElement<float>(UnidirectionalSequenceLstmDescriptor::VT_CLIPPINGTHRESCELL, clippingThresCell, 0.0f);
10205 }
10206 void add_clippingThresProj(float clippingThresProj) {
10207 fbb_.AddElement<float>(UnidirectionalSequenceLstmDescriptor::VT_CLIPPINGTHRESPROJ, clippingThresProj, 0.0f);
10208 }
10209 void add_cifgEnabled(bool cifgEnabled) {
10210 fbb_.AddElement<uint8_t>(UnidirectionalSequenceLstmDescriptor::VT_CIFGENABLED, static_cast<uint8_t>(cifgEnabled), 1);
10211 }
10212 void add_peepholeEnabled(bool peepholeEnabled) {
10213 fbb_.AddElement<uint8_t>(UnidirectionalSequenceLstmDescriptor::VT_PEEPHOLEENABLED, static_cast<uint8_t>(peepholeEnabled), 0);
10214 }
10215 void add_projectionEnabled(bool projectionEnabled) {
10216 fbb_.AddElement<uint8_t>(UnidirectionalSequenceLstmDescriptor::VT_PROJECTIONENABLED, static_cast<uint8_t>(projectionEnabled), 0);
10217 }
10218 void add_layerNormEnabled(bool layerNormEnabled) {
10219 fbb_.AddElement<uint8_t>(UnidirectionalSequenceLstmDescriptor::VT_LAYERNORMENABLED, static_cast<uint8_t>(layerNormEnabled), 0);
10220 }
10221 void add_timeMajor(bool timeMajor) {
10222 fbb_.AddElement<uint8_t>(UnidirectionalSequenceLstmDescriptor::VT_TIMEMAJOR, static_cast<uint8_t>(timeMajor), 0);
10223 }
10224 explicit UnidirectionalSequenceLstmDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
10225 : fbb_(_fbb) {
10226 start_ = fbb_.StartTable();
10227 }
10228 UnidirectionalSequenceLstmDescriptorBuilder &operator=(const UnidirectionalSequenceLstmDescriptorBuilder &);
10229 flatbuffers::Offset<UnidirectionalSequenceLstmDescriptor> Finish() {
10230 const auto end = fbb_.EndTable(start_);
10231 auto o = flatbuffers::Offset<UnidirectionalSequenceLstmDescriptor>(end);
10232 return o;
10233 }
10234};
10235
10236inline flatbuffers::Offset<UnidirectionalSequenceLstmDescriptor> CreateUnidirectionalSequenceLstmDescriptor(
10237 flatbuffers::FlatBufferBuilder &_fbb,
10238 uint32_t activationFunc = 0,
10239 float clippingThresCell = 0.0f,
10240 float clippingThresProj = 0.0f,
10241 bool cifgEnabled = true,
10242 bool peepholeEnabled = false,
10243 bool projectionEnabled = false,
10244 bool layerNormEnabled = false,
10245 bool timeMajor = false) {
10246 UnidirectionalSequenceLstmDescriptorBuilder builder_(_fbb);
10247 builder_.add_clippingThresProj(clippingThresProj);
10248 builder_.add_clippingThresCell(clippingThresCell);
10249 builder_.add_activationFunc(activationFunc);
10250 builder_.add_timeMajor(timeMajor);
10251 builder_.add_layerNormEnabled(layerNormEnabled);
10252 builder_.add_projectionEnabled(projectionEnabled);
10253 builder_.add_peepholeEnabled(peepholeEnabled);
10254 builder_.add_cifgEnabled(cifgEnabled);
10255 return builder_.Finish();
10256}
10257
10258struct UnidirectionalSequenceLstmLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
10259 typedef UnidirectionalSequenceLstmLayerBuilder Builder;
10260 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
10261 VT_BASE = 4,
10262 VT_DESCRIPTOR = 6,
10263 VT_INPUTPARAMS = 8
10264 };
10265 const armnnSerializer::LayerBase *base() const {
10266 return GetPointer<const armnnSerializer::LayerBase *>(VT_BASE);
10267 }
10268 const armnnSerializer::UnidirectionalSequenceLstmDescriptor *descriptor() const {
10269 return GetPointer<const armnnSerializer::UnidirectionalSequenceLstmDescriptor *>(VT_DESCRIPTOR);
10270 }
10271 const armnnSerializer::LstmInputParams *inputParams() const {
10272 return GetPointer<const armnnSerializer::LstmInputParams *>(VT_INPUTPARAMS);
10273 }
10274 bool Verify(flatbuffers::Verifier &verifier) const {
10275 return VerifyTableStart(verifier) &&
10276 VerifyOffset(verifier, VT_BASE) &&
10277 verifier.VerifyTable(base()) &&
10278 VerifyOffset(verifier, VT_DESCRIPTOR) &&
10279 verifier.VerifyTable(descriptor()) &&
10280 VerifyOffset(verifier, VT_INPUTPARAMS) &&
10281 verifier.VerifyTable(inputParams()) &&
10282 verifier.EndTable();
10283 }
10284};
10285
10286struct UnidirectionalSequenceLstmLayerBuilder {
10287 typedef UnidirectionalSequenceLstmLayer Table;
10288 flatbuffers::FlatBufferBuilder &fbb_;
10289 flatbuffers::uoffset_t start_;
10290 void add_base(flatbuffers::Offset<armnnSerializer::LayerBase> base) {
10291 fbb_.AddOffset(UnidirectionalSequenceLstmLayer::VT_BASE, base);
10292 }
10293 void add_descriptor(flatbuffers::Offset<armnnSerializer::UnidirectionalSequenceLstmDescriptor> descriptor) {
10294 fbb_.AddOffset(UnidirectionalSequenceLstmLayer::VT_DESCRIPTOR, descriptor);
10295 }
10296 void add_inputParams(flatbuffers::Offset<armnnSerializer::LstmInputParams> inputParams) {
10297 fbb_.AddOffset(UnidirectionalSequenceLstmLayer::VT_INPUTPARAMS, inputParams);
10298 }
10299 explicit UnidirectionalSequenceLstmLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
10300 : fbb_(_fbb) {
10301 start_ = fbb_.StartTable();
10302 }
10303 UnidirectionalSequenceLstmLayerBuilder &operator=(const UnidirectionalSequenceLstmLayerBuilder &);
10304 flatbuffers::Offset<UnidirectionalSequenceLstmLayer> Finish() {
10305 const auto end = fbb_.EndTable(start_);
10306 auto o = flatbuffers::Offset<UnidirectionalSequenceLstmLayer>(end);
10307 return o;
10308 }
10309};
10310
10311inline flatbuffers::Offset<UnidirectionalSequenceLstmLayer> CreateUnidirectionalSequenceLstmLayer(
10312 flatbuffers::FlatBufferBuilder &_fbb,
10313 flatbuffers::Offset<armnnSerializer::LayerBase> base = 0,
10314 flatbuffers::Offset<armnnSerializer::UnidirectionalSequenceLstmDescriptor> descriptor = 0,
10315 flatbuffers::Offset<armnnSerializer::LstmInputParams> inputParams = 0) {
10316 UnidirectionalSequenceLstmLayerBuilder builder_(_fbb);
10317 builder_.add_inputParams(inputParams);
10318 builder_.add_descriptor(descriptor);
10319 builder_.add_base(base);
10320 return builder_.Finish();
10321}
10322
Sadik Armagan97bf84f2021-01-13 15:06:38 +000010323struct AnyLayer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
10324 typedef AnyLayerBuilder Builder;
10325 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
10326 VT_LAYER_TYPE = 4,
10327 VT_LAYER = 6
10328 };
10329 armnnSerializer::Layer layer_type() const {
10330 return static_cast<armnnSerializer::Layer>(GetField<uint8_t>(VT_LAYER_TYPE, 0));
10331 }
10332 const void *layer() const {
10333 return GetPointer<const void *>(VT_LAYER);
10334 }
10335 template<typename T> const T *layer_as() const;
10336 const armnnSerializer::ActivationLayer *layer_as_ActivationLayer() const {
10337 return layer_type() == armnnSerializer::Layer_ActivationLayer ? static_cast<const armnnSerializer::ActivationLayer *>(layer()) : nullptr;
10338 }
10339 const armnnSerializer::AdditionLayer *layer_as_AdditionLayer() const {
10340 return layer_type() == armnnSerializer::Layer_AdditionLayer ? static_cast<const armnnSerializer::AdditionLayer *>(layer()) : nullptr;
10341 }
10342 const armnnSerializer::BatchToSpaceNdLayer *layer_as_BatchToSpaceNdLayer() const {
10343 return layer_type() == armnnSerializer::Layer_BatchToSpaceNdLayer ? static_cast<const armnnSerializer::BatchToSpaceNdLayer *>(layer()) : nullptr;
10344 }
10345 const armnnSerializer::BatchNormalizationLayer *layer_as_BatchNormalizationLayer() const {
10346 return layer_type() == armnnSerializer::Layer_BatchNormalizationLayer ? static_cast<const armnnSerializer::BatchNormalizationLayer *>(layer()) : nullptr;
10347 }
10348 const armnnSerializer::ConstantLayer *layer_as_ConstantLayer() const {
10349 return layer_type() == armnnSerializer::Layer_ConstantLayer ? static_cast<const armnnSerializer::ConstantLayer *>(layer()) : nullptr;
10350 }
10351 const armnnSerializer::Convolution2dLayer *layer_as_Convolution2dLayer() const {
10352 return layer_type() == armnnSerializer::Layer_Convolution2dLayer ? static_cast<const armnnSerializer::Convolution2dLayer *>(layer()) : nullptr;
10353 }
10354 const armnnSerializer::DepthwiseConvolution2dLayer *layer_as_DepthwiseConvolution2dLayer() const {
10355 return layer_type() == armnnSerializer::Layer_DepthwiseConvolution2dLayer ? static_cast<const armnnSerializer::DepthwiseConvolution2dLayer *>(layer()) : nullptr;
10356 }
10357 const armnnSerializer::FullyConnectedLayer *layer_as_FullyConnectedLayer() const {
10358 return layer_type() == armnnSerializer::Layer_FullyConnectedLayer ? static_cast<const armnnSerializer::FullyConnectedLayer *>(layer()) : nullptr;
10359 }
10360 const armnnSerializer::InputLayer *layer_as_InputLayer() const {
10361 return layer_type() == armnnSerializer::Layer_InputLayer ? static_cast<const armnnSerializer::InputLayer *>(layer()) : nullptr;
10362 }
10363 const armnnSerializer::MultiplicationLayer *layer_as_MultiplicationLayer() const {
10364 return layer_type() == armnnSerializer::Layer_MultiplicationLayer ? static_cast<const armnnSerializer::MultiplicationLayer *>(layer()) : nullptr;
10365 }
10366 const armnnSerializer::OutputLayer *layer_as_OutputLayer() const {
10367 return layer_type() == armnnSerializer::Layer_OutputLayer ? static_cast<const armnnSerializer::OutputLayer *>(layer()) : nullptr;
10368 }
10369 const armnnSerializer::PermuteLayer *layer_as_PermuteLayer() const {
10370 return layer_type() == armnnSerializer::Layer_PermuteLayer ? static_cast<const armnnSerializer::PermuteLayer *>(layer()) : nullptr;
10371 }
10372 const armnnSerializer::Pooling2dLayer *layer_as_Pooling2dLayer() const {
10373 return layer_type() == armnnSerializer::Layer_Pooling2dLayer ? static_cast<const armnnSerializer::Pooling2dLayer *>(layer()) : nullptr;
10374 }
10375 const armnnSerializer::ReshapeLayer *layer_as_ReshapeLayer() const {
10376 return layer_type() == armnnSerializer::Layer_ReshapeLayer ? static_cast<const armnnSerializer::ReshapeLayer *>(layer()) : nullptr;
10377 }
10378 const armnnSerializer::SoftmaxLayer *layer_as_SoftmaxLayer() const {
10379 return layer_type() == armnnSerializer::Layer_SoftmaxLayer ? static_cast<const armnnSerializer::SoftmaxLayer *>(layer()) : nullptr;
10380 }
10381 const armnnSerializer::SpaceToBatchNdLayer *layer_as_SpaceToBatchNdLayer() const {
10382 return layer_type() == armnnSerializer::Layer_SpaceToBatchNdLayer ? static_cast<const armnnSerializer::SpaceToBatchNdLayer *>(layer()) : nullptr;
10383 }
10384 const armnnSerializer::DivisionLayer *layer_as_DivisionLayer() const {
10385 return layer_type() == armnnSerializer::Layer_DivisionLayer ? static_cast<const armnnSerializer::DivisionLayer *>(layer()) : nullptr;
10386 }
10387 const armnnSerializer::MinimumLayer *layer_as_MinimumLayer() const {
10388 return layer_type() == armnnSerializer::Layer_MinimumLayer ? static_cast<const armnnSerializer::MinimumLayer *>(layer()) : nullptr;
10389 }
10390 const armnnSerializer::EqualLayer *layer_as_EqualLayer() const {
10391 return layer_type() == armnnSerializer::Layer_EqualLayer ? static_cast<const armnnSerializer::EqualLayer *>(layer()) : nullptr;
10392 }
10393 const armnnSerializer::MaximumLayer *layer_as_MaximumLayer() const {
10394 return layer_type() == armnnSerializer::Layer_MaximumLayer ? static_cast<const armnnSerializer::MaximumLayer *>(layer()) : nullptr;
10395 }
10396 const armnnSerializer::NormalizationLayer *layer_as_NormalizationLayer() const {
10397 return layer_type() == armnnSerializer::Layer_NormalizationLayer ? static_cast<const armnnSerializer::NormalizationLayer *>(layer()) : nullptr;
10398 }
10399 const armnnSerializer::PadLayer *layer_as_PadLayer() const {
10400 return layer_type() == armnnSerializer::Layer_PadLayer ? static_cast<const armnnSerializer::PadLayer *>(layer()) : nullptr;
10401 }
10402 const armnnSerializer::RsqrtLayer *layer_as_RsqrtLayer() const {
10403 return layer_type() == armnnSerializer::Layer_RsqrtLayer ? static_cast<const armnnSerializer::RsqrtLayer *>(layer()) : nullptr;
10404 }
10405 const armnnSerializer::FloorLayer *layer_as_FloorLayer() const {
10406 return layer_type() == armnnSerializer::Layer_FloorLayer ? static_cast<const armnnSerializer::FloorLayer *>(layer()) : nullptr;
10407 }
10408 const armnnSerializer::GreaterLayer *layer_as_GreaterLayer() const {
10409 return layer_type() == armnnSerializer::Layer_GreaterLayer ? static_cast<const armnnSerializer::GreaterLayer *>(layer()) : nullptr;
10410 }
10411 const armnnSerializer::ResizeBilinearLayer *layer_as_ResizeBilinearLayer() const {
10412 return layer_type() == armnnSerializer::Layer_ResizeBilinearLayer ? static_cast<const armnnSerializer::ResizeBilinearLayer *>(layer()) : nullptr;
10413 }
10414 const armnnSerializer::SubtractionLayer *layer_as_SubtractionLayer() const {
10415 return layer_type() == armnnSerializer::Layer_SubtractionLayer ? static_cast<const armnnSerializer::SubtractionLayer *>(layer()) : nullptr;
10416 }
10417 const armnnSerializer::StridedSliceLayer *layer_as_StridedSliceLayer() const {
10418 return layer_type() == armnnSerializer::Layer_StridedSliceLayer ? static_cast<const armnnSerializer::StridedSliceLayer *>(layer()) : nullptr;
10419 }
10420 const armnnSerializer::GatherLayer *layer_as_GatherLayer() const {
10421 return layer_type() == armnnSerializer::Layer_GatherLayer ? static_cast<const armnnSerializer::GatherLayer *>(layer()) : nullptr;
10422 }
10423 const armnnSerializer::MeanLayer *layer_as_MeanLayer() const {
10424 return layer_type() == armnnSerializer::Layer_MeanLayer ? static_cast<const armnnSerializer::MeanLayer *>(layer()) : nullptr;
10425 }
10426 const armnnSerializer::MergerLayer *layer_as_MergerLayer() const {
10427 return layer_type() == armnnSerializer::Layer_MergerLayer ? static_cast<const armnnSerializer::MergerLayer *>(layer()) : nullptr;
10428 }
10429 const armnnSerializer::L2NormalizationLayer *layer_as_L2NormalizationLayer() const {
10430 return layer_type() == armnnSerializer::Layer_L2NormalizationLayer ? static_cast<const armnnSerializer::L2NormalizationLayer *>(layer()) : nullptr;
10431 }
10432 const armnnSerializer::SplitterLayer *layer_as_SplitterLayer() const {
10433 return layer_type() == armnnSerializer::Layer_SplitterLayer ? static_cast<const armnnSerializer::SplitterLayer *>(layer()) : nullptr;
10434 }
10435 const armnnSerializer::DetectionPostProcessLayer *layer_as_DetectionPostProcessLayer() const {
10436 return layer_type() == armnnSerializer::Layer_DetectionPostProcessLayer ? static_cast<const armnnSerializer::DetectionPostProcessLayer *>(layer()) : nullptr;
10437 }
10438 const armnnSerializer::LstmLayer *layer_as_LstmLayer() const {
10439 return layer_type() == armnnSerializer::Layer_LstmLayer ? static_cast<const armnnSerializer::LstmLayer *>(layer()) : nullptr;
10440 }
10441 const armnnSerializer::QuantizedLstmLayer *layer_as_QuantizedLstmLayer() const {
10442 return layer_type() == armnnSerializer::Layer_QuantizedLstmLayer ? static_cast<const armnnSerializer::QuantizedLstmLayer *>(layer()) : nullptr;
10443 }
10444 const armnnSerializer::QuantizeLayer *layer_as_QuantizeLayer() const {
10445 return layer_type() == armnnSerializer::Layer_QuantizeLayer ? static_cast<const armnnSerializer::QuantizeLayer *>(layer()) : nullptr;
10446 }
10447 const armnnSerializer::DequantizeLayer *layer_as_DequantizeLayer() const {
10448 return layer_type() == armnnSerializer::Layer_DequantizeLayer ? static_cast<const armnnSerializer::DequantizeLayer *>(layer()) : nullptr;
10449 }
10450 const armnnSerializer::MergeLayer *layer_as_MergeLayer() const {
10451 return layer_type() == armnnSerializer::Layer_MergeLayer ? static_cast<const armnnSerializer::MergeLayer *>(layer()) : nullptr;
10452 }
10453 const armnnSerializer::SwitchLayer *layer_as_SwitchLayer() const {
10454 return layer_type() == armnnSerializer::Layer_SwitchLayer ? static_cast<const armnnSerializer::SwitchLayer *>(layer()) : nullptr;
10455 }
10456 const armnnSerializer::ConcatLayer *layer_as_ConcatLayer() const {
10457 return layer_type() == armnnSerializer::Layer_ConcatLayer ? static_cast<const armnnSerializer::ConcatLayer *>(layer()) : nullptr;
10458 }
10459 const armnnSerializer::SpaceToDepthLayer *layer_as_SpaceToDepthLayer() const {
10460 return layer_type() == armnnSerializer::Layer_SpaceToDepthLayer ? static_cast<const armnnSerializer::SpaceToDepthLayer *>(layer()) : nullptr;
10461 }
10462 const armnnSerializer::PreluLayer *layer_as_PreluLayer() const {
10463 return layer_type() == armnnSerializer::Layer_PreluLayer ? static_cast<const armnnSerializer::PreluLayer *>(layer()) : nullptr;
10464 }
10465 const armnnSerializer::TransposeConvolution2dLayer *layer_as_TransposeConvolution2dLayer() const {
10466 return layer_type() == armnnSerializer::Layer_TransposeConvolution2dLayer ? static_cast<const armnnSerializer::TransposeConvolution2dLayer *>(layer()) : nullptr;
10467 }
10468 const armnnSerializer::ResizeLayer *layer_as_ResizeLayer() const {
10469 return layer_type() == armnnSerializer::Layer_ResizeLayer ? static_cast<const armnnSerializer::ResizeLayer *>(layer()) : nullptr;
10470 }
10471 const armnnSerializer::StackLayer *layer_as_StackLayer() const {
10472 return layer_type() == armnnSerializer::Layer_StackLayer ? static_cast<const armnnSerializer::StackLayer *>(layer()) : nullptr;
10473 }
10474 const armnnSerializer::AbsLayer *layer_as_AbsLayer() const {
10475 return layer_type() == armnnSerializer::Layer_AbsLayer ? static_cast<const armnnSerializer::AbsLayer *>(layer()) : nullptr;
10476 }
10477 const armnnSerializer::ArgMinMaxLayer *layer_as_ArgMinMaxLayer() const {
10478 return layer_type() == armnnSerializer::Layer_ArgMinMaxLayer ? static_cast<const armnnSerializer::ArgMinMaxLayer *>(layer()) : nullptr;
10479 }
10480 const armnnSerializer::SliceLayer *layer_as_SliceLayer() const {
10481 return layer_type() == armnnSerializer::Layer_SliceLayer ? static_cast<const armnnSerializer::SliceLayer *>(layer()) : nullptr;
10482 }
10483 const armnnSerializer::DepthToSpaceLayer *layer_as_DepthToSpaceLayer() const {
10484 return layer_type() == armnnSerializer::Layer_DepthToSpaceLayer ? static_cast<const armnnSerializer::DepthToSpaceLayer *>(layer()) : nullptr;
10485 }
10486 const armnnSerializer::InstanceNormalizationLayer *layer_as_InstanceNormalizationLayer() const {
10487 return layer_type() == armnnSerializer::Layer_InstanceNormalizationLayer ? static_cast<const armnnSerializer::InstanceNormalizationLayer *>(layer()) : nullptr;
10488 }
10489 const armnnSerializer::LogSoftmaxLayer *layer_as_LogSoftmaxLayer() const {
10490 return layer_type() == armnnSerializer::Layer_LogSoftmaxLayer ? static_cast<const armnnSerializer::LogSoftmaxLayer *>(layer()) : nullptr;
10491 }
10492 const armnnSerializer::ComparisonLayer *layer_as_ComparisonLayer() const {
10493 return layer_type() == armnnSerializer::Layer_ComparisonLayer ? static_cast<const armnnSerializer::ComparisonLayer *>(layer()) : nullptr;
10494 }
10495 const armnnSerializer::StandInLayer *layer_as_StandInLayer() const {
10496 return layer_type() == armnnSerializer::Layer_StandInLayer ? static_cast<const armnnSerializer::StandInLayer *>(layer()) : nullptr;
10497 }
10498 const armnnSerializer::ElementwiseUnaryLayer *layer_as_ElementwiseUnaryLayer() const {
10499 return layer_type() == armnnSerializer::Layer_ElementwiseUnaryLayer ? static_cast<const armnnSerializer::ElementwiseUnaryLayer *>(layer()) : nullptr;
10500 }
10501 const armnnSerializer::TransposeLayer *layer_as_TransposeLayer() const {
10502 return layer_type() == armnnSerializer::Layer_TransposeLayer ? static_cast<const armnnSerializer::TransposeLayer *>(layer()) : nullptr;
10503 }
10504 const armnnSerializer::QLstmLayer *layer_as_QLstmLayer() const {
10505 return layer_type() == armnnSerializer::Layer_QLstmLayer ? static_cast<const armnnSerializer::QLstmLayer *>(layer()) : nullptr;
10506 }
10507 const armnnSerializer::FillLayer *layer_as_FillLayer() const {
10508 return layer_type() == armnnSerializer::Layer_FillLayer ? static_cast<const armnnSerializer::FillLayer *>(layer()) : nullptr;
10509 }
10510 const armnnSerializer::RankLayer *layer_as_RankLayer() const {
10511 return layer_type() == armnnSerializer::Layer_RankLayer ? static_cast<const armnnSerializer::RankLayer *>(layer()) : nullptr;
10512 }
10513 const armnnSerializer::LogicalBinaryLayer *layer_as_LogicalBinaryLayer() const {
10514 return layer_type() == armnnSerializer::Layer_LogicalBinaryLayer ? static_cast<const armnnSerializer::LogicalBinaryLayer *>(layer()) : nullptr;
10515 }
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000010516 const armnnSerializer::ReduceLayer *layer_as_ReduceLayer() const {
10517 return layer_type() == armnnSerializer::Layer_ReduceLayer ? static_cast<const armnnSerializer::ReduceLayer *>(layer()) : nullptr;
10518 }
mathad01b392e982021-04-07 12:07:30 +010010519 const armnnSerializer::CastLayer *layer_as_CastLayer() const {
10520 return layer_type() == armnnSerializer::Layer_CastLayer ? static_cast<const armnnSerializer::CastLayer *>(layer()) : nullptr;
10521 }
Keith Davis3ae3f972021-05-21 16:33:48 +010010522 const armnnSerializer::ShapeLayer *layer_as_ShapeLayer() const {
10523 return layer_type() == armnnSerializer::Layer_ShapeLayer ? static_cast<const armnnSerializer::ShapeLayer *>(layer()) : nullptr;
10524 }
Narumol Prangnawarata0162e12021-07-23 14:47:49 +010010525 const armnnSerializer::UnidirectionalSequenceLstmLayer *layer_as_UnidirectionalSequenceLstmLayer() const {
10526 return layer_type() == armnnSerializer::Layer_UnidirectionalSequenceLstmLayer ? static_cast<const armnnSerializer::UnidirectionalSequenceLstmLayer *>(layer()) : nullptr;
10527 }
Simon Obute51f67772021-09-03 15:50:13 +010010528 const armnnSerializer::ChannelShuffleLayer *layer_as_ChannelShuffleLayer() const {
10529 return layer_type() == armnnSerializer::Layer_ChannelShuffleLayer ? static_cast<const armnnSerializer::ChannelShuffleLayer *>(layer()) : nullptr;
10530 }
Matthew Sloyanb63a3112021-09-08 13:05:51 +010010531 const armnnSerializer::Convolution3dLayer *layer_as_Convolution3dLayer() const {
10532 return layer_type() == armnnSerializer::Layer_Convolution3dLayer ? static_cast<const armnnSerializer::Convolution3dLayer *>(layer()) : nullptr;
10533 }
Tamas Nyirid998a1c2021-11-05 14:55:33 +000010534 const armnnSerializer::Pooling3dLayer *layer_as_Pooling3dLayer() const {
10535 return layer_type() == armnnSerializer::Layer_Pooling3dLayer ? static_cast<const armnnSerializer::Pooling3dLayer *>(layer()) : nullptr;
10536 }
Sadik Armagan97bf84f2021-01-13 15:06:38 +000010537 bool Verify(flatbuffers::Verifier &verifier) const {
10538 return VerifyTableStart(verifier) &&
10539 VerifyField<uint8_t>(verifier, VT_LAYER_TYPE) &&
10540 VerifyOffset(verifier, VT_LAYER) &&
10541 VerifyLayer(verifier, layer(), layer_type()) &&
10542 verifier.EndTable();
10543 }
10544};
10545
10546template<> inline const armnnSerializer::ActivationLayer *AnyLayer::layer_as<armnnSerializer::ActivationLayer>() const {
10547 return layer_as_ActivationLayer();
10548}
10549
10550template<> inline const armnnSerializer::AdditionLayer *AnyLayer::layer_as<armnnSerializer::AdditionLayer>() const {
10551 return layer_as_AdditionLayer();
10552}
10553
10554template<> inline const armnnSerializer::BatchToSpaceNdLayer *AnyLayer::layer_as<armnnSerializer::BatchToSpaceNdLayer>() const {
10555 return layer_as_BatchToSpaceNdLayer();
10556}
10557
10558template<> inline const armnnSerializer::BatchNormalizationLayer *AnyLayer::layer_as<armnnSerializer::BatchNormalizationLayer>() const {
10559 return layer_as_BatchNormalizationLayer();
10560}
10561
10562template<> inline const armnnSerializer::ConstantLayer *AnyLayer::layer_as<armnnSerializer::ConstantLayer>() const {
10563 return layer_as_ConstantLayer();
10564}
10565
10566template<> inline const armnnSerializer::Convolution2dLayer *AnyLayer::layer_as<armnnSerializer::Convolution2dLayer>() const {
10567 return layer_as_Convolution2dLayer();
10568}
10569
10570template<> inline const armnnSerializer::DepthwiseConvolution2dLayer *AnyLayer::layer_as<armnnSerializer::DepthwiseConvolution2dLayer>() const {
10571 return layer_as_DepthwiseConvolution2dLayer();
10572}
10573
10574template<> inline const armnnSerializer::FullyConnectedLayer *AnyLayer::layer_as<armnnSerializer::FullyConnectedLayer>() const {
10575 return layer_as_FullyConnectedLayer();
10576}
10577
10578template<> inline const armnnSerializer::InputLayer *AnyLayer::layer_as<armnnSerializer::InputLayer>() const {
10579 return layer_as_InputLayer();
10580}
10581
10582template<> inline const armnnSerializer::MultiplicationLayer *AnyLayer::layer_as<armnnSerializer::MultiplicationLayer>() const {
10583 return layer_as_MultiplicationLayer();
10584}
10585
10586template<> inline const armnnSerializer::OutputLayer *AnyLayer::layer_as<armnnSerializer::OutputLayer>() const {
10587 return layer_as_OutputLayer();
10588}
10589
10590template<> inline const armnnSerializer::PermuteLayer *AnyLayer::layer_as<armnnSerializer::PermuteLayer>() const {
10591 return layer_as_PermuteLayer();
10592}
10593
10594template<> inline const armnnSerializer::Pooling2dLayer *AnyLayer::layer_as<armnnSerializer::Pooling2dLayer>() const {
10595 return layer_as_Pooling2dLayer();
10596}
10597
10598template<> inline const armnnSerializer::ReshapeLayer *AnyLayer::layer_as<armnnSerializer::ReshapeLayer>() const {
10599 return layer_as_ReshapeLayer();
10600}
10601
10602template<> inline const armnnSerializer::SoftmaxLayer *AnyLayer::layer_as<armnnSerializer::SoftmaxLayer>() const {
10603 return layer_as_SoftmaxLayer();
10604}
10605
10606template<> inline const armnnSerializer::SpaceToBatchNdLayer *AnyLayer::layer_as<armnnSerializer::SpaceToBatchNdLayer>() const {
10607 return layer_as_SpaceToBatchNdLayer();
10608}
10609
10610template<> inline const armnnSerializer::DivisionLayer *AnyLayer::layer_as<armnnSerializer::DivisionLayer>() const {
10611 return layer_as_DivisionLayer();
10612}
10613
10614template<> inline const armnnSerializer::MinimumLayer *AnyLayer::layer_as<armnnSerializer::MinimumLayer>() const {
10615 return layer_as_MinimumLayer();
10616}
10617
10618template<> inline const armnnSerializer::EqualLayer *AnyLayer::layer_as<armnnSerializer::EqualLayer>() const {
10619 return layer_as_EqualLayer();
10620}
10621
10622template<> inline const armnnSerializer::MaximumLayer *AnyLayer::layer_as<armnnSerializer::MaximumLayer>() const {
10623 return layer_as_MaximumLayer();
10624}
10625
10626template<> inline const armnnSerializer::NormalizationLayer *AnyLayer::layer_as<armnnSerializer::NormalizationLayer>() const {
10627 return layer_as_NormalizationLayer();
10628}
10629
10630template<> inline const armnnSerializer::PadLayer *AnyLayer::layer_as<armnnSerializer::PadLayer>() const {
10631 return layer_as_PadLayer();
10632}
10633
10634template<> inline const armnnSerializer::RsqrtLayer *AnyLayer::layer_as<armnnSerializer::RsqrtLayer>() const {
10635 return layer_as_RsqrtLayer();
10636}
10637
10638template<> inline const armnnSerializer::FloorLayer *AnyLayer::layer_as<armnnSerializer::FloorLayer>() const {
10639 return layer_as_FloorLayer();
10640}
10641
10642template<> inline const armnnSerializer::GreaterLayer *AnyLayer::layer_as<armnnSerializer::GreaterLayer>() const {
10643 return layer_as_GreaterLayer();
10644}
10645
10646template<> inline const armnnSerializer::ResizeBilinearLayer *AnyLayer::layer_as<armnnSerializer::ResizeBilinearLayer>() const {
10647 return layer_as_ResizeBilinearLayer();
10648}
10649
10650template<> inline const armnnSerializer::SubtractionLayer *AnyLayer::layer_as<armnnSerializer::SubtractionLayer>() const {
10651 return layer_as_SubtractionLayer();
10652}
10653
10654template<> inline const armnnSerializer::StridedSliceLayer *AnyLayer::layer_as<armnnSerializer::StridedSliceLayer>() const {
10655 return layer_as_StridedSliceLayer();
10656}
10657
10658template<> inline const armnnSerializer::GatherLayer *AnyLayer::layer_as<armnnSerializer::GatherLayer>() const {
10659 return layer_as_GatherLayer();
10660}
10661
10662template<> inline const armnnSerializer::MeanLayer *AnyLayer::layer_as<armnnSerializer::MeanLayer>() const {
10663 return layer_as_MeanLayer();
10664}
10665
10666template<> inline const armnnSerializer::MergerLayer *AnyLayer::layer_as<armnnSerializer::MergerLayer>() const {
10667 return layer_as_MergerLayer();
10668}
10669
10670template<> inline const armnnSerializer::L2NormalizationLayer *AnyLayer::layer_as<armnnSerializer::L2NormalizationLayer>() const {
10671 return layer_as_L2NormalizationLayer();
10672}
10673
10674template<> inline const armnnSerializer::SplitterLayer *AnyLayer::layer_as<armnnSerializer::SplitterLayer>() const {
10675 return layer_as_SplitterLayer();
10676}
10677
10678template<> inline const armnnSerializer::DetectionPostProcessLayer *AnyLayer::layer_as<armnnSerializer::DetectionPostProcessLayer>() const {
10679 return layer_as_DetectionPostProcessLayer();
10680}
10681
10682template<> inline const armnnSerializer::LstmLayer *AnyLayer::layer_as<armnnSerializer::LstmLayer>() const {
10683 return layer_as_LstmLayer();
10684}
10685
10686template<> inline const armnnSerializer::QuantizedLstmLayer *AnyLayer::layer_as<armnnSerializer::QuantizedLstmLayer>() const {
10687 return layer_as_QuantizedLstmLayer();
10688}
10689
10690template<> inline const armnnSerializer::QuantizeLayer *AnyLayer::layer_as<armnnSerializer::QuantizeLayer>() const {
10691 return layer_as_QuantizeLayer();
10692}
10693
10694template<> inline const armnnSerializer::DequantizeLayer *AnyLayer::layer_as<armnnSerializer::DequantizeLayer>() const {
10695 return layer_as_DequantizeLayer();
10696}
10697
10698template<> inline const armnnSerializer::MergeLayer *AnyLayer::layer_as<armnnSerializer::MergeLayer>() const {
10699 return layer_as_MergeLayer();
10700}
10701
10702template<> inline const armnnSerializer::SwitchLayer *AnyLayer::layer_as<armnnSerializer::SwitchLayer>() const {
10703 return layer_as_SwitchLayer();
10704}
10705
10706template<> inline const armnnSerializer::ConcatLayer *AnyLayer::layer_as<armnnSerializer::ConcatLayer>() const {
10707 return layer_as_ConcatLayer();
10708}
10709
10710template<> inline const armnnSerializer::SpaceToDepthLayer *AnyLayer::layer_as<armnnSerializer::SpaceToDepthLayer>() const {
10711 return layer_as_SpaceToDepthLayer();
10712}
10713
10714template<> inline const armnnSerializer::PreluLayer *AnyLayer::layer_as<armnnSerializer::PreluLayer>() const {
10715 return layer_as_PreluLayer();
10716}
10717
10718template<> inline const armnnSerializer::TransposeConvolution2dLayer *AnyLayer::layer_as<armnnSerializer::TransposeConvolution2dLayer>() const {
10719 return layer_as_TransposeConvolution2dLayer();
10720}
10721
10722template<> inline const armnnSerializer::ResizeLayer *AnyLayer::layer_as<armnnSerializer::ResizeLayer>() const {
10723 return layer_as_ResizeLayer();
10724}
10725
10726template<> inline const armnnSerializer::StackLayer *AnyLayer::layer_as<armnnSerializer::StackLayer>() const {
10727 return layer_as_StackLayer();
10728}
10729
10730template<> inline const armnnSerializer::AbsLayer *AnyLayer::layer_as<armnnSerializer::AbsLayer>() const {
10731 return layer_as_AbsLayer();
10732}
10733
10734template<> inline const armnnSerializer::ArgMinMaxLayer *AnyLayer::layer_as<armnnSerializer::ArgMinMaxLayer>() const {
10735 return layer_as_ArgMinMaxLayer();
10736}
10737
10738template<> inline const armnnSerializer::SliceLayer *AnyLayer::layer_as<armnnSerializer::SliceLayer>() const {
10739 return layer_as_SliceLayer();
10740}
10741
10742template<> inline const armnnSerializer::DepthToSpaceLayer *AnyLayer::layer_as<armnnSerializer::DepthToSpaceLayer>() const {
10743 return layer_as_DepthToSpaceLayer();
10744}
10745
10746template<> inline const armnnSerializer::InstanceNormalizationLayer *AnyLayer::layer_as<armnnSerializer::InstanceNormalizationLayer>() const {
10747 return layer_as_InstanceNormalizationLayer();
10748}
10749
10750template<> inline const armnnSerializer::LogSoftmaxLayer *AnyLayer::layer_as<armnnSerializer::LogSoftmaxLayer>() const {
10751 return layer_as_LogSoftmaxLayer();
10752}
10753
10754template<> inline const armnnSerializer::ComparisonLayer *AnyLayer::layer_as<armnnSerializer::ComparisonLayer>() const {
10755 return layer_as_ComparisonLayer();
10756}
10757
10758template<> inline const armnnSerializer::StandInLayer *AnyLayer::layer_as<armnnSerializer::StandInLayer>() const {
10759 return layer_as_StandInLayer();
10760}
10761
10762template<> inline const armnnSerializer::ElementwiseUnaryLayer *AnyLayer::layer_as<armnnSerializer::ElementwiseUnaryLayer>() const {
10763 return layer_as_ElementwiseUnaryLayer();
10764}
10765
10766template<> inline const armnnSerializer::TransposeLayer *AnyLayer::layer_as<armnnSerializer::TransposeLayer>() const {
10767 return layer_as_TransposeLayer();
10768}
10769
10770template<> inline const armnnSerializer::QLstmLayer *AnyLayer::layer_as<armnnSerializer::QLstmLayer>() const {
10771 return layer_as_QLstmLayer();
10772}
10773
10774template<> inline const armnnSerializer::FillLayer *AnyLayer::layer_as<armnnSerializer::FillLayer>() const {
10775 return layer_as_FillLayer();
10776}
10777
10778template<> inline const armnnSerializer::RankLayer *AnyLayer::layer_as<armnnSerializer::RankLayer>() const {
10779 return layer_as_RankLayer();
10780}
10781
10782template<> inline const armnnSerializer::LogicalBinaryLayer *AnyLayer::layer_as<armnnSerializer::LogicalBinaryLayer>() const {
10783 return layer_as_LogicalBinaryLayer();
10784}
10785
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000010786template<> inline const armnnSerializer::ReduceLayer *AnyLayer::layer_as<armnnSerializer::ReduceLayer>() const {
10787 return layer_as_ReduceLayer();
10788}
10789
mathad01b392e982021-04-07 12:07:30 +010010790template<> inline const armnnSerializer::CastLayer *AnyLayer::layer_as<armnnSerializer::CastLayer>() const {
10791 return layer_as_CastLayer();
10792}
10793
Keith Davis3ae3f972021-05-21 16:33:48 +010010794template<> inline const armnnSerializer::ShapeLayer *AnyLayer::layer_as<armnnSerializer::ShapeLayer>() const {
10795 return layer_as_ShapeLayer();
10796}
10797
Narumol Prangnawarata0162e12021-07-23 14:47:49 +010010798template<> inline const armnnSerializer::UnidirectionalSequenceLstmLayer *AnyLayer::layer_as<armnnSerializer::UnidirectionalSequenceLstmLayer>() const {
10799 return layer_as_UnidirectionalSequenceLstmLayer();
10800}
10801
Simon Obute51f67772021-09-03 15:50:13 +010010802template<> inline const armnnSerializer::ChannelShuffleLayer *AnyLayer::layer_as<armnnSerializer::ChannelShuffleLayer>() const {
10803 return layer_as_ChannelShuffleLayer();
10804}
10805
Matthew Sloyanb63a3112021-09-08 13:05:51 +010010806template<> inline const armnnSerializer::Convolution3dLayer *AnyLayer::layer_as<armnnSerializer::Convolution3dLayer>() const {
10807 return layer_as_Convolution3dLayer();
10808}
10809
Tamas Nyirid998a1c2021-11-05 14:55:33 +000010810template<> inline const armnnSerializer::Pooling3dLayer *AnyLayer::layer_as<armnnSerializer::Pooling3dLayer>() const {
10811 return layer_as_Pooling3dLayer();
10812}
10813
Sadik Armagan97bf84f2021-01-13 15:06:38 +000010814struct AnyLayerBuilder {
10815 typedef AnyLayer Table;
10816 flatbuffers::FlatBufferBuilder &fbb_;
10817 flatbuffers::uoffset_t start_;
10818 void add_layer_type(armnnSerializer::Layer layer_type) {
10819 fbb_.AddElement<uint8_t>(AnyLayer::VT_LAYER_TYPE, static_cast<uint8_t>(layer_type), 0);
10820 }
10821 void add_layer(flatbuffers::Offset<void> layer) {
10822 fbb_.AddOffset(AnyLayer::VT_LAYER, layer);
10823 }
10824 explicit AnyLayerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
10825 : fbb_(_fbb) {
10826 start_ = fbb_.StartTable();
10827 }
10828 AnyLayerBuilder &operator=(const AnyLayerBuilder &);
10829 flatbuffers::Offset<AnyLayer> Finish() {
10830 const auto end = fbb_.EndTable(start_);
10831 auto o = flatbuffers::Offset<AnyLayer>(end);
10832 return o;
10833 }
10834};
10835
10836inline flatbuffers::Offset<AnyLayer> CreateAnyLayer(
10837 flatbuffers::FlatBufferBuilder &_fbb,
10838 armnnSerializer::Layer layer_type = armnnSerializer::Layer_NONE,
10839 flatbuffers::Offset<void> layer = 0) {
10840 AnyLayerBuilder builder_(_fbb);
10841 builder_.add_layer(layer);
10842 builder_.add_layer_type(layer_type);
10843 return builder_.Finish();
10844}
10845
10846struct FeatureCompatibilityVersions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
10847 typedef FeatureCompatibilityVersionsBuilder Builder;
10848 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Jan Eilers53ef7952021-06-02 12:01:25 +010010849 VT_BINDINGIDSSCHEME = 4,
Matthew Sloyan81beae32021-07-13 19:46:11 +010010850 VT_WEIGHTSLAYOUTSCHEME = 6,
10851 VT_CONSTANTTENSORSASINPUTS = 8
Sadik Armagan97bf84f2021-01-13 15:06:38 +000010852 };
10853 uint32_t bindingIdsScheme() const {
10854 return GetField<uint32_t>(VT_BINDINGIDSSCHEME, 0);
10855 }
Jan Eilers53ef7952021-06-02 12:01:25 +010010856 uint32_t weightsLayoutScheme() const {
10857 return GetField<uint32_t>(VT_WEIGHTSLAYOUTSCHEME, 0);
10858 }
Matthew Sloyan81beae32021-07-13 19:46:11 +010010859 uint32_t constantTensorsAsInputs() const {
10860 return GetField<uint32_t>(VT_CONSTANTTENSORSASINPUTS, 0);
10861 }
Sadik Armagan97bf84f2021-01-13 15:06:38 +000010862 bool Verify(flatbuffers::Verifier &verifier) const {
10863 return VerifyTableStart(verifier) &&
10864 VerifyField<uint32_t>(verifier, VT_BINDINGIDSSCHEME) &&
Jan Eilers53ef7952021-06-02 12:01:25 +010010865 VerifyField<uint32_t>(verifier, VT_WEIGHTSLAYOUTSCHEME) &&
Matthew Sloyan81beae32021-07-13 19:46:11 +010010866 VerifyField<uint32_t>(verifier, VT_CONSTANTTENSORSASINPUTS) &&
Sadik Armagan97bf84f2021-01-13 15:06:38 +000010867 verifier.EndTable();
10868 }
10869};
10870
10871struct FeatureCompatibilityVersionsBuilder {
10872 typedef FeatureCompatibilityVersions Table;
10873 flatbuffers::FlatBufferBuilder &fbb_;
10874 flatbuffers::uoffset_t start_;
10875 void add_bindingIdsScheme(uint32_t bindingIdsScheme) {
10876 fbb_.AddElement<uint32_t>(FeatureCompatibilityVersions::VT_BINDINGIDSSCHEME, bindingIdsScheme, 0);
10877 }
Jan Eilers53ef7952021-06-02 12:01:25 +010010878 void add_weightsLayoutScheme(uint32_t weightsLayoutScheme) {
10879 fbb_.AddElement<uint32_t>(FeatureCompatibilityVersions::VT_WEIGHTSLAYOUTSCHEME, weightsLayoutScheme, 0);
10880 }
Matthew Sloyan81beae32021-07-13 19:46:11 +010010881 void add_constantTensorsAsInputs(uint32_t constantTensorsAsInputs) {
10882 fbb_.AddElement<uint32_t>(FeatureCompatibilityVersions::VT_CONSTANTTENSORSASINPUTS, constantTensorsAsInputs, 0);
10883 }
Sadik Armagan97bf84f2021-01-13 15:06:38 +000010884 explicit FeatureCompatibilityVersionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
10885 : fbb_(_fbb) {
10886 start_ = fbb_.StartTable();
10887 }
10888 FeatureCompatibilityVersionsBuilder &operator=(const FeatureCompatibilityVersionsBuilder &);
10889 flatbuffers::Offset<FeatureCompatibilityVersions> Finish() {
10890 const auto end = fbb_.EndTable(start_);
10891 auto o = flatbuffers::Offset<FeatureCompatibilityVersions>(end);
10892 return o;
10893 }
10894};
10895
10896inline flatbuffers::Offset<FeatureCompatibilityVersions> CreateFeatureCompatibilityVersions(
10897 flatbuffers::FlatBufferBuilder &_fbb,
Jan Eilers53ef7952021-06-02 12:01:25 +010010898 uint32_t bindingIdsScheme = 0,
Matthew Sloyan81beae32021-07-13 19:46:11 +010010899 uint32_t weightsLayoutScheme = 0,
10900 uint32_t constantTensorsAsInputs = 0) {
Sadik Armagan97bf84f2021-01-13 15:06:38 +000010901 FeatureCompatibilityVersionsBuilder builder_(_fbb);
Matthew Sloyan81beae32021-07-13 19:46:11 +010010902 builder_.add_constantTensorsAsInputs(constantTensorsAsInputs);
Jan Eilers53ef7952021-06-02 12:01:25 +010010903 builder_.add_weightsLayoutScheme(weightsLayoutScheme);
Sadik Armagan97bf84f2021-01-13 15:06:38 +000010904 builder_.add_bindingIdsScheme(bindingIdsScheme);
10905 return builder_.Finish();
10906}
10907
10908struct SerializedGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
10909 typedef SerializedGraphBuilder Builder;
10910 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
10911 VT_LAYERS = 4,
10912 VT_INPUTIDS = 6,
10913 VT_OUTPUTIDS = 8,
10914 VT_FEATUREVERSIONS = 10
10915 };
10916 const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::AnyLayer>> *layers() const {
10917 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::AnyLayer>> *>(VT_LAYERS);
10918 }
10919 const flatbuffers::Vector<int32_t> *inputIds() const {
10920 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_INPUTIDS);
10921 }
10922 const flatbuffers::Vector<int32_t> *outputIds() const {
10923 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUTIDS);
10924 }
10925 const armnnSerializer::FeatureCompatibilityVersions *featureVersions() const {
10926 return GetPointer<const armnnSerializer::FeatureCompatibilityVersions *>(VT_FEATUREVERSIONS);
10927 }
10928 bool Verify(flatbuffers::Verifier &verifier) const {
10929 return VerifyTableStart(verifier) &&
10930 VerifyOffset(verifier, VT_LAYERS) &&
10931 verifier.VerifyVector(layers()) &&
10932 verifier.VerifyVectorOfTables(layers()) &&
10933 VerifyOffset(verifier, VT_INPUTIDS) &&
10934 verifier.VerifyVector(inputIds()) &&
10935 VerifyOffset(verifier, VT_OUTPUTIDS) &&
10936 verifier.VerifyVector(outputIds()) &&
10937 VerifyOffset(verifier, VT_FEATUREVERSIONS) &&
10938 verifier.VerifyTable(featureVersions()) &&
10939 verifier.EndTable();
10940 }
10941};
10942
10943struct SerializedGraphBuilder {
10944 typedef SerializedGraph Table;
10945 flatbuffers::FlatBufferBuilder &fbb_;
10946 flatbuffers::uoffset_t start_;
10947 void add_layers(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::AnyLayer>>> layers) {
10948 fbb_.AddOffset(SerializedGraph::VT_LAYERS, layers);
10949 }
10950 void add_inputIds(flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputIds) {
10951 fbb_.AddOffset(SerializedGraph::VT_INPUTIDS, inputIds);
10952 }
10953 void add_outputIds(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputIds) {
10954 fbb_.AddOffset(SerializedGraph::VT_OUTPUTIDS, outputIds);
10955 }
10956 void add_featureVersions(flatbuffers::Offset<armnnSerializer::FeatureCompatibilityVersions> featureVersions) {
10957 fbb_.AddOffset(SerializedGraph::VT_FEATUREVERSIONS, featureVersions);
10958 }
10959 explicit SerializedGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
10960 : fbb_(_fbb) {
10961 start_ = fbb_.StartTable();
10962 }
10963 SerializedGraphBuilder &operator=(const SerializedGraphBuilder &);
10964 flatbuffers::Offset<SerializedGraph> Finish() {
10965 const auto end = fbb_.EndTable(start_);
10966 auto o = flatbuffers::Offset<SerializedGraph>(end);
10967 return o;
10968 }
10969};
10970
10971inline flatbuffers::Offset<SerializedGraph> CreateSerializedGraph(
10972 flatbuffers::FlatBufferBuilder &_fbb,
10973 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<armnnSerializer::AnyLayer>>> layers = 0,
10974 flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputIds = 0,
10975 flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputIds = 0,
10976 flatbuffers::Offset<armnnSerializer::FeatureCompatibilityVersions> featureVersions = 0) {
10977 SerializedGraphBuilder builder_(_fbb);
10978 builder_.add_featureVersions(featureVersions);
10979 builder_.add_outputIds(outputIds);
10980 builder_.add_inputIds(inputIds);
10981 builder_.add_layers(layers);
10982 return builder_.Finish();
10983}
10984
10985inline flatbuffers::Offset<SerializedGraph> CreateSerializedGraphDirect(
10986 flatbuffers::FlatBufferBuilder &_fbb,
10987 const std::vector<flatbuffers::Offset<armnnSerializer::AnyLayer>> *layers = nullptr,
10988 const std::vector<int32_t> *inputIds = nullptr,
10989 const std::vector<int32_t> *outputIds = nullptr,
10990 flatbuffers::Offset<armnnSerializer::FeatureCompatibilityVersions> featureVersions = 0) {
10991 auto layers__ = layers ? _fbb.CreateVector<flatbuffers::Offset<armnnSerializer::AnyLayer>>(*layers) : 0;
10992 auto inputIds__ = inputIds ? _fbb.CreateVector<int32_t>(*inputIds) : 0;
10993 auto outputIds__ = outputIds ? _fbb.CreateVector<int32_t>(*outputIds) : 0;
10994 return armnnSerializer::CreateSerializedGraph(
10995 _fbb,
10996 layers__,
10997 inputIds__,
10998 outputIds__,
10999 featureVersions);
11000}
11001
11002inline bool VerifyConstTensorData(flatbuffers::Verifier &verifier, const void *obj, ConstTensorData type) {
11003 switch (type) {
11004 case ConstTensorData_NONE: {
11005 return true;
11006 }
11007 case ConstTensorData_ByteData: {
11008 auto ptr = reinterpret_cast<const armnnSerializer::ByteData *>(obj);
11009 return verifier.VerifyTable(ptr);
11010 }
11011 case ConstTensorData_ShortData: {
11012 auto ptr = reinterpret_cast<const armnnSerializer::ShortData *>(obj);
11013 return verifier.VerifyTable(ptr);
11014 }
11015 case ConstTensorData_IntData: {
11016 auto ptr = reinterpret_cast<const armnnSerializer::IntData *>(obj);
11017 return verifier.VerifyTable(ptr);
11018 }
11019 case ConstTensorData_LongData: {
11020 auto ptr = reinterpret_cast<const armnnSerializer::LongData *>(obj);
11021 return verifier.VerifyTable(ptr);
11022 }
11023 default: return true;
11024 }
11025}
11026
11027inline bool VerifyConstTensorDataVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
11028 if (!values || !types) return !values && !types;
11029 if (values->size() != types->size()) return false;
11030 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
11031 if (!VerifyConstTensorData(
11032 verifier, values->Get(i), types->GetEnum<ConstTensorData>(i))) {
11033 return false;
11034 }
11035 }
11036 return true;
11037}
11038
11039inline bool VerifyLayer(flatbuffers::Verifier &verifier, const void *obj, Layer type) {
11040 switch (type) {
11041 case Layer_NONE: {
11042 return true;
11043 }
11044 case Layer_ActivationLayer: {
11045 auto ptr = reinterpret_cast<const armnnSerializer::ActivationLayer *>(obj);
11046 return verifier.VerifyTable(ptr);
11047 }
11048 case Layer_AdditionLayer: {
11049 auto ptr = reinterpret_cast<const armnnSerializer::AdditionLayer *>(obj);
11050 return verifier.VerifyTable(ptr);
11051 }
11052 case Layer_BatchToSpaceNdLayer: {
11053 auto ptr = reinterpret_cast<const armnnSerializer::BatchToSpaceNdLayer *>(obj);
11054 return verifier.VerifyTable(ptr);
11055 }
11056 case Layer_BatchNormalizationLayer: {
11057 auto ptr = reinterpret_cast<const armnnSerializer::BatchNormalizationLayer *>(obj);
11058 return verifier.VerifyTable(ptr);
11059 }
11060 case Layer_ConstantLayer: {
11061 auto ptr = reinterpret_cast<const armnnSerializer::ConstantLayer *>(obj);
11062 return verifier.VerifyTable(ptr);
11063 }
11064 case Layer_Convolution2dLayer: {
11065 auto ptr = reinterpret_cast<const armnnSerializer::Convolution2dLayer *>(obj);
11066 return verifier.VerifyTable(ptr);
11067 }
11068 case Layer_DepthwiseConvolution2dLayer: {
11069 auto ptr = reinterpret_cast<const armnnSerializer::DepthwiseConvolution2dLayer *>(obj);
11070 return verifier.VerifyTable(ptr);
11071 }
11072 case Layer_FullyConnectedLayer: {
11073 auto ptr = reinterpret_cast<const armnnSerializer::FullyConnectedLayer *>(obj);
11074 return verifier.VerifyTable(ptr);
11075 }
11076 case Layer_InputLayer: {
11077 auto ptr = reinterpret_cast<const armnnSerializer::InputLayer *>(obj);
11078 return verifier.VerifyTable(ptr);
11079 }
11080 case Layer_MultiplicationLayer: {
11081 auto ptr = reinterpret_cast<const armnnSerializer::MultiplicationLayer *>(obj);
11082 return verifier.VerifyTable(ptr);
11083 }
11084 case Layer_OutputLayer: {
11085 auto ptr = reinterpret_cast<const armnnSerializer::OutputLayer *>(obj);
11086 return verifier.VerifyTable(ptr);
11087 }
11088 case Layer_PermuteLayer: {
11089 auto ptr = reinterpret_cast<const armnnSerializer::PermuteLayer *>(obj);
11090 return verifier.VerifyTable(ptr);
11091 }
11092 case Layer_Pooling2dLayer: {
11093 auto ptr = reinterpret_cast<const armnnSerializer::Pooling2dLayer *>(obj);
11094 return verifier.VerifyTable(ptr);
11095 }
11096 case Layer_ReshapeLayer: {
11097 auto ptr = reinterpret_cast<const armnnSerializer::ReshapeLayer *>(obj);
11098 return verifier.VerifyTable(ptr);
11099 }
11100 case Layer_SoftmaxLayer: {
11101 auto ptr = reinterpret_cast<const armnnSerializer::SoftmaxLayer *>(obj);
11102 return verifier.VerifyTable(ptr);
11103 }
11104 case Layer_SpaceToBatchNdLayer: {
11105 auto ptr = reinterpret_cast<const armnnSerializer::SpaceToBatchNdLayer *>(obj);
11106 return verifier.VerifyTable(ptr);
11107 }
11108 case Layer_DivisionLayer: {
11109 auto ptr = reinterpret_cast<const armnnSerializer::DivisionLayer *>(obj);
11110 return verifier.VerifyTable(ptr);
11111 }
11112 case Layer_MinimumLayer: {
11113 auto ptr = reinterpret_cast<const armnnSerializer::MinimumLayer *>(obj);
11114 return verifier.VerifyTable(ptr);
11115 }
11116 case Layer_EqualLayer: {
11117 auto ptr = reinterpret_cast<const armnnSerializer::EqualLayer *>(obj);
11118 return verifier.VerifyTable(ptr);
11119 }
11120 case Layer_MaximumLayer: {
11121 auto ptr = reinterpret_cast<const armnnSerializer::MaximumLayer *>(obj);
11122 return verifier.VerifyTable(ptr);
11123 }
11124 case Layer_NormalizationLayer: {
11125 auto ptr = reinterpret_cast<const armnnSerializer::NormalizationLayer *>(obj);
11126 return verifier.VerifyTable(ptr);
11127 }
11128 case Layer_PadLayer: {
11129 auto ptr = reinterpret_cast<const armnnSerializer::PadLayer *>(obj);
11130 return verifier.VerifyTable(ptr);
11131 }
11132 case Layer_RsqrtLayer: {
11133 auto ptr = reinterpret_cast<const armnnSerializer::RsqrtLayer *>(obj);
11134 return verifier.VerifyTable(ptr);
11135 }
11136 case Layer_FloorLayer: {
11137 auto ptr = reinterpret_cast<const armnnSerializer::FloorLayer *>(obj);
11138 return verifier.VerifyTable(ptr);
11139 }
11140 case Layer_GreaterLayer: {
11141 auto ptr = reinterpret_cast<const armnnSerializer::GreaterLayer *>(obj);
11142 return verifier.VerifyTable(ptr);
11143 }
11144 case Layer_ResizeBilinearLayer: {
11145 auto ptr = reinterpret_cast<const armnnSerializer::ResizeBilinearLayer *>(obj);
11146 return verifier.VerifyTable(ptr);
11147 }
11148 case Layer_SubtractionLayer: {
11149 auto ptr = reinterpret_cast<const armnnSerializer::SubtractionLayer *>(obj);
11150 return verifier.VerifyTable(ptr);
11151 }
11152 case Layer_StridedSliceLayer: {
11153 auto ptr = reinterpret_cast<const armnnSerializer::StridedSliceLayer *>(obj);
11154 return verifier.VerifyTable(ptr);
11155 }
11156 case Layer_GatherLayer: {
11157 auto ptr = reinterpret_cast<const armnnSerializer::GatherLayer *>(obj);
11158 return verifier.VerifyTable(ptr);
11159 }
11160 case Layer_MeanLayer: {
11161 auto ptr = reinterpret_cast<const armnnSerializer::MeanLayer *>(obj);
11162 return verifier.VerifyTable(ptr);
11163 }
11164 case Layer_MergerLayer: {
11165 auto ptr = reinterpret_cast<const armnnSerializer::MergerLayer *>(obj);
11166 return verifier.VerifyTable(ptr);
11167 }
11168 case Layer_L2NormalizationLayer: {
11169 auto ptr = reinterpret_cast<const armnnSerializer::L2NormalizationLayer *>(obj);
11170 return verifier.VerifyTable(ptr);
11171 }
11172 case Layer_SplitterLayer: {
11173 auto ptr = reinterpret_cast<const armnnSerializer::SplitterLayer *>(obj);
11174 return verifier.VerifyTable(ptr);
11175 }
11176 case Layer_DetectionPostProcessLayer: {
11177 auto ptr = reinterpret_cast<const armnnSerializer::DetectionPostProcessLayer *>(obj);
11178 return verifier.VerifyTable(ptr);
11179 }
11180 case Layer_LstmLayer: {
11181 auto ptr = reinterpret_cast<const armnnSerializer::LstmLayer *>(obj);
11182 return verifier.VerifyTable(ptr);
11183 }
11184 case Layer_QuantizedLstmLayer: {
11185 auto ptr = reinterpret_cast<const armnnSerializer::QuantizedLstmLayer *>(obj);
11186 return verifier.VerifyTable(ptr);
11187 }
11188 case Layer_QuantizeLayer: {
11189 auto ptr = reinterpret_cast<const armnnSerializer::QuantizeLayer *>(obj);
11190 return verifier.VerifyTable(ptr);
11191 }
11192 case Layer_DequantizeLayer: {
11193 auto ptr = reinterpret_cast<const armnnSerializer::DequantizeLayer *>(obj);
11194 return verifier.VerifyTable(ptr);
11195 }
11196 case Layer_MergeLayer: {
11197 auto ptr = reinterpret_cast<const armnnSerializer::MergeLayer *>(obj);
11198 return verifier.VerifyTable(ptr);
11199 }
11200 case Layer_SwitchLayer: {
11201 auto ptr = reinterpret_cast<const armnnSerializer::SwitchLayer *>(obj);
11202 return verifier.VerifyTable(ptr);
11203 }
11204 case Layer_ConcatLayer: {
11205 auto ptr = reinterpret_cast<const armnnSerializer::ConcatLayer *>(obj);
11206 return verifier.VerifyTable(ptr);
11207 }
11208 case Layer_SpaceToDepthLayer: {
11209 auto ptr = reinterpret_cast<const armnnSerializer::SpaceToDepthLayer *>(obj);
11210 return verifier.VerifyTable(ptr);
11211 }
11212 case Layer_PreluLayer: {
11213 auto ptr = reinterpret_cast<const armnnSerializer::PreluLayer *>(obj);
11214 return verifier.VerifyTable(ptr);
11215 }
11216 case Layer_TransposeConvolution2dLayer: {
11217 auto ptr = reinterpret_cast<const armnnSerializer::TransposeConvolution2dLayer *>(obj);
11218 return verifier.VerifyTable(ptr);
11219 }
11220 case Layer_ResizeLayer: {
11221 auto ptr = reinterpret_cast<const armnnSerializer::ResizeLayer *>(obj);
11222 return verifier.VerifyTable(ptr);
11223 }
11224 case Layer_StackLayer: {
11225 auto ptr = reinterpret_cast<const armnnSerializer::StackLayer *>(obj);
11226 return verifier.VerifyTable(ptr);
11227 }
11228 case Layer_AbsLayer: {
11229 auto ptr = reinterpret_cast<const armnnSerializer::AbsLayer *>(obj);
11230 return verifier.VerifyTable(ptr);
11231 }
11232 case Layer_ArgMinMaxLayer: {
11233 auto ptr = reinterpret_cast<const armnnSerializer::ArgMinMaxLayer *>(obj);
11234 return verifier.VerifyTable(ptr);
11235 }
11236 case Layer_SliceLayer: {
11237 auto ptr = reinterpret_cast<const armnnSerializer::SliceLayer *>(obj);
11238 return verifier.VerifyTable(ptr);
11239 }
11240 case Layer_DepthToSpaceLayer: {
11241 auto ptr = reinterpret_cast<const armnnSerializer::DepthToSpaceLayer *>(obj);
11242 return verifier.VerifyTable(ptr);
11243 }
11244 case Layer_InstanceNormalizationLayer: {
11245 auto ptr = reinterpret_cast<const armnnSerializer::InstanceNormalizationLayer *>(obj);
11246 return verifier.VerifyTable(ptr);
11247 }
11248 case Layer_LogSoftmaxLayer: {
11249 auto ptr = reinterpret_cast<const armnnSerializer::LogSoftmaxLayer *>(obj);
11250 return verifier.VerifyTable(ptr);
11251 }
11252 case Layer_ComparisonLayer: {
11253 auto ptr = reinterpret_cast<const armnnSerializer::ComparisonLayer *>(obj);
11254 return verifier.VerifyTable(ptr);
11255 }
11256 case Layer_StandInLayer: {
11257 auto ptr = reinterpret_cast<const armnnSerializer::StandInLayer *>(obj);
11258 return verifier.VerifyTable(ptr);
11259 }
11260 case Layer_ElementwiseUnaryLayer: {
11261 auto ptr = reinterpret_cast<const armnnSerializer::ElementwiseUnaryLayer *>(obj);
11262 return verifier.VerifyTable(ptr);
11263 }
11264 case Layer_TransposeLayer: {
11265 auto ptr = reinterpret_cast<const armnnSerializer::TransposeLayer *>(obj);
11266 return verifier.VerifyTable(ptr);
11267 }
11268 case Layer_QLstmLayer: {
11269 auto ptr = reinterpret_cast<const armnnSerializer::QLstmLayer *>(obj);
11270 return verifier.VerifyTable(ptr);
11271 }
11272 case Layer_FillLayer: {
11273 auto ptr = reinterpret_cast<const armnnSerializer::FillLayer *>(obj);
11274 return verifier.VerifyTable(ptr);
11275 }
11276 case Layer_RankLayer: {
11277 auto ptr = reinterpret_cast<const armnnSerializer::RankLayer *>(obj);
11278 return verifier.VerifyTable(ptr);
11279 }
11280 case Layer_LogicalBinaryLayer: {
11281 auto ptr = reinterpret_cast<const armnnSerializer::LogicalBinaryLayer *>(obj);
11282 return verifier.VerifyTable(ptr);
11283 }
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000011284 case Layer_ReduceLayer: {
11285 auto ptr = reinterpret_cast<const armnnSerializer::ReduceLayer *>(obj);
11286 return verifier.VerifyTable(ptr);
11287 }
mathad01b392e982021-04-07 12:07:30 +010011288 case Layer_CastLayer: {
11289 auto ptr = reinterpret_cast<const armnnSerializer::CastLayer *>(obj);
11290 return verifier.VerifyTable(ptr);
11291 }
Keith Davis3ae3f972021-05-21 16:33:48 +010011292 case Layer_ShapeLayer: {
11293 auto ptr = reinterpret_cast<const armnnSerializer::ShapeLayer *>(obj);
11294 return verifier.VerifyTable(ptr);
11295 }
Narumol Prangnawarata0162e12021-07-23 14:47:49 +010011296 case Layer_UnidirectionalSequenceLstmLayer: {
11297 auto ptr = reinterpret_cast<const armnnSerializer::UnidirectionalSequenceLstmLayer *>(obj);
11298 return verifier.VerifyTable(ptr);
11299 }
Simon Obute51f67772021-09-03 15:50:13 +010011300 case Layer_ChannelShuffleLayer: {
11301 auto ptr = reinterpret_cast<const armnnSerializer::ChannelShuffleLayer *>(obj);
11302 return verifier.VerifyTable(ptr);
11303 }
Matthew Sloyanb63a3112021-09-08 13:05:51 +010011304 case Layer_Convolution3dLayer: {
11305 auto ptr = reinterpret_cast<const armnnSerializer::Convolution3dLayer *>(obj);
11306 return verifier.VerifyTable(ptr);
11307 }
Tamas Nyirid998a1c2021-11-05 14:55:33 +000011308 case Layer_Pooling3dLayer: {
11309 auto ptr = reinterpret_cast<const armnnSerializer::Pooling3dLayer *>(obj);
11310 return verifier.VerifyTable(ptr);
11311 }
Sadik Armagan97bf84f2021-01-13 15:06:38 +000011312 default: return true;
11313 }
11314}
11315
11316inline bool VerifyLayerVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
11317 if (!values || !types) return !values && !types;
11318 if (values->size() != types->size()) return false;
11319 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
11320 if (!VerifyLayer(
11321 verifier, values->Get(i), types->GetEnum<Layer>(i))) {
11322 return false;
11323 }
11324 }
11325 return true;
11326}
11327
11328inline const armnnSerializer::SerializedGraph *GetSerializedGraph(const void *buf) {
11329 return flatbuffers::GetRoot<armnnSerializer::SerializedGraph>(buf);
11330}
11331
11332inline const armnnSerializer::SerializedGraph *GetSizePrefixedSerializedGraph(const void *buf) {
11333 return flatbuffers::GetSizePrefixedRoot<armnnSerializer::SerializedGraph>(buf);
11334}
11335
11336inline const char *SerializedGraphIdentifier() {
11337 return "ARMN";
11338}
11339
11340inline bool SerializedGraphBufferHasIdentifier(const void *buf) {
11341 return flatbuffers::BufferHasIdentifier(
11342 buf, SerializedGraphIdentifier());
11343}
11344
11345inline bool VerifySerializedGraphBuffer(
11346 flatbuffers::Verifier &verifier) {
11347 return verifier.VerifyBuffer<armnnSerializer::SerializedGraph>(SerializedGraphIdentifier());
11348}
11349
11350inline bool VerifySizePrefixedSerializedGraphBuffer(
11351 flatbuffers::Verifier &verifier) {
11352 return verifier.VerifySizePrefixedBuffer<armnnSerializer::SerializedGraph>(SerializedGraphIdentifier());
11353}
11354
11355inline const char *SerializedGraphExtension() {
11356 return "armnn";
11357}
11358
11359inline void FinishSerializedGraphBuffer(
11360 flatbuffers::FlatBufferBuilder &fbb,
11361 flatbuffers::Offset<armnnSerializer::SerializedGraph> root) {
11362 fbb.Finish(root, SerializedGraphIdentifier());
11363}
11364
11365inline void FinishSizePrefixedSerializedGraphBuffer(
11366 flatbuffers::FlatBufferBuilder &fbb,
11367 flatbuffers::Offset<armnnSerializer::SerializedGraph> root) {
11368 fbb.FinishSizePrefixed(root, SerializedGraphIdentifier());
11369}
11370
11371} // namespace armnnSerializer
11372
11373#endif // FLATBUFFERS_GENERATED_ARMNNSCHEMA_ARMNNSERIALIZER_H_