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