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