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