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