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