1 // automatically generated by the FlatBuffers compiler, do not modify
2
3
4 #ifndef FLATBUFFERS_GENERATED_MNN_MNN_H_
5 #define FLATBUFFERS_GENERATED_MNN_MNN_H_
6
7
8 #include "CaffeOp_generated.h"
9 #include "GpuLibrary_generated.h"
10 #include "TFQuantizeOp_generated.h"
11 #include "Tensor_generated.h"
12 #include "TensorflowOp_generated.h"
13 #include "Type_generated.h"
14 #include "UserDefine_generated.h"
15
16 namespace MNN {
17
18 struct Plugin;
19 struct PluginT;
20
21 struct Extra;
22 struct ExtraT;
23
24 struct StringVec;
25 struct StringVecT;
26
27 struct WhileParam;
28 struct WhileParamT;
29
30 struct IfParam;
31 struct IfParamT;
32
33 struct RegionCommand;
34 struct RegionCommandT;
35
36 struct LoopParam;
37 struct LoopParamT;
38
39 struct Op;
40 struct OpT;
41
42 struct View;
43 struct ViewT;
44
45 struct Region;
46 struct RegionT;
47
48 struct TensorDescribe;
49 struct TensorDescribeT;
50
51 struct SubGraphProto;
52 struct SubGraphProtoT;
53
54 struct TensorQuantInfo;
55 struct TensorQuantInfoT;
56
57 struct Net;
58 struct NetT;
59
60 inline const flatbuffers::TypeTable *PluginTypeTable();
61
62 inline const flatbuffers::TypeTable *ExtraTypeTable();
63
64 inline const flatbuffers::TypeTable *StringVecTypeTable();
65
66 inline const flatbuffers::TypeTable *WhileParamTypeTable();
67
68 inline const flatbuffers::TypeTable *IfParamTypeTable();
69
70 inline const flatbuffers::TypeTable *RegionCommandTypeTable();
71
72 inline const flatbuffers::TypeTable *LoopParamTypeTable();
73
74 inline const flatbuffers::TypeTable *OpTypeTable();
75
76 inline const flatbuffers::TypeTable *ViewTypeTable();
77
78 inline const flatbuffers::TypeTable *RegionTypeTable();
79
80 inline const flatbuffers::TypeTable *TensorDescribeTypeTable();
81
82 inline const flatbuffers::TypeTable *SubGraphProtoTypeTable();
83
84 inline const flatbuffers::TypeTable *TensorQuantInfoTypeTable();
85
86 inline const flatbuffers::TypeTable *NetTypeTable();
87
88 enum OpType {
89 OpType_AbsVal = 0,
90 OpType_QuantizedAdd = 1,
91 OpType_ArgMax = 2,
92 OpType_AsString = 3,
93 OpType_InstanceNorm = 4,
94 OpType_BatchToSpaceND = 5,
95 OpType_Bias = 6,
96 OpType_BinaryOp = 7,
97 OpType_Bnll = 8,
98 OpType_Cast = 9,
99 OpType_Concat = 10,
100 OpType_Const = 11,
101 OpType_Convolution = 12,
102 OpType_ConvolutionDepthwise = 13,
103 OpType_Crop = 14,
104 OpType_CropAndResize = 15,
105 OpType_Cubic = 16,
106 OpType_Deconvolution = 17,
107 OpType_DeconvolutionDepthwise = 18,
108 OpType_Dequantize = 19,
109 OpType_DetectionOutput = 20,
110 OpType_Dropout = 21,
111 OpType_Eltwise = 22,
112 OpType_ELU = 23,
113 OpType_Embed = 24,
114 OpType_Exp = 25,
115 OpType_ExpandDims = 26,
116 OpType_Fill = 27,
117 OpType_Flatten = 28,
118 OpType_FloorMod = 29,
119 OpType_Gather = 30,
120 OpType_GatherV2 = 31,
121 OpType_Im2Seq = 32,
122 OpType_InnerProduct = 33,
123 OpType_Input = 34,
124 OpType_Interp = 35,
125 OpType_Log = 36,
126 OpType_LRN = 37,
127 OpType_LSTM = 38,
128 OpType_MatMul = 39,
129 OpType_MVN = 40,
130 OpType_NonMaxSuppression = 41,
131 OpType_NonMaxSuppressionV2 = 42,
132 OpType_Normalize = 43,
133 OpType_Pack = 44,
134 OpType_Padding = 45,
135 OpType_Permute = 46,
136 OpType_Pooling = 47,
137 OpType_Power = 48,
138 OpType_PReLU = 49,
139 OpType_PriorBox = 50,
140 OpType_Proposal = 51,
141 OpType_QuantizedAvgPool = 52,
142 OpType_QuantizedBiasAdd = 53,
143 OpType_QuantizedConcat = 54,
144 OpType_QuantizedDepthwiseConv2D = 55,
145 OpType_QuantizedLogistic = 56,
146 OpType_QuantizedMatMul = 57,
147 OpType_QuantizedMaxPool = 58,
148 OpType_QuantizedRelu = 59,
149 OpType_QuantizedRelu6 = 60,
150 OpType_QuantizedReshape = 61,
151 OpType_QuantizedSoftmax = 62,
152 OpType_QuantizeMaxMin = 63,
153 OpType_QuantizeV2 = 64,
154 OpType_Range = 65,
155 OpType_Rank = 66,
156 OpType_ReduceJoin = 67,
157 OpType_Reduction = 68,
158 OpType_ReLU = 69,
159 OpType_ReLU6 = 70,
160 OpType_RequantizationRange = 71,
161 OpType_Requantize = 72,
162 OpType_Reshape = 73,
163 OpType_Resize = 74,
164 OpType_RNN = 75,
165 OpType_ROIPooling = 76,
166 OpType_Scale = 77,
167 OpType_Selu = 78,
168 OpType_Seq2Out = 79,
169 OpType_Shape = 80,
170 OpType_Sigmoid = 81,
171 OpType_Size = 82,
172 OpType_Slice = 83,
173 OpType_SliceTf = 84,
174 OpType_Softmax = 85,
175 OpType_SpaceToBatchND = 86,
176 OpType_SpatialProduct = 87,
177 OpType_Split = 88,
178 OpType_SPP = 89,
179 OpType_Squeeze = 90,
180 OpType_StridedSlice = 91,
181 OpType_StringJoin = 92,
182 OpType_StringSplit = 93,
183 OpType_StringToNumber = 94,
184 OpType_TanH = 95,
185 OpType_TfQuantizedConv2D = 96,
186 OpType_Threshold = 97,
187 OpType_Tile = 98,
188 OpType_TopKV2 = 99,
189 OpType_Transpose = 100,
190 OpType_UnaryOp = 101,
191 OpType_Unpack = 102,
192 OpType_Where = 103,
193 OpType_Moments = 104,
194 OpType_RNNSequenceGRU = 105,
195 OpType_BatchMatMul = 106,
196 OpType_Unsqueeze = 107,
197 OpType_CosineSimilarity = 108,
198 OpType_DepthToSpace = 109,
199 OpType_SpaceToDepth = 110,
200 OpType_ReverseSequence = 111,
201 OpType_Pooling3D = 112,
202 OpType_Convolution3D = 113,
203 OpType_MatrixBandPart = 114,
204 OpType_GatherND = 115,
205 OpType_DetectionPostProcess = 116,
206 OpType_UnravelIndex = 117,
207 OpType_ScatterNd = 118,
208 OpType_OneHot = 119,
209 OpType_BroadcastTo = 120,
210 OpType_Dilation2D = 121,
211 OpType_Raster = 128,
212 OpType_ConvertTensor = 129,
213 OpType_ArgMin = 130,
214 OpType_LinSpace = 131,
215 OpType_RandomUniform = 132,
216 OpType_TensorArray = 133,
217 OpType_TensorArraySize = 134,
218 OpType_TensorArrayRead = 135,
219 OpType_TensorArrayWrite = 136,
220 OpType_TensorArrayGather = 137,
221 OpType_TensorArrayScatter = 138,
222 OpType_TensorArraySplit = 139,
223 OpType_TensorArrayConcat = 140,
224 OpType_LSTMBlockCell = 141,
225 OpType_Reverse = 142,
226 OpType_Plugin = 256,
227 OpType_Select = 257,
228 OpType_ZerosLike = 258,
229 OpType_Broastcast = 259,
230 OpType_SetDiff1D = 260,
231 OpType_ReluGrad = 261,
232 OpType_Relu6Grad = 262,
233 OpType_PoolGrad = 263,
234 OpType_SoftmaxGrad = 264,
235 OpType_Conv2DBackPropFilter = 265,
236 OpType_TrainableParam = 266,
237 OpType_BatchNorm = 267,
238 OpType_ZeroGrad = 268,
239 OpType_Extra = 512,
240 OpType_ConvInt8 = 513,
241 OpType_Int8ToFloat = 514,
242 OpType_DepthwiseConvInt8 = 515,
243 OpType_PoolInt8 = 516,
244 OpType_FloatToInt8 = 517,
245 OpType_EltwiseInt8 = 518,
246 OpType_While = 600,
247 OpType_If = 601,
248 OpType_LayerNorm = 603,
249 OpType_GridSample = 604,
250 OpType_MIN = OpType_AbsVal,
251 OpType_MAX = OpType_GridSample
252 };
253
EnumValuesOpType()254 inline const OpType (&EnumValuesOpType())[161] {
255 static const OpType values[] = {
256 OpType_AbsVal,
257 OpType_QuantizedAdd,
258 OpType_ArgMax,
259 OpType_AsString,
260 OpType_InstanceNorm,
261 OpType_BatchToSpaceND,
262 OpType_Bias,
263 OpType_BinaryOp,
264 OpType_Bnll,
265 OpType_Cast,
266 OpType_Concat,
267 OpType_Const,
268 OpType_Convolution,
269 OpType_ConvolutionDepthwise,
270 OpType_Crop,
271 OpType_CropAndResize,
272 OpType_Cubic,
273 OpType_Deconvolution,
274 OpType_DeconvolutionDepthwise,
275 OpType_Dequantize,
276 OpType_DetectionOutput,
277 OpType_Dropout,
278 OpType_Eltwise,
279 OpType_ELU,
280 OpType_Embed,
281 OpType_Exp,
282 OpType_ExpandDims,
283 OpType_Fill,
284 OpType_Flatten,
285 OpType_FloorMod,
286 OpType_Gather,
287 OpType_GatherV2,
288 OpType_Im2Seq,
289 OpType_InnerProduct,
290 OpType_Input,
291 OpType_Interp,
292 OpType_Log,
293 OpType_LRN,
294 OpType_LSTM,
295 OpType_MatMul,
296 OpType_MVN,
297 OpType_NonMaxSuppression,
298 OpType_NonMaxSuppressionV2,
299 OpType_Normalize,
300 OpType_Pack,
301 OpType_Padding,
302 OpType_Permute,
303 OpType_Pooling,
304 OpType_Power,
305 OpType_PReLU,
306 OpType_PriorBox,
307 OpType_Proposal,
308 OpType_QuantizedAvgPool,
309 OpType_QuantizedBiasAdd,
310 OpType_QuantizedConcat,
311 OpType_QuantizedDepthwiseConv2D,
312 OpType_QuantizedLogistic,
313 OpType_QuantizedMatMul,
314 OpType_QuantizedMaxPool,
315 OpType_QuantizedRelu,
316 OpType_QuantizedRelu6,
317 OpType_QuantizedReshape,
318 OpType_QuantizedSoftmax,
319 OpType_QuantizeMaxMin,
320 OpType_QuantizeV2,
321 OpType_Range,
322 OpType_Rank,
323 OpType_ReduceJoin,
324 OpType_Reduction,
325 OpType_ReLU,
326 OpType_ReLU6,
327 OpType_RequantizationRange,
328 OpType_Requantize,
329 OpType_Reshape,
330 OpType_Resize,
331 OpType_RNN,
332 OpType_ROIPooling,
333 OpType_Scale,
334 OpType_Selu,
335 OpType_Seq2Out,
336 OpType_Shape,
337 OpType_Sigmoid,
338 OpType_Size,
339 OpType_Slice,
340 OpType_SliceTf,
341 OpType_Softmax,
342 OpType_SpaceToBatchND,
343 OpType_SpatialProduct,
344 OpType_Split,
345 OpType_SPP,
346 OpType_Squeeze,
347 OpType_StridedSlice,
348 OpType_StringJoin,
349 OpType_StringSplit,
350 OpType_StringToNumber,
351 OpType_TanH,
352 OpType_TfQuantizedConv2D,
353 OpType_Threshold,
354 OpType_Tile,
355 OpType_TopKV2,
356 OpType_Transpose,
357 OpType_UnaryOp,
358 OpType_Unpack,
359 OpType_Where,
360 OpType_Moments,
361 OpType_RNNSequenceGRU,
362 OpType_BatchMatMul,
363 OpType_Unsqueeze,
364 OpType_CosineSimilarity,
365 OpType_DepthToSpace,
366 OpType_SpaceToDepth,
367 OpType_ReverseSequence,
368 OpType_Pooling3D,
369 OpType_Convolution3D,
370 OpType_MatrixBandPart,
371 OpType_GatherND,
372 OpType_DetectionPostProcess,
373 OpType_UnravelIndex,
374 OpType_ScatterNd,
375 OpType_OneHot,
376 OpType_BroadcastTo,
377 OpType_Dilation2D,
378 OpType_Raster,
379 OpType_ConvertTensor,
380 OpType_ArgMin,
381 OpType_LinSpace,
382 OpType_RandomUniform,
383 OpType_TensorArray,
384 OpType_TensorArraySize,
385 OpType_TensorArrayRead,
386 OpType_TensorArrayWrite,
387 OpType_TensorArrayGather,
388 OpType_TensorArrayScatter,
389 OpType_TensorArraySplit,
390 OpType_TensorArrayConcat,
391 OpType_LSTMBlockCell,
392 OpType_Reverse,
393 OpType_Plugin,
394 OpType_Select,
395 OpType_ZerosLike,
396 OpType_Broastcast,
397 OpType_SetDiff1D,
398 OpType_ReluGrad,
399 OpType_Relu6Grad,
400 OpType_PoolGrad,
401 OpType_SoftmaxGrad,
402 OpType_Conv2DBackPropFilter,
403 OpType_TrainableParam,
404 OpType_BatchNorm,
405 OpType_ZeroGrad,
406 OpType_Extra,
407 OpType_ConvInt8,
408 OpType_Int8ToFloat,
409 OpType_DepthwiseConvInt8,
410 OpType_PoolInt8,
411 OpType_FloatToInt8,
412 OpType_EltwiseInt8,
413 OpType_While,
414 OpType_If,
415 OpType_LayerNorm,
416 OpType_GridSample
417 };
418 return values;
419 }
420
EnumNamesOpType()421 inline const char * const *EnumNamesOpType() {
422 static const char * const names[] = {
423 "AbsVal",
424 "QuantizedAdd",
425 "ArgMax",
426 "AsString",
427 "InstanceNorm",
428 "BatchToSpaceND",
429 "Bias",
430 "BinaryOp",
431 "Bnll",
432 "Cast",
433 "Concat",
434 "Const",
435 "Convolution",
436 "ConvolutionDepthwise",
437 "Crop",
438 "CropAndResize",
439 "Cubic",
440 "Deconvolution",
441 "DeconvolutionDepthwise",
442 "Dequantize",
443 "DetectionOutput",
444 "Dropout",
445 "Eltwise",
446 "ELU",
447 "Embed",
448 "Exp",
449 "ExpandDims",
450 "Fill",
451 "Flatten",
452 "FloorMod",
453 "Gather",
454 "GatherV2",
455 "Im2Seq",
456 "InnerProduct",
457 "Input",
458 "Interp",
459 "Log",
460 "LRN",
461 "LSTM",
462 "MatMul",
463 "MVN",
464 "NonMaxSuppression",
465 "NonMaxSuppressionV2",
466 "Normalize",
467 "Pack",
468 "Padding",
469 "Permute",
470 "Pooling",
471 "Power",
472 "PReLU",
473 "PriorBox",
474 "Proposal",
475 "QuantizedAvgPool",
476 "QuantizedBiasAdd",
477 "QuantizedConcat",
478 "QuantizedDepthwiseConv2D",
479 "QuantizedLogistic",
480 "QuantizedMatMul",
481 "QuantizedMaxPool",
482 "QuantizedRelu",
483 "QuantizedRelu6",
484 "QuantizedReshape",
485 "QuantizedSoftmax",
486 "QuantizeMaxMin",
487 "QuantizeV2",
488 "Range",
489 "Rank",
490 "ReduceJoin",
491 "Reduction",
492 "ReLU",
493 "ReLU6",
494 "RequantizationRange",
495 "Requantize",
496 "Reshape",
497 "Resize",
498 "RNN",
499 "ROIPooling",
500 "Scale",
501 "Selu",
502 "Seq2Out",
503 "Shape",
504 "Sigmoid",
505 "Size",
506 "Slice",
507 "SliceTf",
508 "Softmax",
509 "SpaceToBatchND",
510 "SpatialProduct",
511 "Split",
512 "SPP",
513 "Squeeze",
514 "StridedSlice",
515 "StringJoin",
516 "StringSplit",
517 "StringToNumber",
518 "TanH",
519 "TfQuantizedConv2D",
520 "Threshold",
521 "Tile",
522 "TopKV2",
523 "Transpose",
524 "UnaryOp",
525 "Unpack",
526 "Where",
527 "Moments",
528 "RNNSequenceGRU",
529 "BatchMatMul",
530 "Unsqueeze",
531 "CosineSimilarity",
532 "DepthToSpace",
533 "SpaceToDepth",
534 "ReverseSequence",
535 "Pooling3D",
536 "Convolution3D",
537 "MatrixBandPart",
538 "GatherND",
539 "DetectionPostProcess",
540 "UnravelIndex",
541 "ScatterNd",
542 "OneHot",
543 "BroadcastTo",
544 "Dilation2D",
545 "",
546 "",
547 "",
548 "",
549 "",
550 "",
551 "Raster",
552 "ConvertTensor",
553 "ArgMin",
554 "LinSpace",
555 "RandomUniform",
556 "TensorArray",
557 "TensorArraySize",
558 "TensorArrayRead",
559 "TensorArrayWrite",
560 "TensorArrayGather",
561 "TensorArrayScatter",
562 "TensorArraySplit",
563 "TensorArrayConcat",
564 "LSTMBlockCell",
565 "Reverse",
566 "",
567 "",
568 "",
569 "",
570 "",
571 "",
572 "",
573 "",
574 "",
575 "",
576 "",
577 "",
578 "",
579 "",
580 "",
581 "",
582 "",
583 "",
584 "",
585 "",
586 "",
587 "",
588 "",
589 "",
590 "",
591 "",
592 "",
593 "",
594 "",
595 "",
596 "",
597 "",
598 "",
599 "",
600 "",
601 "",
602 "",
603 "",
604 "",
605 "",
606 "",
607 "",
608 "",
609 "",
610 "",
611 "",
612 "",
613 "",
614 "",
615 "",
616 "",
617 "",
618 "",
619 "",
620 "",
621 "",
622 "",
623 "",
624 "",
625 "",
626 "",
627 "",
628 "",
629 "",
630 "",
631 "",
632 "",
633 "",
634 "",
635 "",
636 "",
637 "",
638 "",
639 "",
640 "",
641 "",
642 "",
643 "",
644 "",
645 "",
646 "",
647 "",
648 "",
649 "",
650 "",
651 "",
652 "",
653 "",
654 "",
655 "",
656 "",
657 "",
658 "",
659 "",
660 "",
661 "",
662 "",
663 "",
664 "",
665 "",
666 "",
667 "",
668 "",
669 "",
670 "",
671 "",
672 "",
673 "",
674 "",
675 "",
676 "",
677 "",
678 "",
679 "Plugin",
680 "Select",
681 "ZerosLike",
682 "Broastcast",
683 "SetDiff1D",
684 "ReluGrad",
685 "Relu6Grad",
686 "PoolGrad",
687 "SoftmaxGrad",
688 "Conv2DBackPropFilter",
689 "TrainableParam",
690 "BatchNorm",
691 "ZeroGrad",
692 "",
693 "",
694 "",
695 "",
696 "",
697 "",
698 "",
699 "",
700 "",
701 "",
702 "",
703 "",
704 "",
705 "",
706 "",
707 "",
708 "",
709 "",
710 "",
711 "",
712 "",
713 "",
714 "",
715 "",
716 "",
717 "",
718 "",
719 "",
720 "",
721 "",
722 "",
723 "",
724 "",
725 "",
726 "",
727 "",
728 "",
729 "",
730 "",
731 "",
732 "",
733 "",
734 "",
735 "",
736 "",
737 "",
738 "",
739 "",
740 "",
741 "",
742 "",
743 "",
744 "",
745 "",
746 "",
747 "",
748 "",
749 "",
750 "",
751 "",
752 "",
753 "",
754 "",
755 "",
756 "",
757 "",
758 "",
759 "",
760 "",
761 "",
762 "",
763 "",
764 "",
765 "",
766 "",
767 "",
768 "",
769 "",
770 "",
771 "",
772 "",
773 "",
774 "",
775 "",
776 "",
777 "",
778 "",
779 "",
780 "",
781 "",
782 "",
783 "",
784 "",
785 "",
786 "",
787 "",
788 "",
789 "",
790 "",
791 "",
792 "",
793 "",
794 "",
795 "",
796 "",
797 "",
798 "",
799 "",
800 "",
801 "",
802 "",
803 "",
804 "",
805 "",
806 "",
807 "",
808 "",
809 "",
810 "",
811 "",
812 "",
813 "",
814 "",
815 "",
816 "",
817 "",
818 "",
819 "",
820 "",
821 "",
822 "",
823 "",
824 "",
825 "",
826 "",
827 "",
828 "",
829 "",
830 "",
831 "",
832 "",
833 "",
834 "",
835 "",
836 "",
837 "",
838 "",
839 "",
840 "",
841 "",
842 "",
843 "",
844 "",
845 "",
846 "",
847 "",
848 "",
849 "",
850 "",
851 "",
852 "",
853 "",
854 "",
855 "",
856 "",
857 "",
858 "",
859 "",
860 "",
861 "",
862 "",
863 "",
864 "",
865 "",
866 "",
867 "",
868 "",
869 "",
870 "",
871 "",
872 "",
873 "",
874 "",
875 "",
876 "",
877 "",
878 "",
879 "",
880 "",
881 "",
882 "",
883 "",
884 "",
885 "",
886 "",
887 "",
888 "",
889 "",
890 "",
891 "",
892 "",
893 "",
894 "",
895 "",
896 "",
897 "",
898 "",
899 "",
900 "",
901 "",
902 "",
903 "",
904 "",
905 "",
906 "",
907 "",
908 "",
909 "",
910 "",
911 "",
912 "",
913 "",
914 "",
915 "",
916 "",
917 "",
918 "",
919 "",
920 "",
921 "",
922 "",
923 "",
924 "",
925 "",
926 "",
927 "",
928 "",
929 "",
930 "",
931 "",
932 "",
933 "",
934 "",
935 "Extra",
936 "ConvInt8",
937 "Int8ToFloat",
938 "DepthwiseConvInt8",
939 "PoolInt8",
940 "FloatToInt8",
941 "EltwiseInt8",
942 "",
943 "",
944 "",
945 "",
946 "",
947 "",
948 "",
949 "",
950 "",
951 "",
952 "",
953 "",
954 "",
955 "",
956 "",
957 "",
958 "",
959 "",
960 "",
961 "",
962 "",
963 "",
964 "",
965 "",
966 "",
967 "",
968 "",
969 "",
970 "",
971 "",
972 "",
973 "",
974 "",
975 "",
976 "",
977 "",
978 "",
979 "",
980 "",
981 "",
982 "",
983 "",
984 "",
985 "",
986 "",
987 "",
988 "",
989 "",
990 "",
991 "",
992 "",
993 "",
994 "",
995 "",
996 "",
997 "",
998 "",
999 "",
1000 "",
1001 "",
1002 "",
1003 "",
1004 "",
1005 "",
1006 "",
1007 "",
1008 "",
1009 "",
1010 "",
1011 "",
1012 "",
1013 "",
1014 "",
1015 "",
1016 "",
1017 "",
1018 "",
1019 "",
1020 "",
1021 "",
1022 "",
1023 "While",
1024 "If",
1025 "",
1026 "LayerNorm",
1027 "GridSample",
1028 nullptr
1029 };
1030 return names;
1031 }
1032
EnumNameOpType(OpType e)1033 inline const char *EnumNameOpType(OpType e) {
1034 if (e < OpType_AbsVal || e > OpType_GridSample) return "";
1035 const size_t index = static_cast<int>(e);
1036 return EnumNamesOpType()[index];
1037 }
1038
1039 enum OpParameter {
1040 OpParameter_NONE = 0,
1041 OpParameter_QuantizedAdd = 1,
1042 OpParameter_ArgMax = 2,
1043 OpParameter_AsString = 3,
1044 OpParameter_Axis = 4,
1045 OpParameter_BatchNorm = 5,
1046 OpParameter_BinaryOp = 6,
1047 OpParameter_Blob = 7,
1048 OpParameter_CastParam = 8,
1049 OpParameter_Convolution2D = 9,
1050 OpParameter_Crop = 10,
1051 OpParameter_CropAndResize = 11,
1052 OpParameter_Dequantize = 12,
1053 OpParameter_DetectionOutput = 13,
1054 OpParameter_Eltwise = 14,
1055 OpParameter_ExpandDims = 15,
1056 OpParameter_Fill = 16,
1057 OpParameter_Flatten = 17,
1058 OpParameter_Gather = 18,
1059 OpParameter_GatherV2 = 19,
1060 OpParameter_InnerProduct = 20,
1061 OpParameter_Input = 21,
1062 OpParameter_Interp = 22,
1063 OpParameter_LRN = 23,
1064 OpParameter_LSTM = 24,
1065 OpParameter_MatMul = 25,
1066 OpParameter_NonMaxSuppressionV2 = 26,
1067 OpParameter_Normalize = 27,
1068 OpParameter_PackParam = 28,
1069 OpParameter_Permute = 29,
1070 OpParameter_Plugin = 30,
1071 OpParameter_Pool = 31,
1072 OpParameter_PRelu = 32,
1073 OpParameter_PriorBox = 33,
1074 OpParameter_Proposal = 34,
1075 OpParameter_QuantizedAvgPool = 35,
1076 OpParameter_QuantizedBiasAdd = 36,
1077 OpParameter_QuantizedConcat = 37,
1078 OpParameter_QuantizedLogistic = 38,
1079 OpParameter_QuantizedMatMul = 39,
1080 OpParameter_QuantizedMaxPool = 40,
1081 OpParameter_QuantizedRelu = 41,
1082 OpParameter_QuantizedRelu6 = 42,
1083 OpParameter_QuantizedReshape = 43,
1084 OpParameter_QuantizedSoftmax = 44,
1085 OpParameter_QuantizeMaxMin = 45,
1086 OpParameter_QuantizeV2 = 46,
1087 OpParameter_Range = 47,
1088 OpParameter_Rank = 48,
1089 OpParameter_ReduceJoin = 49,
1090 OpParameter_ReductionParam = 50,
1091 OpParameter_Relu = 51,
1092 OpParameter_Relu6 = 52,
1093 OpParameter_RequantizationRange = 53,
1094 OpParameter_Requantize = 54,
1095 OpParameter_Reshape = 55,
1096 OpParameter_Resize = 56,
1097 OpParameter_RoiPooling = 57,
1098 OpParameter_Scale = 58,
1099 OpParameter_Selu = 59,
1100 OpParameter_Size = 60,
1101 OpParameter_Slice = 61,
1102 OpParameter_SliceTf = 62,
1103 OpParameter_SpaceBatch = 63,
1104 OpParameter_SqueezeParam = 64,
1105 OpParameter_StridedSliceParam = 65,
1106 OpParameter_TensorConvertInfo = 66,
1107 OpParameter_TfQuantizedConv2D = 67,
1108 OpParameter_TopKV2 = 68,
1109 OpParameter_Transpose = 69,
1110 OpParameter_UnaryOp = 70,
1111 OpParameter_MomentsParam = 71,
1112 OpParameter_RNNParam = 72,
1113 OpParameter_BatchMatMulParam = 73,
1114 OpParameter_QuantizedFloatParam = 74,
1115 OpParameter_DepthSpaceParam = 75,
1116 OpParameter_EltwiseInt8 = 76,
1117 OpParameter_ReverseSequenceParam = 77,
1118 OpParameter_Extra = 78,
1119 OpParameter_Pool3D = 79,
1120 OpParameter_Convolution3D = 80,
1121 OpParameter_ELU = 81,
1122 OpParameter_DetectionPostProcessParam = 82,
1123 OpParameter_OneHotParam = 83,
1124 OpParameter_PadParam = 84,
1125 OpParameter_WhileParam = 85,
1126 OpParameter_IfParam = 86,
1127 OpParameter_RandomUniform = 87,
1128 OpParameter_LayerNorm = 88,
1129 OpParameter_TensorArray = 89,
1130 OpParameter_LSTMBlockCell = 90,
1131 OpParameter_GridSample = 91,
1132 OpParameter_LoopParam = 92,
1133 OpParameter_MIN = OpParameter_NONE,
1134 OpParameter_MAX = OpParameter_LoopParam
1135 };
1136
EnumValuesOpParameter()1137 inline const OpParameter (&EnumValuesOpParameter())[93] {
1138 static const OpParameter values[] = {
1139 OpParameter_NONE,
1140 OpParameter_QuantizedAdd,
1141 OpParameter_ArgMax,
1142 OpParameter_AsString,
1143 OpParameter_Axis,
1144 OpParameter_BatchNorm,
1145 OpParameter_BinaryOp,
1146 OpParameter_Blob,
1147 OpParameter_CastParam,
1148 OpParameter_Convolution2D,
1149 OpParameter_Crop,
1150 OpParameter_CropAndResize,
1151 OpParameter_Dequantize,
1152 OpParameter_DetectionOutput,
1153 OpParameter_Eltwise,
1154 OpParameter_ExpandDims,
1155 OpParameter_Fill,
1156 OpParameter_Flatten,
1157 OpParameter_Gather,
1158 OpParameter_GatherV2,
1159 OpParameter_InnerProduct,
1160 OpParameter_Input,
1161 OpParameter_Interp,
1162 OpParameter_LRN,
1163 OpParameter_LSTM,
1164 OpParameter_MatMul,
1165 OpParameter_NonMaxSuppressionV2,
1166 OpParameter_Normalize,
1167 OpParameter_PackParam,
1168 OpParameter_Permute,
1169 OpParameter_Plugin,
1170 OpParameter_Pool,
1171 OpParameter_PRelu,
1172 OpParameter_PriorBox,
1173 OpParameter_Proposal,
1174 OpParameter_QuantizedAvgPool,
1175 OpParameter_QuantizedBiasAdd,
1176 OpParameter_QuantizedConcat,
1177 OpParameter_QuantizedLogistic,
1178 OpParameter_QuantizedMatMul,
1179 OpParameter_QuantizedMaxPool,
1180 OpParameter_QuantizedRelu,
1181 OpParameter_QuantizedRelu6,
1182 OpParameter_QuantizedReshape,
1183 OpParameter_QuantizedSoftmax,
1184 OpParameter_QuantizeMaxMin,
1185 OpParameter_QuantizeV2,
1186 OpParameter_Range,
1187 OpParameter_Rank,
1188 OpParameter_ReduceJoin,
1189 OpParameter_ReductionParam,
1190 OpParameter_Relu,
1191 OpParameter_Relu6,
1192 OpParameter_RequantizationRange,
1193 OpParameter_Requantize,
1194 OpParameter_Reshape,
1195 OpParameter_Resize,
1196 OpParameter_RoiPooling,
1197 OpParameter_Scale,
1198 OpParameter_Selu,
1199 OpParameter_Size,
1200 OpParameter_Slice,
1201 OpParameter_SliceTf,
1202 OpParameter_SpaceBatch,
1203 OpParameter_SqueezeParam,
1204 OpParameter_StridedSliceParam,
1205 OpParameter_TensorConvertInfo,
1206 OpParameter_TfQuantizedConv2D,
1207 OpParameter_TopKV2,
1208 OpParameter_Transpose,
1209 OpParameter_UnaryOp,
1210 OpParameter_MomentsParam,
1211 OpParameter_RNNParam,
1212 OpParameter_BatchMatMulParam,
1213 OpParameter_QuantizedFloatParam,
1214 OpParameter_DepthSpaceParam,
1215 OpParameter_EltwiseInt8,
1216 OpParameter_ReverseSequenceParam,
1217 OpParameter_Extra,
1218 OpParameter_Pool3D,
1219 OpParameter_Convolution3D,
1220 OpParameter_ELU,
1221 OpParameter_DetectionPostProcessParam,
1222 OpParameter_OneHotParam,
1223 OpParameter_PadParam,
1224 OpParameter_WhileParam,
1225 OpParameter_IfParam,
1226 OpParameter_RandomUniform,
1227 OpParameter_LayerNorm,
1228 OpParameter_TensorArray,
1229 OpParameter_LSTMBlockCell,
1230 OpParameter_GridSample,
1231 OpParameter_LoopParam
1232 };
1233 return values;
1234 }
1235
EnumNamesOpParameter()1236 inline const char * const *EnumNamesOpParameter() {
1237 static const char * const names[] = {
1238 "NONE",
1239 "QuantizedAdd",
1240 "ArgMax",
1241 "AsString",
1242 "Axis",
1243 "BatchNorm",
1244 "BinaryOp",
1245 "Blob",
1246 "CastParam",
1247 "Convolution2D",
1248 "Crop",
1249 "CropAndResize",
1250 "Dequantize",
1251 "DetectionOutput",
1252 "Eltwise",
1253 "ExpandDims",
1254 "Fill",
1255 "Flatten",
1256 "Gather",
1257 "GatherV2",
1258 "InnerProduct",
1259 "Input",
1260 "Interp",
1261 "LRN",
1262 "LSTM",
1263 "MatMul",
1264 "NonMaxSuppressionV2",
1265 "Normalize",
1266 "PackParam",
1267 "Permute",
1268 "Plugin",
1269 "Pool",
1270 "PRelu",
1271 "PriorBox",
1272 "Proposal",
1273 "QuantizedAvgPool",
1274 "QuantizedBiasAdd",
1275 "QuantizedConcat",
1276 "QuantizedLogistic",
1277 "QuantizedMatMul",
1278 "QuantizedMaxPool",
1279 "QuantizedRelu",
1280 "QuantizedRelu6",
1281 "QuantizedReshape",
1282 "QuantizedSoftmax",
1283 "QuantizeMaxMin",
1284 "QuantizeV2",
1285 "Range",
1286 "Rank",
1287 "ReduceJoin",
1288 "ReductionParam",
1289 "Relu",
1290 "Relu6",
1291 "RequantizationRange",
1292 "Requantize",
1293 "Reshape",
1294 "Resize",
1295 "RoiPooling",
1296 "Scale",
1297 "Selu",
1298 "Size",
1299 "Slice",
1300 "SliceTf",
1301 "SpaceBatch",
1302 "SqueezeParam",
1303 "StridedSliceParam",
1304 "TensorConvertInfo",
1305 "TfQuantizedConv2D",
1306 "TopKV2",
1307 "Transpose",
1308 "UnaryOp",
1309 "MomentsParam",
1310 "RNNParam",
1311 "BatchMatMulParam",
1312 "QuantizedFloatParam",
1313 "DepthSpaceParam",
1314 "EltwiseInt8",
1315 "ReverseSequenceParam",
1316 "Extra",
1317 "Pool3D",
1318 "Convolution3D",
1319 "ELU",
1320 "DetectionPostProcessParam",
1321 "OneHotParam",
1322 "PadParam",
1323 "WhileParam",
1324 "IfParam",
1325 "RandomUniform",
1326 "LayerNorm",
1327 "TensorArray",
1328 "LSTMBlockCell",
1329 "GridSample",
1330 "LoopParam",
1331 nullptr
1332 };
1333 return names;
1334 }
1335
EnumNameOpParameter(OpParameter e)1336 inline const char *EnumNameOpParameter(OpParameter e) {
1337 if (e < OpParameter_NONE || e > OpParameter_LoopParam) return "";
1338 const size_t index = static_cast<int>(e);
1339 return EnumNamesOpParameter()[index];
1340 }
1341
1342 template<typename T> struct OpParameterTraits {
1343 static const OpParameter enum_value = OpParameter_NONE;
1344 };
1345
1346 template<> struct OpParameterTraits<QuantizedAdd> {
1347 static const OpParameter enum_value = OpParameter_QuantizedAdd;
1348 };
1349
1350 template<> struct OpParameterTraits<ArgMax> {
1351 static const OpParameter enum_value = OpParameter_ArgMax;
1352 };
1353
1354 template<> struct OpParameterTraits<AsString> {
1355 static const OpParameter enum_value = OpParameter_AsString;
1356 };
1357
1358 template<> struct OpParameterTraits<Axis> {
1359 static const OpParameter enum_value = OpParameter_Axis;
1360 };
1361
1362 template<> struct OpParameterTraits<BatchNorm> {
1363 static const OpParameter enum_value = OpParameter_BatchNorm;
1364 };
1365
1366 template<> struct OpParameterTraits<BinaryOp> {
1367 static const OpParameter enum_value = OpParameter_BinaryOp;
1368 };
1369
1370 template<> struct OpParameterTraits<Blob> {
1371 static const OpParameter enum_value = OpParameter_Blob;
1372 };
1373
1374 template<> struct OpParameterTraits<CastParam> {
1375 static const OpParameter enum_value = OpParameter_CastParam;
1376 };
1377
1378 template<> struct OpParameterTraits<Convolution2D> {
1379 static const OpParameter enum_value = OpParameter_Convolution2D;
1380 };
1381
1382 template<> struct OpParameterTraits<Crop> {
1383 static const OpParameter enum_value = OpParameter_Crop;
1384 };
1385
1386 template<> struct OpParameterTraits<CropAndResize> {
1387 static const OpParameter enum_value = OpParameter_CropAndResize;
1388 };
1389
1390 template<> struct OpParameterTraits<Dequantize> {
1391 static const OpParameter enum_value = OpParameter_Dequantize;
1392 };
1393
1394 template<> struct OpParameterTraits<DetectionOutput> {
1395 static const OpParameter enum_value = OpParameter_DetectionOutput;
1396 };
1397
1398 template<> struct OpParameterTraits<Eltwise> {
1399 static const OpParameter enum_value = OpParameter_Eltwise;
1400 };
1401
1402 template<> struct OpParameterTraits<ExpandDims> {
1403 static const OpParameter enum_value = OpParameter_ExpandDims;
1404 };
1405
1406 template<> struct OpParameterTraits<Fill> {
1407 static const OpParameter enum_value = OpParameter_Fill;
1408 };
1409
1410 template<> struct OpParameterTraits<Flatten> {
1411 static const OpParameter enum_value = OpParameter_Flatten;
1412 };
1413
1414 template<> struct OpParameterTraits<Gather> {
1415 static const OpParameter enum_value = OpParameter_Gather;
1416 };
1417
1418 template<> struct OpParameterTraits<GatherV2> {
1419 static const OpParameter enum_value = OpParameter_GatherV2;
1420 };
1421
1422 template<> struct OpParameterTraits<InnerProduct> {
1423 static const OpParameter enum_value = OpParameter_InnerProduct;
1424 };
1425
1426 template<> struct OpParameterTraits<Input> {
1427 static const OpParameter enum_value = OpParameter_Input;
1428 };
1429
1430 template<> struct OpParameterTraits<Interp> {
1431 static const OpParameter enum_value = OpParameter_Interp;
1432 };
1433
1434 template<> struct OpParameterTraits<LRN> {
1435 static const OpParameter enum_value = OpParameter_LRN;
1436 };
1437
1438 template<> struct OpParameterTraits<LSTM> {
1439 static const OpParameter enum_value = OpParameter_LSTM;
1440 };
1441
1442 template<> struct OpParameterTraits<MatMul> {
1443 static const OpParameter enum_value = OpParameter_MatMul;
1444 };
1445
1446 template<> struct OpParameterTraits<NonMaxSuppressionV2> {
1447 static const OpParameter enum_value = OpParameter_NonMaxSuppressionV2;
1448 };
1449
1450 template<> struct OpParameterTraits<Normalize> {
1451 static const OpParameter enum_value = OpParameter_Normalize;
1452 };
1453
1454 template<> struct OpParameterTraits<PackParam> {
1455 static const OpParameter enum_value = OpParameter_PackParam;
1456 };
1457
1458 template<> struct OpParameterTraits<Permute> {
1459 static const OpParameter enum_value = OpParameter_Permute;
1460 };
1461
1462 template<> struct OpParameterTraits<Plugin> {
1463 static const OpParameter enum_value = OpParameter_Plugin;
1464 };
1465
1466 template<> struct OpParameterTraits<Pool> {
1467 static const OpParameter enum_value = OpParameter_Pool;
1468 };
1469
1470 template<> struct OpParameterTraits<PRelu> {
1471 static const OpParameter enum_value = OpParameter_PRelu;
1472 };
1473
1474 template<> struct OpParameterTraits<PriorBox> {
1475 static const OpParameter enum_value = OpParameter_PriorBox;
1476 };
1477
1478 template<> struct OpParameterTraits<Proposal> {
1479 static const OpParameter enum_value = OpParameter_Proposal;
1480 };
1481
1482 template<> struct OpParameterTraits<QuantizedAvgPool> {
1483 static const OpParameter enum_value = OpParameter_QuantizedAvgPool;
1484 };
1485
1486 template<> struct OpParameterTraits<QuantizedBiasAdd> {
1487 static const OpParameter enum_value = OpParameter_QuantizedBiasAdd;
1488 };
1489
1490 template<> struct OpParameterTraits<QuantizedConcat> {
1491 static const OpParameter enum_value = OpParameter_QuantizedConcat;
1492 };
1493
1494 template<> struct OpParameterTraits<QuantizedLogistic> {
1495 static const OpParameter enum_value = OpParameter_QuantizedLogistic;
1496 };
1497
1498 template<> struct OpParameterTraits<QuantizedMatMul> {
1499 static const OpParameter enum_value = OpParameter_QuantizedMatMul;
1500 };
1501
1502 template<> struct OpParameterTraits<QuantizedMaxPool> {
1503 static const OpParameter enum_value = OpParameter_QuantizedMaxPool;
1504 };
1505
1506 template<> struct OpParameterTraits<QuantizedRelu> {
1507 static const OpParameter enum_value = OpParameter_QuantizedRelu;
1508 };
1509
1510 template<> struct OpParameterTraits<QuantizedRelu6> {
1511 static const OpParameter enum_value = OpParameter_QuantizedRelu6;
1512 };
1513
1514 template<> struct OpParameterTraits<QuantizedReshape> {
1515 static const OpParameter enum_value = OpParameter_QuantizedReshape;
1516 };
1517
1518 template<> struct OpParameterTraits<QuantizedSoftmax> {
1519 static const OpParameter enum_value = OpParameter_QuantizedSoftmax;
1520 };
1521
1522 template<> struct OpParameterTraits<QuantizeMaxMin> {
1523 static const OpParameter enum_value = OpParameter_QuantizeMaxMin;
1524 };
1525
1526 template<> struct OpParameterTraits<QuantizeV2> {
1527 static const OpParameter enum_value = OpParameter_QuantizeV2;
1528 };
1529
1530 template<> struct OpParameterTraits<Range> {
1531 static const OpParameter enum_value = OpParameter_Range;
1532 };
1533
1534 template<> struct OpParameterTraits<Rank> {
1535 static const OpParameter enum_value = OpParameter_Rank;
1536 };
1537
1538 template<> struct OpParameterTraits<ReduceJoin> {
1539 static const OpParameter enum_value = OpParameter_ReduceJoin;
1540 };
1541
1542 template<> struct OpParameterTraits<ReductionParam> {
1543 static const OpParameter enum_value = OpParameter_ReductionParam;
1544 };
1545
1546 template<> struct OpParameterTraits<Relu> {
1547 static const OpParameter enum_value = OpParameter_Relu;
1548 };
1549
1550 template<> struct OpParameterTraits<Relu6> {
1551 static const OpParameter enum_value = OpParameter_Relu6;
1552 };
1553
1554 template<> struct OpParameterTraits<RequantizationRange> {
1555 static const OpParameter enum_value = OpParameter_RequantizationRange;
1556 };
1557
1558 template<> struct OpParameterTraits<Requantize> {
1559 static const OpParameter enum_value = OpParameter_Requantize;
1560 };
1561
1562 template<> struct OpParameterTraits<Reshape> {
1563 static const OpParameter enum_value = OpParameter_Reshape;
1564 };
1565
1566 template<> struct OpParameterTraits<Resize> {
1567 static const OpParameter enum_value = OpParameter_Resize;
1568 };
1569
1570 template<> struct OpParameterTraits<RoiPooling> {
1571 static const OpParameter enum_value = OpParameter_RoiPooling;
1572 };
1573
1574 template<> struct OpParameterTraits<Scale> {
1575 static const OpParameter enum_value = OpParameter_Scale;
1576 };
1577
1578 template<> struct OpParameterTraits<Selu> {
1579 static const OpParameter enum_value = OpParameter_Selu;
1580 };
1581
1582 template<> struct OpParameterTraits<Size> {
1583 static const OpParameter enum_value = OpParameter_Size;
1584 };
1585
1586 template<> struct OpParameterTraits<Slice> {
1587 static const OpParameter enum_value = OpParameter_Slice;
1588 };
1589
1590 template<> struct OpParameterTraits<SliceTf> {
1591 static const OpParameter enum_value = OpParameter_SliceTf;
1592 };
1593
1594 template<> struct OpParameterTraits<SpaceBatch> {
1595 static const OpParameter enum_value = OpParameter_SpaceBatch;
1596 };
1597
1598 template<> struct OpParameterTraits<SqueezeParam> {
1599 static const OpParameter enum_value = OpParameter_SqueezeParam;
1600 };
1601
1602 template<> struct OpParameterTraits<StridedSliceParam> {
1603 static const OpParameter enum_value = OpParameter_StridedSliceParam;
1604 };
1605
1606 template<> struct OpParameterTraits<TensorConvertInfo> {
1607 static const OpParameter enum_value = OpParameter_TensorConvertInfo;
1608 };
1609
1610 template<> struct OpParameterTraits<TfQuantizedConv2D> {
1611 static const OpParameter enum_value = OpParameter_TfQuantizedConv2D;
1612 };
1613
1614 template<> struct OpParameterTraits<TopKV2> {
1615 static const OpParameter enum_value = OpParameter_TopKV2;
1616 };
1617
1618 template<> struct OpParameterTraits<Transpose> {
1619 static const OpParameter enum_value = OpParameter_Transpose;
1620 };
1621
1622 template<> struct OpParameterTraits<UnaryOp> {
1623 static const OpParameter enum_value = OpParameter_UnaryOp;
1624 };
1625
1626 template<> struct OpParameterTraits<MomentsParam> {
1627 static const OpParameter enum_value = OpParameter_MomentsParam;
1628 };
1629
1630 template<> struct OpParameterTraits<RNNParam> {
1631 static const OpParameter enum_value = OpParameter_RNNParam;
1632 };
1633
1634 template<> struct OpParameterTraits<BatchMatMulParam> {
1635 static const OpParameter enum_value = OpParameter_BatchMatMulParam;
1636 };
1637
1638 template<> struct OpParameterTraits<QuantizedFloatParam> {
1639 static const OpParameter enum_value = OpParameter_QuantizedFloatParam;
1640 };
1641
1642 template<> struct OpParameterTraits<DepthSpaceParam> {
1643 static const OpParameter enum_value = OpParameter_DepthSpaceParam;
1644 };
1645
1646 template<> struct OpParameterTraits<EltwiseInt8> {
1647 static const OpParameter enum_value = OpParameter_EltwiseInt8;
1648 };
1649
1650 template<> struct OpParameterTraits<ReverseSequenceParam> {
1651 static const OpParameter enum_value = OpParameter_ReverseSequenceParam;
1652 };
1653
1654 template<> struct OpParameterTraits<Extra> {
1655 static const OpParameter enum_value = OpParameter_Extra;
1656 };
1657
1658 template<> struct OpParameterTraits<Pool3D> {
1659 static const OpParameter enum_value = OpParameter_Pool3D;
1660 };
1661
1662 template<> struct OpParameterTraits<Convolution3D> {
1663 static const OpParameter enum_value = OpParameter_Convolution3D;
1664 };
1665
1666 template<> struct OpParameterTraits<ELU> {
1667 static const OpParameter enum_value = OpParameter_ELU;
1668 };
1669
1670 template<> struct OpParameterTraits<DetectionPostProcessParam> {
1671 static const OpParameter enum_value = OpParameter_DetectionPostProcessParam;
1672 };
1673
1674 template<> struct OpParameterTraits<OneHotParam> {
1675 static const OpParameter enum_value = OpParameter_OneHotParam;
1676 };
1677
1678 template<> struct OpParameterTraits<PadParam> {
1679 static const OpParameter enum_value = OpParameter_PadParam;
1680 };
1681
1682 template<> struct OpParameterTraits<WhileParam> {
1683 static const OpParameter enum_value = OpParameter_WhileParam;
1684 };
1685
1686 template<> struct OpParameterTraits<IfParam> {
1687 static const OpParameter enum_value = OpParameter_IfParam;
1688 };
1689
1690 template<> struct OpParameterTraits<RandomUniform> {
1691 static const OpParameter enum_value = OpParameter_RandomUniform;
1692 };
1693
1694 template<> struct OpParameterTraits<LayerNorm> {
1695 static const OpParameter enum_value = OpParameter_LayerNorm;
1696 };
1697
1698 template<> struct OpParameterTraits<TensorArray> {
1699 static const OpParameter enum_value = OpParameter_TensorArray;
1700 };
1701
1702 template<> struct OpParameterTraits<LSTMBlockCell> {
1703 static const OpParameter enum_value = OpParameter_LSTMBlockCell;
1704 };
1705
1706 template<> struct OpParameterTraits<GridSample> {
1707 static const OpParameter enum_value = OpParameter_GridSample;
1708 };
1709
1710 template<> struct OpParameterTraits<LoopParam> {
1711 static const OpParameter enum_value = OpParameter_LoopParam;
1712 };
1713
1714 struct OpParameterUnion {
1715 OpParameter type;
1716 void *value;
1717
1718 OpParameterUnion() : type(OpParameter_NONE), value(nullptr) {}
1719 OpParameterUnion(OpParameterUnion&& u) FLATBUFFERS_NOEXCEPT :
1720 type(OpParameter_NONE), value(nullptr)
1721 { std::swap(type, u.type); std::swap(value, u.value); }
1722 OpParameterUnion(const OpParameterUnion &) FLATBUFFERS_NOEXCEPT;
1723 OpParameterUnion &operator=(const OpParameterUnion &u) FLATBUFFERS_NOEXCEPT
1724 { OpParameterUnion t(u); std::swap(type, t.type); std::swap(value, t.value); return *this; }
1725 OpParameterUnion &operator=(OpParameterUnion &&u) FLATBUFFERS_NOEXCEPT
1726 { std::swap(type, u.type); std::swap(value, u.value); return *this; }
1727 ~OpParameterUnion() { Reset(); }
1728
1729 void Reset();
1730
1731 #ifndef FLATBUFFERS_CPP98_STL
1732 template <typename T>
1733 void Set(T&& val) {
1734 Reset();
1735 type = OpParameterTraits<typename T::TableType>::enum_value;
1736 if (type != OpParameter_NONE) {
1737 value = new T(std::forward<T>(val));
1738 }
1739 }
1740 #endif // FLATBUFFERS_CPP98_STL
1741
1742 static void *UnPack(const void *obj, OpParameter type, const flatbuffers::resolver_function_t *resolver);
1743 flatbuffers::Offset<void> Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const;
1744
1745 QuantizedAddT *AsQuantizedAdd() {
1746 return type == OpParameter_QuantizedAdd ?
1747 reinterpret_cast<QuantizedAddT *>(value) : nullptr;
1748 }
1749 const QuantizedAddT *AsQuantizedAdd() const {
1750 return type == OpParameter_QuantizedAdd ?
1751 reinterpret_cast<const QuantizedAddT *>(value) : nullptr;
1752 }
1753 ArgMaxT *AsArgMax() {
1754 return type == OpParameter_ArgMax ?
1755 reinterpret_cast<ArgMaxT *>(value) : nullptr;
1756 }
1757 const ArgMaxT *AsArgMax() const {
1758 return type == OpParameter_ArgMax ?
1759 reinterpret_cast<const ArgMaxT *>(value) : nullptr;
1760 }
1761 AsStringT *AsAsString() {
1762 return type == OpParameter_AsString ?
1763 reinterpret_cast<AsStringT *>(value) : nullptr;
1764 }
1765 const AsStringT *AsAsString() const {
1766 return type == OpParameter_AsString ?
1767 reinterpret_cast<const AsStringT *>(value) : nullptr;
1768 }
1769 AxisT *AsAxis() {
1770 return type == OpParameter_Axis ?
1771 reinterpret_cast<AxisT *>(value) : nullptr;
1772 }
1773 const AxisT *AsAxis() const {
1774 return type == OpParameter_Axis ?
1775 reinterpret_cast<const AxisT *>(value) : nullptr;
1776 }
1777 BatchNormT *AsBatchNorm() {
1778 return type == OpParameter_BatchNorm ?
1779 reinterpret_cast<BatchNormT *>(value) : nullptr;
1780 }
1781 const BatchNormT *AsBatchNorm() const {
1782 return type == OpParameter_BatchNorm ?
1783 reinterpret_cast<const BatchNormT *>(value) : nullptr;
1784 }
1785 BinaryOpT *AsBinaryOp() {
1786 return type == OpParameter_BinaryOp ?
1787 reinterpret_cast<BinaryOpT *>(value) : nullptr;
1788 }
1789 const BinaryOpT *AsBinaryOp() const {
1790 return type == OpParameter_BinaryOp ?
1791 reinterpret_cast<const BinaryOpT *>(value) : nullptr;
1792 }
1793 BlobT *AsBlob() {
1794 return type == OpParameter_Blob ?
1795 reinterpret_cast<BlobT *>(value) : nullptr;
1796 }
1797 const BlobT *AsBlob() const {
1798 return type == OpParameter_Blob ?
1799 reinterpret_cast<const BlobT *>(value) : nullptr;
1800 }
1801 CastParamT *AsCastParam() {
1802 return type == OpParameter_CastParam ?
1803 reinterpret_cast<CastParamT *>(value) : nullptr;
1804 }
1805 const CastParamT *AsCastParam() const {
1806 return type == OpParameter_CastParam ?
1807 reinterpret_cast<const CastParamT *>(value) : nullptr;
1808 }
1809 Convolution2DT *AsConvolution2D() {
1810 return type == OpParameter_Convolution2D ?
1811 reinterpret_cast<Convolution2DT *>(value) : nullptr;
1812 }
1813 const Convolution2DT *AsConvolution2D() const {
1814 return type == OpParameter_Convolution2D ?
1815 reinterpret_cast<const Convolution2DT *>(value) : nullptr;
1816 }
1817 CropT *AsCrop() {
1818 return type == OpParameter_Crop ?
1819 reinterpret_cast<CropT *>(value) : nullptr;
1820 }
1821 const CropT *AsCrop() const {
1822 return type == OpParameter_Crop ?
1823 reinterpret_cast<const CropT *>(value) : nullptr;
1824 }
1825 CropAndResizeT *AsCropAndResize() {
1826 return type == OpParameter_CropAndResize ?
1827 reinterpret_cast<CropAndResizeT *>(value) : nullptr;
1828 }
1829 const CropAndResizeT *AsCropAndResize() const {
1830 return type == OpParameter_CropAndResize ?
1831 reinterpret_cast<const CropAndResizeT *>(value) : nullptr;
1832 }
1833 DequantizeT *AsDequantize() {
1834 return type == OpParameter_Dequantize ?
1835 reinterpret_cast<DequantizeT *>(value) : nullptr;
1836 }
1837 const DequantizeT *AsDequantize() const {
1838 return type == OpParameter_Dequantize ?
1839 reinterpret_cast<const DequantizeT *>(value) : nullptr;
1840 }
1841 DetectionOutputT *AsDetectionOutput() {
1842 return type == OpParameter_DetectionOutput ?
1843 reinterpret_cast<DetectionOutputT *>(value) : nullptr;
1844 }
1845 const DetectionOutputT *AsDetectionOutput() const {
1846 return type == OpParameter_DetectionOutput ?
1847 reinterpret_cast<const DetectionOutputT *>(value) : nullptr;
1848 }
1849 EltwiseT *AsEltwise() {
1850 return type == OpParameter_Eltwise ?
1851 reinterpret_cast<EltwiseT *>(value) : nullptr;
1852 }
1853 const EltwiseT *AsEltwise() const {
1854 return type == OpParameter_Eltwise ?
1855 reinterpret_cast<const EltwiseT *>(value) : nullptr;
1856 }
1857 ExpandDimsT *AsExpandDims() {
1858 return type == OpParameter_ExpandDims ?
1859 reinterpret_cast<ExpandDimsT *>(value) : nullptr;
1860 }
1861 const ExpandDimsT *AsExpandDims() const {
1862 return type == OpParameter_ExpandDims ?
1863 reinterpret_cast<const ExpandDimsT *>(value) : nullptr;
1864 }
1865 FillT *AsFill() {
1866 return type == OpParameter_Fill ?
1867 reinterpret_cast<FillT *>(value) : nullptr;
1868 }
1869 const FillT *AsFill() const {
1870 return type == OpParameter_Fill ?
1871 reinterpret_cast<const FillT *>(value) : nullptr;
1872 }
1873 FlattenT *AsFlatten() {
1874 return type == OpParameter_Flatten ?
1875 reinterpret_cast<FlattenT *>(value) : nullptr;
1876 }
1877 const FlattenT *AsFlatten() const {
1878 return type == OpParameter_Flatten ?
1879 reinterpret_cast<const FlattenT *>(value) : nullptr;
1880 }
1881 GatherT *AsGather() {
1882 return type == OpParameter_Gather ?
1883 reinterpret_cast<GatherT *>(value) : nullptr;
1884 }
1885 const GatherT *AsGather() const {
1886 return type == OpParameter_Gather ?
1887 reinterpret_cast<const GatherT *>(value) : nullptr;
1888 }
1889 GatherV2T *AsGatherV2() {
1890 return type == OpParameter_GatherV2 ?
1891 reinterpret_cast<GatherV2T *>(value) : nullptr;
1892 }
1893 const GatherV2T *AsGatherV2() const {
1894 return type == OpParameter_GatherV2 ?
1895 reinterpret_cast<const GatherV2T *>(value) : nullptr;
1896 }
1897 InnerProductT *AsInnerProduct() {
1898 return type == OpParameter_InnerProduct ?
1899 reinterpret_cast<InnerProductT *>(value) : nullptr;
1900 }
1901 const InnerProductT *AsInnerProduct() const {
1902 return type == OpParameter_InnerProduct ?
1903 reinterpret_cast<const InnerProductT *>(value) : nullptr;
1904 }
1905 InputT *AsInput() {
1906 return type == OpParameter_Input ?
1907 reinterpret_cast<InputT *>(value) : nullptr;
1908 }
1909 const InputT *AsInput() const {
1910 return type == OpParameter_Input ?
1911 reinterpret_cast<const InputT *>(value) : nullptr;
1912 }
1913 InterpT *AsInterp() {
1914 return type == OpParameter_Interp ?
1915 reinterpret_cast<InterpT *>(value) : nullptr;
1916 }
1917 const InterpT *AsInterp() const {
1918 return type == OpParameter_Interp ?
1919 reinterpret_cast<const InterpT *>(value) : nullptr;
1920 }
1921 LRNT *AsLRN() {
1922 return type == OpParameter_LRN ?
1923 reinterpret_cast<LRNT *>(value) : nullptr;
1924 }
1925 const LRNT *AsLRN() const {
1926 return type == OpParameter_LRN ?
1927 reinterpret_cast<const LRNT *>(value) : nullptr;
1928 }
1929 LSTMT *AsLSTM() {
1930 return type == OpParameter_LSTM ?
1931 reinterpret_cast<LSTMT *>(value) : nullptr;
1932 }
1933 const LSTMT *AsLSTM() const {
1934 return type == OpParameter_LSTM ?
1935 reinterpret_cast<const LSTMT *>(value) : nullptr;
1936 }
1937 MatMulT *AsMatMul() {
1938 return type == OpParameter_MatMul ?
1939 reinterpret_cast<MatMulT *>(value) : nullptr;
1940 }
1941 const MatMulT *AsMatMul() const {
1942 return type == OpParameter_MatMul ?
1943 reinterpret_cast<const MatMulT *>(value) : nullptr;
1944 }
1945 NonMaxSuppressionV2T *AsNonMaxSuppressionV2() {
1946 return type == OpParameter_NonMaxSuppressionV2 ?
1947 reinterpret_cast<NonMaxSuppressionV2T *>(value) : nullptr;
1948 }
1949 const NonMaxSuppressionV2T *AsNonMaxSuppressionV2() const {
1950 return type == OpParameter_NonMaxSuppressionV2 ?
1951 reinterpret_cast<const NonMaxSuppressionV2T *>(value) : nullptr;
1952 }
1953 NormalizeT *AsNormalize() {
1954 return type == OpParameter_Normalize ?
1955 reinterpret_cast<NormalizeT *>(value) : nullptr;
1956 }
1957 const NormalizeT *AsNormalize() const {
1958 return type == OpParameter_Normalize ?
1959 reinterpret_cast<const NormalizeT *>(value) : nullptr;
1960 }
1961 PackParamT *AsPackParam() {
1962 return type == OpParameter_PackParam ?
1963 reinterpret_cast<PackParamT *>(value) : nullptr;
1964 }
1965 const PackParamT *AsPackParam() const {
1966 return type == OpParameter_PackParam ?
1967 reinterpret_cast<const PackParamT *>(value) : nullptr;
1968 }
1969 PermuteT *AsPermute() {
1970 return type == OpParameter_Permute ?
1971 reinterpret_cast<PermuteT *>(value) : nullptr;
1972 }
1973 const PermuteT *AsPermute() const {
1974 return type == OpParameter_Permute ?
1975 reinterpret_cast<const PermuteT *>(value) : nullptr;
1976 }
1977 PluginT *AsPlugin() {
1978 return type == OpParameter_Plugin ?
1979 reinterpret_cast<PluginT *>(value) : nullptr;
1980 }
1981 const PluginT *AsPlugin() const {
1982 return type == OpParameter_Plugin ?
1983 reinterpret_cast<const PluginT *>(value) : nullptr;
1984 }
1985 PoolT *AsPool() {
1986 return type == OpParameter_Pool ?
1987 reinterpret_cast<PoolT *>(value) : nullptr;
1988 }
1989 const PoolT *AsPool() const {
1990 return type == OpParameter_Pool ?
1991 reinterpret_cast<const PoolT *>(value) : nullptr;
1992 }
1993 PReluT *AsPRelu() {
1994 return type == OpParameter_PRelu ?
1995 reinterpret_cast<PReluT *>(value) : nullptr;
1996 }
1997 const PReluT *AsPRelu() const {
1998 return type == OpParameter_PRelu ?
1999 reinterpret_cast<const PReluT *>(value) : nullptr;
2000 }
2001 PriorBoxT *AsPriorBox() {
2002 return type == OpParameter_PriorBox ?
2003 reinterpret_cast<PriorBoxT *>(value) : nullptr;
2004 }
2005 const PriorBoxT *AsPriorBox() const {
2006 return type == OpParameter_PriorBox ?
2007 reinterpret_cast<const PriorBoxT *>(value) : nullptr;
2008 }
2009 ProposalT *AsProposal() {
2010 return type == OpParameter_Proposal ?
2011 reinterpret_cast<ProposalT *>(value) : nullptr;
2012 }
2013 const ProposalT *AsProposal() const {
2014 return type == OpParameter_Proposal ?
2015 reinterpret_cast<const ProposalT *>(value) : nullptr;
2016 }
2017 QuantizedAvgPoolT *AsQuantizedAvgPool() {
2018 return type == OpParameter_QuantizedAvgPool ?
2019 reinterpret_cast<QuantizedAvgPoolT *>(value) : nullptr;
2020 }
2021 const QuantizedAvgPoolT *AsQuantizedAvgPool() const {
2022 return type == OpParameter_QuantizedAvgPool ?
2023 reinterpret_cast<const QuantizedAvgPoolT *>(value) : nullptr;
2024 }
2025 QuantizedBiasAddT *AsQuantizedBiasAdd() {
2026 return type == OpParameter_QuantizedBiasAdd ?
2027 reinterpret_cast<QuantizedBiasAddT *>(value) : nullptr;
2028 }
2029 const QuantizedBiasAddT *AsQuantizedBiasAdd() const {
2030 return type == OpParameter_QuantizedBiasAdd ?
2031 reinterpret_cast<const QuantizedBiasAddT *>(value) : nullptr;
2032 }
2033 QuantizedConcatT *AsQuantizedConcat() {
2034 return type == OpParameter_QuantizedConcat ?
2035 reinterpret_cast<QuantizedConcatT *>(value) : nullptr;
2036 }
2037 const QuantizedConcatT *AsQuantizedConcat() const {
2038 return type == OpParameter_QuantizedConcat ?
2039 reinterpret_cast<const QuantizedConcatT *>(value) : nullptr;
2040 }
2041 QuantizedLogisticT *AsQuantizedLogistic() {
2042 return type == OpParameter_QuantizedLogistic ?
2043 reinterpret_cast<QuantizedLogisticT *>(value) : nullptr;
2044 }
2045 const QuantizedLogisticT *AsQuantizedLogistic() const {
2046 return type == OpParameter_QuantizedLogistic ?
2047 reinterpret_cast<const QuantizedLogisticT *>(value) : nullptr;
2048 }
2049 QuantizedMatMulT *AsQuantizedMatMul() {
2050 return type == OpParameter_QuantizedMatMul ?
2051 reinterpret_cast<QuantizedMatMulT *>(value) : nullptr;
2052 }
2053 const QuantizedMatMulT *AsQuantizedMatMul() const {
2054 return type == OpParameter_QuantizedMatMul ?
2055 reinterpret_cast<const QuantizedMatMulT *>(value) : nullptr;
2056 }
2057 QuantizedMaxPoolT *AsQuantizedMaxPool() {
2058 return type == OpParameter_QuantizedMaxPool ?
2059 reinterpret_cast<QuantizedMaxPoolT *>(value) : nullptr;
2060 }
2061 const QuantizedMaxPoolT *AsQuantizedMaxPool() const {
2062 return type == OpParameter_QuantizedMaxPool ?
2063 reinterpret_cast<const QuantizedMaxPoolT *>(value) : nullptr;
2064 }
2065 QuantizedReluT *AsQuantizedRelu() {
2066 return type == OpParameter_QuantizedRelu ?
2067 reinterpret_cast<QuantizedReluT *>(value) : nullptr;
2068 }
2069 const QuantizedReluT *AsQuantizedRelu() const {
2070 return type == OpParameter_QuantizedRelu ?
2071 reinterpret_cast<const QuantizedReluT *>(value) : nullptr;
2072 }
2073 QuantizedRelu6T *AsQuantizedRelu6() {
2074 return type == OpParameter_QuantizedRelu6 ?
2075 reinterpret_cast<QuantizedRelu6T *>(value) : nullptr;
2076 }
2077 const QuantizedRelu6T *AsQuantizedRelu6() const {
2078 return type == OpParameter_QuantizedRelu6 ?
2079 reinterpret_cast<const QuantizedRelu6T *>(value) : nullptr;
2080 }
2081 QuantizedReshapeT *AsQuantizedReshape() {
2082 return type == OpParameter_QuantizedReshape ?
2083 reinterpret_cast<QuantizedReshapeT *>(value) : nullptr;
2084 }
2085 const QuantizedReshapeT *AsQuantizedReshape() const {
2086 return type == OpParameter_QuantizedReshape ?
2087 reinterpret_cast<const QuantizedReshapeT *>(value) : nullptr;
2088 }
2089 QuantizedSoftmaxT *AsQuantizedSoftmax() {
2090 return type == OpParameter_QuantizedSoftmax ?
2091 reinterpret_cast<QuantizedSoftmaxT *>(value) : nullptr;
2092 }
2093 const QuantizedSoftmaxT *AsQuantizedSoftmax() const {
2094 return type == OpParameter_QuantizedSoftmax ?
2095 reinterpret_cast<const QuantizedSoftmaxT *>(value) : nullptr;
2096 }
2097 QuantizeMaxMinT *AsQuantizeMaxMin() {
2098 return type == OpParameter_QuantizeMaxMin ?
2099 reinterpret_cast<QuantizeMaxMinT *>(value) : nullptr;
2100 }
2101 const QuantizeMaxMinT *AsQuantizeMaxMin() const {
2102 return type == OpParameter_QuantizeMaxMin ?
2103 reinterpret_cast<const QuantizeMaxMinT *>(value) : nullptr;
2104 }
2105 QuantizeV2T *AsQuantizeV2() {
2106 return type == OpParameter_QuantizeV2 ?
2107 reinterpret_cast<QuantizeV2T *>(value) : nullptr;
2108 }
2109 const QuantizeV2T *AsQuantizeV2() const {
2110 return type == OpParameter_QuantizeV2 ?
2111 reinterpret_cast<const QuantizeV2T *>(value) : nullptr;
2112 }
2113 RangeT *AsRange() {
2114 return type == OpParameter_Range ?
2115 reinterpret_cast<RangeT *>(value) : nullptr;
2116 }
2117 const RangeT *AsRange() const {
2118 return type == OpParameter_Range ?
2119 reinterpret_cast<const RangeT *>(value) : nullptr;
2120 }
2121 RankT *AsRank() {
2122 return type == OpParameter_Rank ?
2123 reinterpret_cast<RankT *>(value) : nullptr;
2124 }
2125 const RankT *AsRank() const {
2126 return type == OpParameter_Rank ?
2127 reinterpret_cast<const RankT *>(value) : nullptr;
2128 }
2129 ReduceJoinT *AsReduceJoin() {
2130 return type == OpParameter_ReduceJoin ?
2131 reinterpret_cast<ReduceJoinT *>(value) : nullptr;
2132 }
2133 const ReduceJoinT *AsReduceJoin() const {
2134 return type == OpParameter_ReduceJoin ?
2135 reinterpret_cast<const ReduceJoinT *>(value) : nullptr;
2136 }
2137 ReductionParamT *AsReductionParam() {
2138 return type == OpParameter_ReductionParam ?
2139 reinterpret_cast<ReductionParamT *>(value) : nullptr;
2140 }
2141 const ReductionParamT *AsReductionParam() const {
2142 return type == OpParameter_ReductionParam ?
2143 reinterpret_cast<const ReductionParamT *>(value) : nullptr;
2144 }
2145 ReluT *AsRelu() {
2146 return type == OpParameter_Relu ?
2147 reinterpret_cast<ReluT *>(value) : nullptr;
2148 }
2149 const ReluT *AsRelu() const {
2150 return type == OpParameter_Relu ?
2151 reinterpret_cast<const ReluT *>(value) : nullptr;
2152 }
2153 Relu6T *AsRelu6() {
2154 return type == OpParameter_Relu6 ?
2155 reinterpret_cast<Relu6T *>(value) : nullptr;
2156 }
2157 const Relu6T *AsRelu6() const {
2158 return type == OpParameter_Relu6 ?
2159 reinterpret_cast<const Relu6T *>(value) : nullptr;
2160 }
2161 RequantizationRangeT *AsRequantizationRange() {
2162 return type == OpParameter_RequantizationRange ?
2163 reinterpret_cast<RequantizationRangeT *>(value) : nullptr;
2164 }
2165 const RequantizationRangeT *AsRequantizationRange() const {
2166 return type == OpParameter_RequantizationRange ?
2167 reinterpret_cast<const RequantizationRangeT *>(value) : nullptr;
2168 }
2169 RequantizeT *AsRequantize() {
2170 return type == OpParameter_Requantize ?
2171 reinterpret_cast<RequantizeT *>(value) : nullptr;
2172 }
2173 const RequantizeT *AsRequantize() const {
2174 return type == OpParameter_Requantize ?
2175 reinterpret_cast<const RequantizeT *>(value) : nullptr;
2176 }
2177 ReshapeT *AsReshape() {
2178 return type == OpParameter_Reshape ?
2179 reinterpret_cast<ReshapeT *>(value) : nullptr;
2180 }
2181 const ReshapeT *AsReshape() const {
2182 return type == OpParameter_Reshape ?
2183 reinterpret_cast<const ReshapeT *>(value) : nullptr;
2184 }
2185 ResizeT *AsResize() {
2186 return type == OpParameter_Resize ?
2187 reinterpret_cast<ResizeT *>(value) : nullptr;
2188 }
2189 const ResizeT *AsResize() const {
2190 return type == OpParameter_Resize ?
2191 reinterpret_cast<const ResizeT *>(value) : nullptr;
2192 }
2193 RoiPoolingT *AsRoiPooling() {
2194 return type == OpParameter_RoiPooling ?
2195 reinterpret_cast<RoiPoolingT *>(value) : nullptr;
2196 }
2197 const RoiPoolingT *AsRoiPooling() const {
2198 return type == OpParameter_RoiPooling ?
2199 reinterpret_cast<const RoiPoolingT *>(value) : nullptr;
2200 }
2201 ScaleT *AsScale() {
2202 return type == OpParameter_Scale ?
2203 reinterpret_cast<ScaleT *>(value) : nullptr;
2204 }
2205 const ScaleT *AsScale() const {
2206 return type == OpParameter_Scale ?
2207 reinterpret_cast<const ScaleT *>(value) : nullptr;
2208 }
2209 SeluT *AsSelu() {
2210 return type == OpParameter_Selu ?
2211 reinterpret_cast<SeluT *>(value) : nullptr;
2212 }
2213 const SeluT *AsSelu() const {
2214 return type == OpParameter_Selu ?
2215 reinterpret_cast<const SeluT *>(value) : nullptr;
2216 }
2217 SizeT *AsSize() {
2218 return type == OpParameter_Size ?
2219 reinterpret_cast<SizeT *>(value) : nullptr;
2220 }
2221 const SizeT *AsSize() const {
2222 return type == OpParameter_Size ?
2223 reinterpret_cast<const SizeT *>(value) : nullptr;
2224 }
2225 SliceT *AsSlice() {
2226 return type == OpParameter_Slice ?
2227 reinterpret_cast<SliceT *>(value) : nullptr;
2228 }
2229 const SliceT *AsSlice() const {
2230 return type == OpParameter_Slice ?
2231 reinterpret_cast<const SliceT *>(value) : nullptr;
2232 }
2233 SliceTfT *AsSliceTf() {
2234 return type == OpParameter_SliceTf ?
2235 reinterpret_cast<SliceTfT *>(value) : nullptr;
2236 }
2237 const SliceTfT *AsSliceTf() const {
2238 return type == OpParameter_SliceTf ?
2239 reinterpret_cast<const SliceTfT *>(value) : nullptr;
2240 }
2241 SpaceBatchT *AsSpaceBatch() {
2242 return type == OpParameter_SpaceBatch ?
2243 reinterpret_cast<SpaceBatchT *>(value) : nullptr;
2244 }
2245 const SpaceBatchT *AsSpaceBatch() const {
2246 return type == OpParameter_SpaceBatch ?
2247 reinterpret_cast<const SpaceBatchT *>(value) : nullptr;
2248 }
2249 SqueezeParamT *AsSqueezeParam() {
2250 return type == OpParameter_SqueezeParam ?
2251 reinterpret_cast<SqueezeParamT *>(value) : nullptr;
2252 }
2253 const SqueezeParamT *AsSqueezeParam() const {
2254 return type == OpParameter_SqueezeParam ?
2255 reinterpret_cast<const SqueezeParamT *>(value) : nullptr;
2256 }
2257 StridedSliceParamT *AsStridedSliceParam() {
2258 return type == OpParameter_StridedSliceParam ?
2259 reinterpret_cast<StridedSliceParamT *>(value) : nullptr;
2260 }
2261 const StridedSliceParamT *AsStridedSliceParam() const {
2262 return type == OpParameter_StridedSliceParam ?
2263 reinterpret_cast<const StridedSliceParamT *>(value) : nullptr;
2264 }
2265 TensorConvertInfoT *AsTensorConvertInfo() {
2266 return type == OpParameter_TensorConvertInfo ?
2267 reinterpret_cast<TensorConvertInfoT *>(value) : nullptr;
2268 }
2269 const TensorConvertInfoT *AsTensorConvertInfo() const {
2270 return type == OpParameter_TensorConvertInfo ?
2271 reinterpret_cast<const TensorConvertInfoT *>(value) : nullptr;
2272 }
2273 TfQuantizedConv2DT *AsTfQuantizedConv2D() {
2274 return type == OpParameter_TfQuantizedConv2D ?
2275 reinterpret_cast<TfQuantizedConv2DT *>(value) : nullptr;
2276 }
2277 const TfQuantizedConv2DT *AsTfQuantizedConv2D() const {
2278 return type == OpParameter_TfQuantizedConv2D ?
2279 reinterpret_cast<const TfQuantizedConv2DT *>(value) : nullptr;
2280 }
2281 TopKV2T *AsTopKV2() {
2282 return type == OpParameter_TopKV2 ?
2283 reinterpret_cast<TopKV2T *>(value) : nullptr;
2284 }
2285 const TopKV2T *AsTopKV2() const {
2286 return type == OpParameter_TopKV2 ?
2287 reinterpret_cast<const TopKV2T *>(value) : nullptr;
2288 }
2289 TransposeT *AsTranspose() {
2290 return type == OpParameter_Transpose ?
2291 reinterpret_cast<TransposeT *>(value) : nullptr;
2292 }
2293 const TransposeT *AsTranspose() const {
2294 return type == OpParameter_Transpose ?
2295 reinterpret_cast<const TransposeT *>(value) : nullptr;
2296 }
2297 UnaryOpT *AsUnaryOp() {
2298 return type == OpParameter_UnaryOp ?
2299 reinterpret_cast<UnaryOpT *>(value) : nullptr;
2300 }
2301 const UnaryOpT *AsUnaryOp() const {
2302 return type == OpParameter_UnaryOp ?
2303 reinterpret_cast<const UnaryOpT *>(value) : nullptr;
2304 }
2305 MomentsParamT *AsMomentsParam() {
2306 return type == OpParameter_MomentsParam ?
2307 reinterpret_cast<MomentsParamT *>(value) : nullptr;
2308 }
2309 const MomentsParamT *AsMomentsParam() const {
2310 return type == OpParameter_MomentsParam ?
2311 reinterpret_cast<const MomentsParamT *>(value) : nullptr;
2312 }
2313 RNNParamT *AsRNNParam() {
2314 return type == OpParameter_RNNParam ?
2315 reinterpret_cast<RNNParamT *>(value) : nullptr;
2316 }
2317 const RNNParamT *AsRNNParam() const {
2318 return type == OpParameter_RNNParam ?
2319 reinterpret_cast<const RNNParamT *>(value) : nullptr;
2320 }
2321 BatchMatMulParamT *AsBatchMatMulParam() {
2322 return type == OpParameter_BatchMatMulParam ?
2323 reinterpret_cast<BatchMatMulParamT *>(value) : nullptr;
2324 }
2325 const BatchMatMulParamT *AsBatchMatMulParam() const {
2326 return type == OpParameter_BatchMatMulParam ?
2327 reinterpret_cast<const BatchMatMulParamT *>(value) : nullptr;
2328 }
2329 QuantizedFloatParamT *AsQuantizedFloatParam() {
2330 return type == OpParameter_QuantizedFloatParam ?
2331 reinterpret_cast<QuantizedFloatParamT *>(value) : nullptr;
2332 }
2333 const QuantizedFloatParamT *AsQuantizedFloatParam() const {
2334 return type == OpParameter_QuantizedFloatParam ?
2335 reinterpret_cast<const QuantizedFloatParamT *>(value) : nullptr;
2336 }
2337 DepthSpaceParamT *AsDepthSpaceParam() {
2338 return type == OpParameter_DepthSpaceParam ?
2339 reinterpret_cast<DepthSpaceParamT *>(value) : nullptr;
2340 }
2341 const DepthSpaceParamT *AsDepthSpaceParam() const {
2342 return type == OpParameter_DepthSpaceParam ?
2343 reinterpret_cast<const DepthSpaceParamT *>(value) : nullptr;
2344 }
2345 EltwiseInt8T *AsEltwiseInt8() {
2346 return type == OpParameter_EltwiseInt8 ?
2347 reinterpret_cast<EltwiseInt8T *>(value) : nullptr;
2348 }
2349 const EltwiseInt8T *AsEltwiseInt8() const {
2350 return type == OpParameter_EltwiseInt8 ?
2351 reinterpret_cast<const EltwiseInt8T *>(value) : nullptr;
2352 }
2353 ReverseSequenceParamT *AsReverseSequenceParam() {
2354 return type == OpParameter_ReverseSequenceParam ?
2355 reinterpret_cast<ReverseSequenceParamT *>(value) : nullptr;
2356 }
2357 const ReverseSequenceParamT *AsReverseSequenceParam() const {
2358 return type == OpParameter_ReverseSequenceParam ?
2359 reinterpret_cast<const ReverseSequenceParamT *>(value) : nullptr;
2360 }
2361 ExtraT *AsExtra() {
2362 return type == OpParameter_Extra ?
2363 reinterpret_cast<ExtraT *>(value) : nullptr;
2364 }
2365 const ExtraT *AsExtra() const {
2366 return type == OpParameter_Extra ?
2367 reinterpret_cast<const ExtraT *>(value) : nullptr;
2368 }
2369 Pool3DT *AsPool3D() {
2370 return type == OpParameter_Pool3D ?
2371 reinterpret_cast<Pool3DT *>(value) : nullptr;
2372 }
2373 const Pool3DT *AsPool3D() const {
2374 return type == OpParameter_Pool3D ?
2375 reinterpret_cast<const Pool3DT *>(value) : nullptr;
2376 }
2377 Convolution3DT *AsConvolution3D() {
2378 return type == OpParameter_Convolution3D ?
2379 reinterpret_cast<Convolution3DT *>(value) : nullptr;
2380 }
2381 const Convolution3DT *AsConvolution3D() const {
2382 return type == OpParameter_Convolution3D ?
2383 reinterpret_cast<const Convolution3DT *>(value) : nullptr;
2384 }
2385 ELUT *AsELU() {
2386 return type == OpParameter_ELU ?
2387 reinterpret_cast<ELUT *>(value) : nullptr;
2388 }
2389 const ELUT *AsELU() const {
2390 return type == OpParameter_ELU ?
2391 reinterpret_cast<const ELUT *>(value) : nullptr;
2392 }
2393 DetectionPostProcessParamT *AsDetectionPostProcessParam() {
2394 return type == OpParameter_DetectionPostProcessParam ?
2395 reinterpret_cast<DetectionPostProcessParamT *>(value) : nullptr;
2396 }
2397 const DetectionPostProcessParamT *AsDetectionPostProcessParam() const {
2398 return type == OpParameter_DetectionPostProcessParam ?
2399 reinterpret_cast<const DetectionPostProcessParamT *>(value) : nullptr;
2400 }
2401 OneHotParamT *AsOneHotParam() {
2402 return type == OpParameter_OneHotParam ?
2403 reinterpret_cast<OneHotParamT *>(value) : nullptr;
2404 }
2405 const OneHotParamT *AsOneHotParam() const {
2406 return type == OpParameter_OneHotParam ?
2407 reinterpret_cast<const OneHotParamT *>(value) : nullptr;
2408 }
2409 PadParamT *AsPadParam() {
2410 return type == OpParameter_PadParam ?
2411 reinterpret_cast<PadParamT *>(value) : nullptr;
2412 }
2413 const PadParamT *AsPadParam() const {
2414 return type == OpParameter_PadParam ?
2415 reinterpret_cast<const PadParamT *>(value) : nullptr;
2416 }
2417 WhileParamT *AsWhileParam() {
2418 return type == OpParameter_WhileParam ?
2419 reinterpret_cast<WhileParamT *>(value) : nullptr;
2420 }
2421 const WhileParamT *AsWhileParam() const {
2422 return type == OpParameter_WhileParam ?
2423 reinterpret_cast<const WhileParamT *>(value) : nullptr;
2424 }
2425 IfParamT *AsIfParam() {
2426 return type == OpParameter_IfParam ?
2427 reinterpret_cast<IfParamT *>(value) : nullptr;
2428 }
2429 const IfParamT *AsIfParam() const {
2430 return type == OpParameter_IfParam ?
2431 reinterpret_cast<const IfParamT *>(value) : nullptr;
2432 }
2433 RandomUniformT *AsRandomUniform() {
2434 return type == OpParameter_RandomUniform ?
2435 reinterpret_cast<RandomUniformT *>(value) : nullptr;
2436 }
2437 const RandomUniformT *AsRandomUniform() const {
2438 return type == OpParameter_RandomUniform ?
2439 reinterpret_cast<const RandomUniformT *>(value) : nullptr;
2440 }
2441 LayerNormT *AsLayerNorm() {
2442 return type == OpParameter_LayerNorm ?
2443 reinterpret_cast<LayerNormT *>(value) : nullptr;
2444 }
2445 const LayerNormT *AsLayerNorm() const {
2446 return type == OpParameter_LayerNorm ?
2447 reinterpret_cast<const LayerNormT *>(value) : nullptr;
2448 }
2449 TensorArrayT *AsTensorArray() {
2450 return type == OpParameter_TensorArray ?
2451 reinterpret_cast<TensorArrayT *>(value) : nullptr;
2452 }
2453 const TensorArrayT *AsTensorArray() const {
2454 return type == OpParameter_TensorArray ?
2455 reinterpret_cast<const TensorArrayT *>(value) : nullptr;
2456 }
2457 LSTMBlockCellT *AsLSTMBlockCell() {
2458 return type == OpParameter_LSTMBlockCell ?
2459 reinterpret_cast<LSTMBlockCellT *>(value) : nullptr;
2460 }
2461 const LSTMBlockCellT *AsLSTMBlockCell() const {
2462 return type == OpParameter_LSTMBlockCell ?
2463 reinterpret_cast<const LSTMBlockCellT *>(value) : nullptr;
2464 }
2465 GridSampleT *AsGridSample() {
2466 return type == OpParameter_GridSample ?
2467 reinterpret_cast<GridSampleT *>(value) : nullptr;
2468 }
2469 const GridSampleT *AsGridSample() const {
2470 return type == OpParameter_GridSample ?
2471 reinterpret_cast<const GridSampleT *>(value) : nullptr;
2472 }
2473 LoopParamT *AsLoopParam() {
2474 return type == OpParameter_LoopParam ?
2475 reinterpret_cast<LoopParamT *>(value) : nullptr;
2476 }
2477 const LoopParamT *AsLoopParam() const {
2478 return type == OpParameter_LoopParam ?
2479 reinterpret_cast<const LoopParamT *>(value) : nullptr;
2480 }
2481 };
2482
2483 bool VerifyOpParameter(flatbuffers::Verifier &verifier, const void *obj, OpParameter type);
2484 bool VerifyOpParameterVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
2485
2486 enum ForwardType {
2487 ForwardType_CPU = 0,
2488 ForwardType_METAL = 1,
2489 ForwardType_OPENCL = 2,
2490 ForwardType_OPENGLES = 3,
2491 ForwardType_VULKAN = 4,
2492 ForwardType_MIN = ForwardType_CPU,
2493 ForwardType_MAX = ForwardType_VULKAN
2494 };
2495
2496 inline const ForwardType (&EnumValuesForwardType())[5] {
2497 static const ForwardType values[] = {
2498 ForwardType_CPU,
2499 ForwardType_METAL,
2500 ForwardType_OPENCL,
2501 ForwardType_OPENGLES,
2502 ForwardType_VULKAN
2503 };
2504 return values;
2505 }
2506
2507 inline const char * const *EnumNamesForwardType() {
2508 static const char * const names[] = {
2509 "CPU",
2510 "METAL",
2511 "OPENCL",
2512 "OPENGLES",
2513 "VULKAN",
2514 nullptr
2515 };
2516 return names;
2517 }
2518
2519 inline const char *EnumNameForwardType(ForwardType e) {
2520 if (e < ForwardType_CPU || e > ForwardType_VULKAN) return "";
2521 const size_t index = static_cast<int>(e);
2522 return EnumNamesForwardType()[index];
2523 }
2524
2525 enum Usage {
2526 Usage_INFERENCE = 0,
2527 Usage_TRAIN = 1,
2528 Usage_INFERENCE_STATIC = 2,
2529 Usage_MIN = Usage_INFERENCE,
2530 Usage_MAX = Usage_INFERENCE_STATIC
2531 };
2532
2533 inline const Usage (&EnumValuesUsage())[3] {
2534 static const Usage values[] = {
2535 Usage_INFERENCE,
2536 Usage_TRAIN,
2537 Usage_INFERENCE_STATIC
2538 };
2539 return values;
2540 }
2541
2542 inline const char * const *EnumNamesUsage() {
2543 static const char * const names[] = {
2544 "INFERENCE",
2545 "TRAIN",
2546 "INFERENCE_STATIC",
2547 nullptr
2548 };
2549 return names;
2550 }
2551
2552 inline const char *EnumNameUsage(Usage e) {
2553 if (e < Usage_INFERENCE || e > Usage_INFERENCE_STATIC) return "";
2554 const size_t index = static_cast<int>(e);
2555 return EnumNamesUsage()[index];
2556 }
2557
2558 struct PluginT : public flatbuffers::NativeTable {
2559 typedef Plugin TableType;
2560 std::string type;
2561 std::vector<std::unique_ptr<AttributeT>> attr;
2562 PluginT() {
2563 }
2564 };
2565
2566 struct Plugin FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2567 typedef PluginT NativeTableType;
2568 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2569 return PluginTypeTable();
2570 }
2571 const flatbuffers::String *type() const {
2572 return GetPointer<const flatbuffers::String *>(4);
2573 }
2574 const flatbuffers::Vector<flatbuffers::Offset<Attribute>> *attr() const {
2575 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Attribute>> *>(6);
2576 }
2577 bool Verify(flatbuffers::Verifier &verifier) const {
2578 return VerifyTableStart(verifier) &&
2579 VerifyOffset(verifier, 4) &&
2580 verifier.VerifyString(type()) &&
2581 VerifyOffset(verifier, 6) &&
2582 verifier.VerifyVector(attr()) &&
2583 verifier.VerifyVectorOfTables(attr()) &&
2584 verifier.EndTable();
2585 }
2586 PluginT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2587 void UnPackTo(PluginT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2588 static flatbuffers::Offset<Plugin> Pack(flatbuffers::FlatBufferBuilder &_fbb, const PluginT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2589 };
2590
2591 struct PluginBuilder {
2592 flatbuffers::FlatBufferBuilder &fbb_;
2593 flatbuffers::uoffset_t start_;
2594 void add_type(flatbuffers::Offset<flatbuffers::String> type) {
2595 fbb_.AddOffset(4, type);
2596 }
2597 void add_attr(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Attribute>>> attr) {
2598 fbb_.AddOffset(6, attr);
2599 }
2600 explicit PluginBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2601 : fbb_(_fbb) {
2602 start_ = fbb_.StartTable();
2603 }
2604 PluginBuilder &operator=(const PluginBuilder &);
2605 flatbuffers::Offset<Plugin> Finish() {
2606 const auto end = fbb_.EndTable(start_);
2607 auto o = flatbuffers::Offset<Plugin>(end);
2608 return o;
2609 }
2610 };
2611
2612 inline flatbuffers::Offset<Plugin> CreatePlugin(
2613 flatbuffers::FlatBufferBuilder &_fbb,
2614 flatbuffers::Offset<flatbuffers::String> type = 0,
2615 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Attribute>>> attr = 0) {
2616 PluginBuilder builder_(_fbb);
2617 builder_.add_attr(attr);
2618 builder_.add_type(type);
2619 return builder_.Finish();
2620 }
2621
2622 flatbuffers::Offset<Plugin> CreatePlugin(flatbuffers::FlatBufferBuilder &_fbb, const PluginT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2623
2624 struct ExtraT : public flatbuffers::NativeTable {
2625 typedef Extra TableType;
2626 std::string type;
2627 std::string engine;
2628 std::vector<int8_t> info;
2629 std::vector<std::unique_ptr<AttributeT>> attr;
2630 ExtraT() {
2631 }
2632 };
2633
2634 struct Extra FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2635 typedef ExtraT NativeTableType;
2636 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2637 return ExtraTypeTable();
2638 }
2639 const flatbuffers::String *type() const {
2640 return GetPointer<const flatbuffers::String *>(4);
2641 }
2642 const flatbuffers::String *engine() const {
2643 return GetPointer<const flatbuffers::String *>(6);
2644 }
2645 const flatbuffers::Vector<int8_t> *info() const {
2646 return GetPointer<const flatbuffers::Vector<int8_t> *>(8);
2647 }
2648 const flatbuffers::Vector<flatbuffers::Offset<Attribute>> *attr() const {
2649 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Attribute>> *>(10);
2650 }
2651 bool Verify(flatbuffers::Verifier &verifier) const {
2652 return VerifyTableStart(verifier) &&
2653 VerifyOffset(verifier, 4) &&
2654 verifier.VerifyString(type()) &&
2655 VerifyOffset(verifier, 6) &&
2656 verifier.VerifyString(engine()) &&
2657 VerifyOffset(verifier, 8) &&
2658 verifier.VerifyVector(info()) &&
2659 VerifyOffset(verifier, 10) &&
2660 verifier.VerifyVector(attr()) &&
2661 verifier.VerifyVectorOfTables(attr()) &&
2662 verifier.EndTable();
2663 }
2664 ExtraT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2665 void UnPackTo(ExtraT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2666 static flatbuffers::Offset<Extra> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExtraT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2667 };
2668
2669 struct ExtraBuilder {
2670 flatbuffers::FlatBufferBuilder &fbb_;
2671 flatbuffers::uoffset_t start_;
2672 void add_type(flatbuffers::Offset<flatbuffers::String> type) {
2673 fbb_.AddOffset(4, type);
2674 }
2675 void add_engine(flatbuffers::Offset<flatbuffers::String> engine) {
2676 fbb_.AddOffset(6, engine);
2677 }
2678 void add_info(flatbuffers::Offset<flatbuffers::Vector<int8_t>> info) {
2679 fbb_.AddOffset(8, info);
2680 }
2681 void add_attr(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Attribute>>> attr) {
2682 fbb_.AddOffset(10, attr);
2683 }
2684 explicit ExtraBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2685 : fbb_(_fbb) {
2686 start_ = fbb_.StartTable();
2687 }
2688 ExtraBuilder &operator=(const ExtraBuilder &);
2689 flatbuffers::Offset<Extra> Finish() {
2690 const auto end = fbb_.EndTable(start_);
2691 auto o = flatbuffers::Offset<Extra>(end);
2692 return o;
2693 }
2694 };
2695
2696 inline flatbuffers::Offset<Extra> CreateExtra(
2697 flatbuffers::FlatBufferBuilder &_fbb,
2698 flatbuffers::Offset<flatbuffers::String> type = 0,
2699 flatbuffers::Offset<flatbuffers::String> engine = 0,
2700 flatbuffers::Offset<flatbuffers::Vector<int8_t>> info = 0,
2701 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Attribute>>> attr = 0) {
2702 ExtraBuilder builder_(_fbb);
2703 builder_.add_attr(attr);
2704 builder_.add_info(info);
2705 builder_.add_engine(engine);
2706 builder_.add_type(type);
2707 return builder_.Finish();
2708 }
2709
2710 flatbuffers::Offset<Extra> CreateExtra(flatbuffers::FlatBufferBuilder &_fbb, const ExtraT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2711
2712 struct StringVecT : public flatbuffers::NativeTable {
2713 typedef StringVec TableType;
2714 std::vector<std::string> data;
2715 StringVecT() {
2716 }
2717 };
2718
2719 struct StringVec FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2720 typedef StringVecT NativeTableType;
2721 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2722 return StringVecTypeTable();
2723 }
2724 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *data() const {
2725 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(4);
2726 }
2727 bool Verify(flatbuffers::Verifier &verifier) const {
2728 return VerifyTableStart(verifier) &&
2729 VerifyOffset(verifier, 4) &&
2730 verifier.VerifyVector(data()) &&
2731 verifier.VerifyVectorOfStrings(data()) &&
2732 verifier.EndTable();
2733 }
2734 StringVecT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2735 void UnPackTo(StringVecT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2736 static flatbuffers::Offset<StringVec> Pack(flatbuffers::FlatBufferBuilder &_fbb, const StringVecT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2737 };
2738
2739 struct StringVecBuilder {
2740 flatbuffers::FlatBufferBuilder &fbb_;
2741 flatbuffers::uoffset_t start_;
2742 void add_data(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> data) {
2743 fbb_.AddOffset(4, data);
2744 }
2745 explicit StringVecBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2746 : fbb_(_fbb) {
2747 start_ = fbb_.StartTable();
2748 }
2749 StringVecBuilder &operator=(const StringVecBuilder &);
2750 flatbuffers::Offset<StringVec> Finish() {
2751 const auto end = fbb_.EndTable(start_);
2752 auto o = flatbuffers::Offset<StringVec>(end);
2753 return o;
2754 }
2755 };
2756
2757 inline flatbuffers::Offset<StringVec> CreateStringVec(
2758 flatbuffers::FlatBufferBuilder &_fbb,
2759 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> data = 0) {
2760 StringVecBuilder builder_(_fbb);
2761 builder_.add_data(data);
2762 return builder_.Finish();
2763 }
2764
2765 flatbuffers::Offset<StringVec> CreateStringVec(flatbuffers::FlatBufferBuilder &_fbb, const StringVecT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2766
2767 struct WhileParamT : public flatbuffers::NativeTable {
2768 typedef WhileParam TableType;
2769 std::string cond_graph;
2770 std::string body_graph;
2771 std::vector<std::unique_ptr<StringVecT>> aliases_inputs;
2772 std::vector<std::string> aliases_outputs;
2773 std::vector<std::unique_ptr<StringVecT>> aliases_updates;
2774 WhileParamT() {
2775 }
2776 };
2777
2778 struct WhileParam FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2779 typedef WhileParamT NativeTableType;
2780 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2781 return WhileParamTypeTable();
2782 }
2783 const flatbuffers::String *cond_graph() const {
2784 return GetPointer<const flatbuffers::String *>(4);
2785 }
2786 const flatbuffers::String *body_graph() const {
2787 return GetPointer<const flatbuffers::String *>(6);
2788 }
2789 const flatbuffers::Vector<flatbuffers::Offset<StringVec>> *aliases_inputs() const {
2790 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<StringVec>> *>(8);
2791 }
2792 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *aliases_outputs() const {
2793 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(10);
2794 }
2795 const flatbuffers::Vector<flatbuffers::Offset<StringVec>> *aliases_updates() const {
2796 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<StringVec>> *>(12);
2797 }
2798 bool Verify(flatbuffers::Verifier &verifier) const {
2799 return VerifyTableStart(verifier) &&
2800 VerifyOffset(verifier, 4) &&
2801 verifier.VerifyString(cond_graph()) &&
2802 VerifyOffset(verifier, 6) &&
2803 verifier.VerifyString(body_graph()) &&
2804 VerifyOffset(verifier, 8) &&
2805 verifier.VerifyVector(aliases_inputs()) &&
2806 verifier.VerifyVectorOfTables(aliases_inputs()) &&
2807 VerifyOffset(verifier, 10) &&
2808 verifier.VerifyVector(aliases_outputs()) &&
2809 verifier.VerifyVectorOfStrings(aliases_outputs()) &&
2810 VerifyOffset(verifier, 12) &&
2811 verifier.VerifyVector(aliases_updates()) &&
2812 verifier.VerifyVectorOfTables(aliases_updates()) &&
2813 verifier.EndTable();
2814 }
2815 WhileParamT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2816 void UnPackTo(WhileParamT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2817 static flatbuffers::Offset<WhileParam> Pack(flatbuffers::FlatBufferBuilder &_fbb, const WhileParamT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2818 };
2819
2820 struct WhileParamBuilder {
2821 flatbuffers::FlatBufferBuilder &fbb_;
2822 flatbuffers::uoffset_t start_;
2823 void add_cond_graph(flatbuffers::Offset<flatbuffers::String> cond_graph) {
2824 fbb_.AddOffset(4, cond_graph);
2825 }
2826 void add_body_graph(flatbuffers::Offset<flatbuffers::String> body_graph) {
2827 fbb_.AddOffset(6, body_graph);
2828 }
2829 void add_aliases_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<StringVec>>> aliases_inputs) {
2830 fbb_.AddOffset(8, aliases_inputs);
2831 }
2832 void add_aliases_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> aliases_outputs) {
2833 fbb_.AddOffset(10, aliases_outputs);
2834 }
2835 void add_aliases_updates(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<StringVec>>> aliases_updates) {
2836 fbb_.AddOffset(12, aliases_updates);
2837 }
2838 explicit WhileParamBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2839 : fbb_(_fbb) {
2840 start_ = fbb_.StartTable();
2841 }
2842 WhileParamBuilder &operator=(const WhileParamBuilder &);
2843 flatbuffers::Offset<WhileParam> Finish() {
2844 const auto end = fbb_.EndTable(start_);
2845 auto o = flatbuffers::Offset<WhileParam>(end);
2846 return o;
2847 }
2848 };
2849
2850 inline flatbuffers::Offset<WhileParam> CreateWhileParam(
2851 flatbuffers::FlatBufferBuilder &_fbb,
2852 flatbuffers::Offset<flatbuffers::String> cond_graph = 0,
2853 flatbuffers::Offset<flatbuffers::String> body_graph = 0,
2854 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<StringVec>>> aliases_inputs = 0,
2855 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> aliases_outputs = 0,
2856 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<StringVec>>> aliases_updates = 0) {
2857 WhileParamBuilder builder_(_fbb);
2858 builder_.add_aliases_updates(aliases_updates);
2859 builder_.add_aliases_outputs(aliases_outputs);
2860 builder_.add_aliases_inputs(aliases_inputs);
2861 builder_.add_body_graph(body_graph);
2862 builder_.add_cond_graph(cond_graph);
2863 return builder_.Finish();
2864 }
2865
2866 flatbuffers::Offset<WhileParam> CreateWhileParam(flatbuffers::FlatBufferBuilder &_fbb, const WhileParamT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2867
2868 struct IfParamT : public flatbuffers::NativeTable {
2869 typedef IfParam TableType;
2870 std::string then_graph;
2871 std::string else_graph;
2872 std::vector<std::unique_ptr<StringVecT>> aliases_inputs;
2873 std::vector<std::unique_ptr<StringVecT>> aliases_outputs;
2874 IfParamT() {
2875 }
2876 };
2877
2878 struct IfParam FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2879 typedef IfParamT NativeTableType;
2880 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2881 return IfParamTypeTable();
2882 }
2883 const flatbuffers::String *then_graph() const {
2884 return GetPointer<const flatbuffers::String *>(4);
2885 }
2886 const flatbuffers::String *else_graph() const {
2887 return GetPointer<const flatbuffers::String *>(6);
2888 }
2889 const flatbuffers::Vector<flatbuffers::Offset<StringVec>> *aliases_inputs() const {
2890 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<StringVec>> *>(8);
2891 }
2892 const flatbuffers::Vector<flatbuffers::Offset<StringVec>> *aliases_outputs() const {
2893 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<StringVec>> *>(10);
2894 }
2895 bool Verify(flatbuffers::Verifier &verifier) const {
2896 return VerifyTableStart(verifier) &&
2897 VerifyOffset(verifier, 4) &&
2898 verifier.VerifyString(then_graph()) &&
2899 VerifyOffset(verifier, 6) &&
2900 verifier.VerifyString(else_graph()) &&
2901 VerifyOffset(verifier, 8) &&
2902 verifier.VerifyVector(aliases_inputs()) &&
2903 verifier.VerifyVectorOfTables(aliases_inputs()) &&
2904 VerifyOffset(verifier, 10) &&
2905 verifier.VerifyVector(aliases_outputs()) &&
2906 verifier.VerifyVectorOfTables(aliases_outputs()) &&
2907 verifier.EndTable();
2908 }
2909 IfParamT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2910 void UnPackTo(IfParamT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2911 static flatbuffers::Offset<IfParam> Pack(flatbuffers::FlatBufferBuilder &_fbb, const IfParamT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2912 };
2913
2914 struct IfParamBuilder {
2915 flatbuffers::FlatBufferBuilder &fbb_;
2916 flatbuffers::uoffset_t start_;
2917 void add_then_graph(flatbuffers::Offset<flatbuffers::String> then_graph) {
2918 fbb_.AddOffset(4, then_graph);
2919 }
2920 void add_else_graph(flatbuffers::Offset<flatbuffers::String> else_graph) {
2921 fbb_.AddOffset(6, else_graph);
2922 }
2923 void add_aliases_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<StringVec>>> aliases_inputs) {
2924 fbb_.AddOffset(8, aliases_inputs);
2925 }
2926 void add_aliases_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<StringVec>>> aliases_outputs) {
2927 fbb_.AddOffset(10, aliases_outputs);
2928 }
2929 explicit IfParamBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2930 : fbb_(_fbb) {
2931 start_ = fbb_.StartTable();
2932 }
2933 IfParamBuilder &operator=(const IfParamBuilder &);
2934 flatbuffers::Offset<IfParam> Finish() {
2935 const auto end = fbb_.EndTable(start_);
2936 auto o = flatbuffers::Offset<IfParam>(end);
2937 return o;
2938 }
2939 };
2940
2941 inline flatbuffers::Offset<IfParam> CreateIfParam(
2942 flatbuffers::FlatBufferBuilder &_fbb,
2943 flatbuffers::Offset<flatbuffers::String> then_graph = 0,
2944 flatbuffers::Offset<flatbuffers::String> else_graph = 0,
2945 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<StringVec>>> aliases_inputs = 0,
2946 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<StringVec>>> aliases_outputs = 0) {
2947 IfParamBuilder builder_(_fbb);
2948 builder_.add_aliases_outputs(aliases_outputs);
2949 builder_.add_aliases_inputs(aliases_inputs);
2950 builder_.add_else_graph(else_graph);
2951 builder_.add_then_graph(then_graph);
2952 return builder_.Finish();
2953 }
2954
2955 flatbuffers::Offset<IfParam> CreateIfParam(flatbuffers::FlatBufferBuilder &_fbb, const IfParamT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2956
2957 struct RegionCommandT : public flatbuffers::NativeTable {
2958 typedef RegionCommand TableType;
2959 std::unique_ptr<OpT> op;
2960 std::vector<int32_t> steps;
2961 std::vector<int32_t> size;
2962 std::vector<int32_t> indexes;
2963 std::vector<std::unique_ptr<ViewT>> view;
2964 int32_t fuse;
2965 std::vector<int32_t> iterIndexes;
2966 RegionCommandT()
2967 : fuse(-1) {
2968 }
2969 };
2970
2971 struct RegionCommand FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2972 typedef RegionCommandT NativeTableType;
2973 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
2974 return RegionCommandTypeTable();
2975 }
2976 const Op *op() const {
2977 return GetPointer<const Op *>(4);
2978 }
2979 const flatbuffers::Vector<int32_t> *steps() const {
2980 return GetPointer<const flatbuffers::Vector<int32_t> *>(6);
2981 }
2982 const flatbuffers::Vector<int32_t> *size() const {
2983 return GetPointer<const flatbuffers::Vector<int32_t> *>(8);
2984 }
2985 const flatbuffers::Vector<int32_t> *indexes() const {
2986 return GetPointer<const flatbuffers::Vector<int32_t> *>(10);
2987 }
2988 const flatbuffers::Vector<flatbuffers::Offset<View>> *view() const {
2989 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<View>> *>(12);
2990 }
2991 int32_t fuse() const {
2992 return GetField<int32_t>(14, -1);
2993 }
2994 const flatbuffers::Vector<int32_t> *iterIndexes() const {
2995 return GetPointer<const flatbuffers::Vector<int32_t> *>(16);
2996 }
2997 bool Verify(flatbuffers::Verifier &verifier) const {
2998 return VerifyTableStart(verifier) &&
2999 VerifyOffset(verifier, 4) &&
3000 verifier.VerifyTable(op()) &&
3001 VerifyOffset(verifier, 6) &&
3002 verifier.VerifyVector(steps()) &&
3003 VerifyOffset(verifier, 8) &&
3004 verifier.VerifyVector(size()) &&
3005 VerifyOffset(verifier, 10) &&
3006 verifier.VerifyVector(indexes()) &&
3007 VerifyOffset(verifier, 12) &&
3008 verifier.VerifyVector(view()) &&
3009 verifier.VerifyVectorOfTables(view()) &&
3010 VerifyField<int32_t>(verifier, 14) &&
3011 VerifyOffset(verifier, 16) &&
3012 verifier.VerifyVector(iterIndexes()) &&
3013 verifier.EndTable();
3014 }
3015 RegionCommandT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3016 void UnPackTo(RegionCommandT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3017 static flatbuffers::Offset<RegionCommand> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RegionCommandT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3018 };
3019
3020 struct RegionCommandBuilder {
3021 flatbuffers::FlatBufferBuilder &fbb_;
3022 flatbuffers::uoffset_t start_;
3023 void add_op(flatbuffers::Offset<Op> op) {
3024 fbb_.AddOffset(4, op);
3025 }
3026 void add_steps(flatbuffers::Offset<flatbuffers::Vector<int32_t>> steps) {
3027 fbb_.AddOffset(6, steps);
3028 }
3029 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
3030 fbb_.AddOffset(8, size);
3031 }
3032 void add_indexes(flatbuffers::Offset<flatbuffers::Vector<int32_t>> indexes) {
3033 fbb_.AddOffset(10, indexes);
3034 }
3035 void add_view(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<View>>> view) {
3036 fbb_.AddOffset(12, view);
3037 }
3038 void add_fuse(int32_t fuse) {
3039 fbb_.AddElement<int32_t>(14, fuse, -1);
3040 }
3041 void add_iterIndexes(flatbuffers::Offset<flatbuffers::Vector<int32_t>> iterIndexes) {
3042 fbb_.AddOffset(16, iterIndexes);
3043 }
3044 explicit RegionCommandBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3045 : fbb_(_fbb) {
3046 start_ = fbb_.StartTable();
3047 }
3048 RegionCommandBuilder &operator=(const RegionCommandBuilder &);
3049 flatbuffers::Offset<RegionCommand> Finish() {
3050 const auto end = fbb_.EndTable(start_);
3051 auto o = flatbuffers::Offset<RegionCommand>(end);
3052 return o;
3053 }
3054 };
3055
3056 inline flatbuffers::Offset<RegionCommand> CreateRegionCommand(
3057 flatbuffers::FlatBufferBuilder &_fbb,
3058 flatbuffers::Offset<Op> op = 0,
3059 flatbuffers::Offset<flatbuffers::Vector<int32_t>> steps = 0,
3060 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0,
3061 flatbuffers::Offset<flatbuffers::Vector<int32_t>> indexes = 0,
3062 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<View>>> view = 0,
3063 int32_t fuse = -1,
3064 flatbuffers::Offset<flatbuffers::Vector<int32_t>> iterIndexes = 0) {
3065 RegionCommandBuilder builder_(_fbb);
3066 builder_.add_iterIndexes(iterIndexes);
3067 builder_.add_fuse(fuse);
3068 builder_.add_view(view);
3069 builder_.add_indexes(indexes);
3070 builder_.add_size(size);
3071 builder_.add_steps(steps);
3072 builder_.add_op(op);
3073 return builder_.Finish();
3074 }
3075
3076 flatbuffers::Offset<RegionCommand> CreateRegionCommand(flatbuffers::FlatBufferBuilder &_fbb, const RegionCommandT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3077
3078 struct LoopParamT : public flatbuffers::NativeTable {
3079 typedef LoopParam TableType;
3080 int32_t tensorNumber;
3081 std::vector<int32_t> outputIndexes;
3082 std::vector<int32_t> inputIndexes;
3083 std::vector<std::unique_ptr<TensorDescribeT>> midTensors;
3084 bool parallel;
3085 int32_t loopNumber;
3086 std::vector<std::unique_ptr<RegionCommandT>> commands;
3087 LoopParamT()
3088 : tensorNumber(0),
3089 parallel(true),
3090 loopNumber(0) {
3091 }
3092 };
3093
3094 struct LoopParam FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3095 typedef LoopParamT NativeTableType;
3096 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
3097 return LoopParamTypeTable();
3098 }
3099 int32_t tensorNumber() const {
3100 return GetField<int32_t>(4, 0);
3101 }
3102 const flatbuffers::Vector<int32_t> *outputIndexes() const {
3103 return GetPointer<const flatbuffers::Vector<int32_t> *>(6);
3104 }
3105 const flatbuffers::Vector<int32_t> *inputIndexes() const {
3106 return GetPointer<const flatbuffers::Vector<int32_t> *>(8);
3107 }
3108 const flatbuffers::Vector<flatbuffers::Offset<TensorDescribe>> *midTensors() const {
3109 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<TensorDescribe>> *>(10);
3110 }
3111 bool parallel() const {
3112 return GetField<uint8_t>(12, 1) != 0;
3113 }
3114 int32_t loopNumber() const {
3115 return GetField<int32_t>(14, 0);
3116 }
3117 const flatbuffers::Vector<flatbuffers::Offset<RegionCommand>> *commands() const {
3118 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<RegionCommand>> *>(16);
3119 }
3120 bool Verify(flatbuffers::Verifier &verifier) const {
3121 return VerifyTableStart(verifier) &&
3122 VerifyField<int32_t>(verifier, 4) &&
3123 VerifyOffset(verifier, 6) &&
3124 verifier.VerifyVector(outputIndexes()) &&
3125 VerifyOffset(verifier, 8) &&
3126 verifier.VerifyVector(inputIndexes()) &&
3127 VerifyOffset(verifier, 10) &&
3128 verifier.VerifyVector(midTensors()) &&
3129 verifier.VerifyVectorOfTables(midTensors()) &&
3130 VerifyField<uint8_t>(verifier, 12) &&
3131 VerifyField<int32_t>(verifier, 14) &&
3132 VerifyOffset(verifier, 16) &&
3133 verifier.VerifyVector(commands()) &&
3134 verifier.VerifyVectorOfTables(commands()) &&
3135 verifier.EndTable();
3136 }
3137 LoopParamT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3138 void UnPackTo(LoopParamT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3139 static flatbuffers::Offset<LoopParam> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LoopParamT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3140 };
3141
3142 struct LoopParamBuilder {
3143 flatbuffers::FlatBufferBuilder &fbb_;
3144 flatbuffers::uoffset_t start_;
3145 void add_tensorNumber(int32_t tensorNumber) {
3146 fbb_.AddElement<int32_t>(4, tensorNumber, 0);
3147 }
3148 void add_outputIndexes(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputIndexes) {
3149 fbb_.AddOffset(6, outputIndexes);
3150 }
3151 void add_inputIndexes(flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputIndexes) {
3152 fbb_.AddOffset(8, inputIndexes);
3153 }
3154 void add_midTensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TensorDescribe>>> midTensors) {
3155 fbb_.AddOffset(10, midTensors);
3156 }
3157 void add_parallel(bool parallel) {
3158 fbb_.AddElement<uint8_t>(12, static_cast<uint8_t>(parallel), 1);
3159 }
3160 void add_loopNumber(int32_t loopNumber) {
3161 fbb_.AddElement<int32_t>(14, loopNumber, 0);
3162 }
3163 void add_commands(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<RegionCommand>>> commands) {
3164 fbb_.AddOffset(16, commands);
3165 }
3166 explicit LoopParamBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3167 : fbb_(_fbb) {
3168 start_ = fbb_.StartTable();
3169 }
3170 LoopParamBuilder &operator=(const LoopParamBuilder &);
3171 flatbuffers::Offset<LoopParam> Finish() {
3172 const auto end = fbb_.EndTable(start_);
3173 auto o = flatbuffers::Offset<LoopParam>(end);
3174 return o;
3175 }
3176 };
3177
3178 inline flatbuffers::Offset<LoopParam> CreateLoopParam(
3179 flatbuffers::FlatBufferBuilder &_fbb,
3180 int32_t tensorNumber = 0,
3181 flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputIndexes = 0,
3182 flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputIndexes = 0,
3183 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TensorDescribe>>> midTensors = 0,
3184 bool parallel = true,
3185 int32_t loopNumber = 0,
3186 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<RegionCommand>>> commands = 0) {
3187 LoopParamBuilder builder_(_fbb);
3188 builder_.add_commands(commands);
3189 builder_.add_loopNumber(loopNumber);
3190 builder_.add_midTensors(midTensors);
3191 builder_.add_inputIndexes(inputIndexes);
3192 builder_.add_outputIndexes(outputIndexes);
3193 builder_.add_tensorNumber(tensorNumber);
3194 builder_.add_parallel(parallel);
3195 return builder_.Finish();
3196 }
3197
3198 flatbuffers::Offset<LoopParam> CreateLoopParam(flatbuffers::FlatBufferBuilder &_fbb, const LoopParamT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3199
3200 struct OpT : public flatbuffers::NativeTable {
3201 typedef Op TableType;
3202 std::vector<int32_t> inputIndexes;
3203 OpParameterUnion main;
3204 std::string name;
3205 std::vector<int32_t> outputIndexes;
3206 OpType type;
3207 MNN_DATA_FORMAT defaultDimentionFormat;
3208 OpT()
3209 : type(OpType_AbsVal),
3210 defaultDimentionFormat(MNN_DATA_FORMAT_NHWC) {
3211 }
3212 };
3213
3214 struct Op FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3215 typedef OpT NativeTableType;
3216 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
3217 return OpTypeTable();
3218 }
3219 const flatbuffers::Vector<int32_t> *inputIndexes() const {
3220 return GetPointer<const flatbuffers::Vector<int32_t> *>(4);
3221 }
3222 OpParameter main_type() const {
3223 return static_cast<OpParameter>(GetField<uint8_t>(6, 0));
3224 }
3225 const void *main() const {
3226 return GetPointer<const void *>(8);
3227 }
3228 template<typename T> const T *main_as() const;
3229 const QuantizedAdd *main_as_QuantizedAdd() const {
3230 return main_type() == OpParameter_QuantizedAdd ? static_cast<const QuantizedAdd *>(main()) : nullptr;
3231 }
3232 const ArgMax *main_as_ArgMax() const {
3233 return main_type() == OpParameter_ArgMax ? static_cast<const ArgMax *>(main()) : nullptr;
3234 }
3235 const AsString *main_as_AsString() const {
3236 return main_type() == OpParameter_AsString ? static_cast<const AsString *>(main()) : nullptr;
3237 }
3238 const Axis *main_as_Axis() const {
3239 return main_type() == OpParameter_Axis ? static_cast<const Axis *>(main()) : nullptr;
3240 }
3241 const BatchNorm *main_as_BatchNorm() const {
3242 return main_type() == OpParameter_BatchNorm ? static_cast<const BatchNorm *>(main()) : nullptr;
3243 }
3244 const BinaryOp *main_as_BinaryOp() const {
3245 return main_type() == OpParameter_BinaryOp ? static_cast<const BinaryOp *>(main()) : nullptr;
3246 }
3247 const Blob *main_as_Blob() const {
3248 return main_type() == OpParameter_Blob ? static_cast<const Blob *>(main()) : nullptr;
3249 }
3250 const CastParam *main_as_CastParam() const {
3251 return main_type() == OpParameter_CastParam ? static_cast<const CastParam *>(main()) : nullptr;
3252 }
3253 const Convolution2D *main_as_Convolution2D() const {
3254 return main_type() == OpParameter_Convolution2D ? static_cast<const Convolution2D *>(main()) : nullptr;
3255 }
3256 const Crop *main_as_Crop() const {
3257 return main_type() == OpParameter_Crop ? static_cast<const Crop *>(main()) : nullptr;
3258 }
3259 const CropAndResize *main_as_CropAndResize() const {
3260 return main_type() == OpParameter_CropAndResize ? static_cast<const CropAndResize *>(main()) : nullptr;
3261 }
3262 const Dequantize *main_as_Dequantize() const {
3263 return main_type() == OpParameter_Dequantize ? static_cast<const Dequantize *>(main()) : nullptr;
3264 }
3265 const DetectionOutput *main_as_DetectionOutput() const {
3266 return main_type() == OpParameter_DetectionOutput ? static_cast<const DetectionOutput *>(main()) : nullptr;
3267 }
3268 const Eltwise *main_as_Eltwise() const {
3269 return main_type() == OpParameter_Eltwise ? static_cast<const Eltwise *>(main()) : nullptr;
3270 }
3271 const ExpandDims *main_as_ExpandDims() const {
3272 return main_type() == OpParameter_ExpandDims ? static_cast<const ExpandDims *>(main()) : nullptr;
3273 }
3274 const Fill *main_as_Fill() const {
3275 return main_type() == OpParameter_Fill ? static_cast<const Fill *>(main()) : nullptr;
3276 }
3277 const Flatten *main_as_Flatten() const {
3278 return main_type() == OpParameter_Flatten ? static_cast<const Flatten *>(main()) : nullptr;
3279 }
3280 const Gather *main_as_Gather() const {
3281 return main_type() == OpParameter_Gather ? static_cast<const Gather *>(main()) : nullptr;
3282 }
3283 const GatherV2 *main_as_GatherV2() const {
3284 return main_type() == OpParameter_GatherV2 ? static_cast<const GatherV2 *>(main()) : nullptr;
3285 }
3286 const InnerProduct *main_as_InnerProduct() const {
3287 return main_type() == OpParameter_InnerProduct ? static_cast<const InnerProduct *>(main()) : nullptr;
3288 }
3289 const Input *main_as_Input() const {
3290 return main_type() == OpParameter_Input ? static_cast<const Input *>(main()) : nullptr;
3291 }
3292 const Interp *main_as_Interp() const {
3293 return main_type() == OpParameter_Interp ? static_cast<const Interp *>(main()) : nullptr;
3294 }
3295 const LRN *main_as_LRN() const {
3296 return main_type() == OpParameter_LRN ? static_cast<const LRN *>(main()) : nullptr;
3297 }
3298 const LSTM *main_as_LSTM() const {
3299 return main_type() == OpParameter_LSTM ? static_cast<const LSTM *>(main()) : nullptr;
3300 }
3301 const MatMul *main_as_MatMul() const {
3302 return main_type() == OpParameter_MatMul ? static_cast<const MatMul *>(main()) : nullptr;
3303 }
3304 const NonMaxSuppressionV2 *main_as_NonMaxSuppressionV2() const {
3305 return main_type() == OpParameter_NonMaxSuppressionV2 ? static_cast<const NonMaxSuppressionV2 *>(main()) : nullptr;
3306 }
3307 const Normalize *main_as_Normalize() const {
3308 return main_type() == OpParameter_Normalize ? static_cast<const Normalize *>(main()) : nullptr;
3309 }
3310 const PackParam *main_as_PackParam() const {
3311 return main_type() == OpParameter_PackParam ? static_cast<const PackParam *>(main()) : nullptr;
3312 }
3313 const Permute *main_as_Permute() const {
3314 return main_type() == OpParameter_Permute ? static_cast<const Permute *>(main()) : nullptr;
3315 }
3316 const Plugin *main_as_Plugin() const {
3317 return main_type() == OpParameter_Plugin ? static_cast<const Plugin *>(main()) : nullptr;
3318 }
3319 const Pool *main_as_Pool() const {
3320 return main_type() == OpParameter_Pool ? static_cast<const Pool *>(main()) : nullptr;
3321 }
3322 const PRelu *main_as_PRelu() const {
3323 return main_type() == OpParameter_PRelu ? static_cast<const PRelu *>(main()) : nullptr;
3324 }
3325 const PriorBox *main_as_PriorBox() const {
3326 return main_type() == OpParameter_PriorBox ? static_cast<const PriorBox *>(main()) : nullptr;
3327 }
3328 const Proposal *main_as_Proposal() const {
3329 return main_type() == OpParameter_Proposal ? static_cast<const Proposal *>(main()) : nullptr;
3330 }
3331 const QuantizedAvgPool *main_as_QuantizedAvgPool() const {
3332 return main_type() == OpParameter_QuantizedAvgPool ? static_cast<const QuantizedAvgPool *>(main()) : nullptr;
3333 }
3334 const QuantizedBiasAdd *main_as_QuantizedBiasAdd() const {
3335 return main_type() == OpParameter_QuantizedBiasAdd ? static_cast<const QuantizedBiasAdd *>(main()) : nullptr;
3336 }
3337 const QuantizedConcat *main_as_QuantizedConcat() const {
3338 return main_type() == OpParameter_QuantizedConcat ? static_cast<const QuantizedConcat *>(main()) : nullptr;
3339 }
3340 const QuantizedLogistic *main_as_QuantizedLogistic() const {
3341 return main_type() == OpParameter_QuantizedLogistic ? static_cast<const QuantizedLogistic *>(main()) : nullptr;
3342 }
3343 const QuantizedMatMul *main_as_QuantizedMatMul() const {
3344 return main_type() == OpParameter_QuantizedMatMul ? static_cast<const QuantizedMatMul *>(main()) : nullptr;
3345 }
3346 const QuantizedMaxPool *main_as_QuantizedMaxPool() const {
3347 return main_type() == OpParameter_QuantizedMaxPool ? static_cast<const QuantizedMaxPool *>(main()) : nullptr;
3348 }
3349 const QuantizedRelu *main_as_QuantizedRelu() const {
3350 return main_type() == OpParameter_QuantizedRelu ? static_cast<const QuantizedRelu *>(main()) : nullptr;
3351 }
3352 const QuantizedRelu6 *main_as_QuantizedRelu6() const {
3353 return main_type() == OpParameter_QuantizedRelu6 ? static_cast<const QuantizedRelu6 *>(main()) : nullptr;
3354 }
3355 const QuantizedReshape *main_as_QuantizedReshape() const {
3356 return main_type() == OpParameter_QuantizedReshape ? static_cast<const QuantizedReshape *>(main()) : nullptr;
3357 }
3358 const QuantizedSoftmax *main_as_QuantizedSoftmax() const {
3359 return main_type() == OpParameter_QuantizedSoftmax ? static_cast<const QuantizedSoftmax *>(main()) : nullptr;
3360 }
3361 const QuantizeMaxMin *main_as_QuantizeMaxMin() const {
3362 return main_type() == OpParameter_QuantizeMaxMin ? static_cast<const QuantizeMaxMin *>(main()) : nullptr;
3363 }
3364 const QuantizeV2 *main_as_QuantizeV2() const {
3365 return main_type() == OpParameter_QuantizeV2 ? static_cast<const QuantizeV2 *>(main()) : nullptr;
3366 }
3367 const Range *main_as_Range() const {
3368 return main_type() == OpParameter_Range ? static_cast<const Range *>(main()) : nullptr;
3369 }
3370 const Rank *main_as_Rank() const {
3371 return main_type() == OpParameter_Rank ? static_cast<const Rank *>(main()) : nullptr;
3372 }
3373 const ReduceJoin *main_as_ReduceJoin() const {
3374 return main_type() == OpParameter_ReduceJoin ? static_cast<const ReduceJoin *>(main()) : nullptr;
3375 }
3376 const ReductionParam *main_as_ReductionParam() const {
3377 return main_type() == OpParameter_ReductionParam ? static_cast<const ReductionParam *>(main()) : nullptr;
3378 }
3379 const Relu *main_as_Relu() const {
3380 return main_type() == OpParameter_Relu ? static_cast<const Relu *>(main()) : nullptr;
3381 }
3382 const Relu6 *main_as_Relu6() const {
3383 return main_type() == OpParameter_Relu6 ? static_cast<const Relu6 *>(main()) : nullptr;
3384 }
3385 const RequantizationRange *main_as_RequantizationRange() const {
3386 return main_type() == OpParameter_RequantizationRange ? static_cast<const RequantizationRange *>(main()) : nullptr;
3387 }
3388 const Requantize *main_as_Requantize() const {
3389 return main_type() == OpParameter_Requantize ? static_cast<const Requantize *>(main()) : nullptr;
3390 }
3391 const Reshape *main_as_Reshape() const {
3392 return main_type() == OpParameter_Reshape ? static_cast<const Reshape *>(main()) : nullptr;
3393 }
3394 const Resize *main_as_Resize() const {
3395 return main_type() == OpParameter_Resize ? static_cast<const Resize *>(main()) : nullptr;
3396 }
3397 const RoiPooling *main_as_RoiPooling() const {
3398 return main_type() == OpParameter_RoiPooling ? static_cast<const RoiPooling *>(main()) : nullptr;
3399 }
3400 const Scale *main_as_Scale() const {
3401 return main_type() == OpParameter_Scale ? static_cast<const Scale *>(main()) : nullptr;
3402 }
3403 const Selu *main_as_Selu() const {
3404 return main_type() == OpParameter_Selu ? static_cast<const Selu *>(main()) : nullptr;
3405 }
3406 const Size *main_as_Size() const {
3407 return main_type() == OpParameter_Size ? static_cast<const Size *>(main()) : nullptr;
3408 }
3409 const Slice *main_as_Slice() const {
3410 return main_type() == OpParameter_Slice ? static_cast<const Slice *>(main()) : nullptr;
3411 }
3412 const SliceTf *main_as_SliceTf() const {
3413 return main_type() == OpParameter_SliceTf ? static_cast<const SliceTf *>(main()) : nullptr;
3414 }
3415 const SpaceBatch *main_as_SpaceBatch() const {
3416 return main_type() == OpParameter_SpaceBatch ? static_cast<const SpaceBatch *>(main()) : nullptr;
3417 }
3418 const SqueezeParam *main_as_SqueezeParam() const {
3419 return main_type() == OpParameter_SqueezeParam ? static_cast<const SqueezeParam *>(main()) : nullptr;
3420 }
3421 const StridedSliceParam *main_as_StridedSliceParam() const {
3422 return main_type() == OpParameter_StridedSliceParam ? static_cast<const StridedSliceParam *>(main()) : nullptr;
3423 }
3424 const TensorConvertInfo *main_as_TensorConvertInfo() const {
3425 return main_type() == OpParameter_TensorConvertInfo ? static_cast<const TensorConvertInfo *>(main()) : nullptr;
3426 }
3427 const TfQuantizedConv2D *main_as_TfQuantizedConv2D() const {
3428 return main_type() == OpParameter_TfQuantizedConv2D ? static_cast<const TfQuantizedConv2D *>(main()) : nullptr;
3429 }
3430 const TopKV2 *main_as_TopKV2() const {
3431 return main_type() == OpParameter_TopKV2 ? static_cast<const TopKV2 *>(main()) : nullptr;
3432 }
3433 const Transpose *main_as_Transpose() const {
3434 return main_type() == OpParameter_Transpose ? static_cast<const Transpose *>(main()) : nullptr;
3435 }
3436 const UnaryOp *main_as_UnaryOp() const {
3437 return main_type() == OpParameter_UnaryOp ? static_cast<const UnaryOp *>(main()) : nullptr;
3438 }
3439 const MomentsParam *main_as_MomentsParam() const {
3440 return main_type() == OpParameter_MomentsParam ? static_cast<const MomentsParam *>(main()) : nullptr;
3441 }
3442 const RNNParam *main_as_RNNParam() const {
3443 return main_type() == OpParameter_RNNParam ? static_cast<const RNNParam *>(main()) : nullptr;
3444 }
3445 const BatchMatMulParam *main_as_BatchMatMulParam() const {
3446 return main_type() == OpParameter_BatchMatMulParam ? static_cast<const BatchMatMulParam *>(main()) : nullptr;
3447 }
3448 const QuantizedFloatParam *main_as_QuantizedFloatParam() const {
3449 return main_type() == OpParameter_QuantizedFloatParam ? static_cast<const QuantizedFloatParam *>(main()) : nullptr;
3450 }
3451 const DepthSpaceParam *main_as_DepthSpaceParam() const {
3452 return main_type() == OpParameter_DepthSpaceParam ? static_cast<const DepthSpaceParam *>(main()) : nullptr;
3453 }
3454 const EltwiseInt8 *main_as_EltwiseInt8() const {
3455 return main_type() == OpParameter_EltwiseInt8 ? static_cast<const EltwiseInt8 *>(main()) : nullptr;
3456 }
3457 const ReverseSequenceParam *main_as_ReverseSequenceParam() const {
3458 return main_type() == OpParameter_ReverseSequenceParam ? static_cast<const ReverseSequenceParam *>(main()) : nullptr;
3459 }
3460 const Extra *main_as_Extra() const {
3461 return main_type() == OpParameter_Extra ? static_cast<const Extra *>(main()) : nullptr;
3462 }
3463 const Pool3D *main_as_Pool3D() const {
3464 return main_type() == OpParameter_Pool3D ? static_cast<const Pool3D *>(main()) : nullptr;
3465 }
3466 const Convolution3D *main_as_Convolution3D() const {
3467 return main_type() == OpParameter_Convolution3D ? static_cast<const Convolution3D *>(main()) : nullptr;
3468 }
3469 const ELU *main_as_ELU() const {
3470 return main_type() == OpParameter_ELU ? static_cast<const ELU *>(main()) : nullptr;
3471 }
3472 const DetectionPostProcessParam *main_as_DetectionPostProcessParam() const {
3473 return main_type() == OpParameter_DetectionPostProcessParam ? static_cast<const DetectionPostProcessParam *>(main()) : nullptr;
3474 }
3475 const OneHotParam *main_as_OneHotParam() const {
3476 return main_type() == OpParameter_OneHotParam ? static_cast<const OneHotParam *>(main()) : nullptr;
3477 }
3478 const PadParam *main_as_PadParam() const {
3479 return main_type() == OpParameter_PadParam ? static_cast<const PadParam *>(main()) : nullptr;
3480 }
3481 const WhileParam *main_as_WhileParam() const {
3482 return main_type() == OpParameter_WhileParam ? static_cast<const WhileParam *>(main()) : nullptr;
3483 }
3484 const IfParam *main_as_IfParam() const {
3485 return main_type() == OpParameter_IfParam ? static_cast<const IfParam *>(main()) : nullptr;
3486 }
3487 const RandomUniform *main_as_RandomUniform() const {
3488 return main_type() == OpParameter_RandomUniform ? static_cast<const RandomUniform *>(main()) : nullptr;
3489 }
3490 const LayerNorm *main_as_LayerNorm() const {
3491 return main_type() == OpParameter_LayerNorm ? static_cast<const LayerNorm *>(main()) : nullptr;
3492 }
3493 const TensorArray *main_as_TensorArray() const {
3494 return main_type() == OpParameter_TensorArray ? static_cast<const TensorArray *>(main()) : nullptr;
3495 }
3496 const LSTMBlockCell *main_as_LSTMBlockCell() const {
3497 return main_type() == OpParameter_LSTMBlockCell ? static_cast<const LSTMBlockCell *>(main()) : nullptr;
3498 }
3499 const GridSample *main_as_GridSample() const {
3500 return main_type() == OpParameter_GridSample ? static_cast<const GridSample *>(main()) : nullptr;
3501 }
3502 const LoopParam *main_as_LoopParam() const {
3503 return main_type() == OpParameter_LoopParam ? static_cast<const LoopParam *>(main()) : nullptr;
3504 }
3505 const flatbuffers::String *name() const {
3506 return GetPointer<const flatbuffers::String *>(10);
3507 }
3508 const flatbuffers::Vector<int32_t> *outputIndexes() const {
3509 return GetPointer<const flatbuffers::Vector<int32_t> *>(12);
3510 }
3511 OpType type() const {
3512 return static_cast<OpType>(GetField<int32_t>(14, 0));
3513 }
3514 MNN_DATA_FORMAT defaultDimentionFormat() const {
3515 return static_cast<MNN_DATA_FORMAT>(GetField<int8_t>(16, 1));
3516 }
3517 bool Verify(flatbuffers::Verifier &verifier) const {
3518 return VerifyTableStart(verifier) &&
3519 VerifyOffset(verifier, 4) &&
3520 verifier.VerifyVector(inputIndexes()) &&
3521 VerifyField<uint8_t>(verifier, 6) &&
3522 VerifyOffset(verifier, 8) &&
3523 VerifyOpParameter(verifier, main(), main_type()) &&
3524 VerifyOffset(verifier, 10) &&
3525 verifier.VerifyString(name()) &&
3526 VerifyOffset(verifier, 12) &&
3527 verifier.VerifyVector(outputIndexes()) &&
3528 VerifyField<int32_t>(verifier, 14) &&
3529 VerifyField<int8_t>(verifier, 16) &&
3530 verifier.EndTable();
3531 }
3532 OpT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3533 void UnPackTo(OpT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3534 static flatbuffers::Offset<Op> Pack(flatbuffers::FlatBufferBuilder &_fbb, const OpT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3535 };
3536
3537 template<> inline const QuantizedAdd *Op::main_as<QuantizedAdd>() const {
3538 return main_as_QuantizedAdd();
3539 }
3540
3541 template<> inline const ArgMax *Op::main_as<ArgMax>() const {
3542 return main_as_ArgMax();
3543 }
3544
3545 template<> inline const AsString *Op::main_as<AsString>() const {
3546 return main_as_AsString();
3547 }
3548
3549 template<> inline const Axis *Op::main_as<Axis>() const {
3550 return main_as_Axis();
3551 }
3552
3553 template<> inline const BatchNorm *Op::main_as<BatchNorm>() const {
3554 return main_as_BatchNorm();
3555 }
3556
3557 template<> inline const BinaryOp *Op::main_as<BinaryOp>() const {
3558 return main_as_BinaryOp();
3559 }
3560
3561 template<> inline const Blob *Op::main_as<Blob>() const {
3562 return main_as_Blob();
3563 }
3564
3565 template<> inline const CastParam *Op::main_as<CastParam>() const {
3566 return main_as_CastParam();
3567 }
3568
3569 template<> inline const Convolution2D *Op::main_as<Convolution2D>() const {
3570 return main_as_Convolution2D();
3571 }
3572
3573 template<> inline const Crop *Op::main_as<Crop>() const {
3574 return main_as_Crop();
3575 }
3576
3577 template<> inline const CropAndResize *Op::main_as<CropAndResize>() const {
3578 return main_as_CropAndResize();
3579 }
3580
3581 template<> inline const Dequantize *Op::main_as<Dequantize>() const {
3582 return main_as_Dequantize();
3583 }
3584
3585 template<> inline const DetectionOutput *Op::main_as<DetectionOutput>() const {
3586 return main_as_DetectionOutput();
3587 }
3588
3589 template<> inline const Eltwise *Op::main_as<Eltwise>() const {
3590 return main_as_Eltwise();
3591 }
3592
3593 template<> inline const ExpandDims *Op::main_as<ExpandDims>() const {
3594 return main_as_ExpandDims();
3595 }
3596
3597 template<> inline const Fill *Op::main_as<Fill>() const {
3598 return main_as_Fill();
3599 }
3600
3601 template<> inline const Flatten *Op::main_as<Flatten>() const {
3602 return main_as_Flatten();
3603 }
3604
3605 template<> inline const Gather *Op::main_as<Gather>() const {
3606 return main_as_Gather();
3607 }
3608
3609 template<> inline const GatherV2 *Op::main_as<GatherV2>() const {
3610 return main_as_GatherV2();
3611 }
3612
3613 template<> inline const InnerProduct *Op::main_as<InnerProduct>() const {
3614 return main_as_InnerProduct();
3615 }
3616
3617 template<> inline const Input *Op::main_as<Input>() const {
3618 return main_as_Input();
3619 }
3620
3621 template<> inline const Interp *Op::main_as<Interp>() const {
3622 return main_as_Interp();
3623 }
3624
3625 template<> inline const LRN *Op::main_as<LRN>() const {
3626 return main_as_LRN();
3627 }
3628
3629 template<> inline const LSTM *Op::main_as<LSTM>() const {
3630 return main_as_LSTM();
3631 }
3632
3633 template<> inline const MatMul *Op::main_as<MatMul>() const {
3634 return main_as_MatMul();
3635 }
3636
3637 template<> inline const NonMaxSuppressionV2 *Op::main_as<NonMaxSuppressionV2>() const {
3638 return main_as_NonMaxSuppressionV2();
3639 }
3640
3641 template<> inline const Normalize *Op::main_as<Normalize>() const {
3642 return main_as_Normalize();
3643 }
3644
3645 template<> inline const PackParam *Op::main_as<PackParam>() const {
3646 return main_as_PackParam();
3647 }
3648
3649 template<> inline const Permute *Op::main_as<Permute>() const {
3650 return main_as_Permute();
3651 }
3652
3653 template<> inline const Plugin *Op::main_as<Plugin>() const {
3654 return main_as_Plugin();
3655 }
3656
3657 template<> inline const Pool *Op::main_as<Pool>() const {
3658 return main_as_Pool();
3659 }
3660
3661 template<> inline const PRelu *Op::main_as<PRelu>() const {
3662 return main_as_PRelu();
3663 }
3664
3665 template<> inline const PriorBox *Op::main_as<PriorBox>() const {
3666 return main_as_PriorBox();
3667 }
3668
3669 template<> inline const Proposal *Op::main_as<Proposal>() const {
3670 return main_as_Proposal();
3671 }
3672
3673 template<> inline const QuantizedAvgPool *Op::main_as<QuantizedAvgPool>() const {
3674 return main_as_QuantizedAvgPool();
3675 }
3676
3677 template<> inline const QuantizedBiasAdd *Op::main_as<QuantizedBiasAdd>() const {
3678 return main_as_QuantizedBiasAdd();
3679 }
3680
3681 template<> inline const QuantizedConcat *Op::main_as<QuantizedConcat>() const {
3682 return main_as_QuantizedConcat();
3683 }
3684
3685 template<> inline const QuantizedLogistic *Op::main_as<QuantizedLogistic>() const {
3686 return main_as_QuantizedLogistic();
3687 }
3688
3689 template<> inline const QuantizedMatMul *Op::main_as<QuantizedMatMul>() const {
3690 return main_as_QuantizedMatMul();
3691 }
3692
3693 template<> inline const QuantizedMaxPool *Op::main_as<QuantizedMaxPool>() const {
3694 return main_as_QuantizedMaxPool();
3695 }
3696
3697 template<> inline const QuantizedRelu *Op::main_as<QuantizedRelu>() const {
3698 return main_as_QuantizedRelu();
3699 }
3700
3701 template<> inline const QuantizedRelu6 *Op::main_as<QuantizedRelu6>() const {
3702 return main_as_QuantizedRelu6();
3703 }
3704
3705 template<> inline const QuantizedReshape *Op::main_as<QuantizedReshape>() const {
3706 return main_as_QuantizedReshape();
3707 }
3708
3709 template<> inline const QuantizedSoftmax *Op::main_as<QuantizedSoftmax>() const {
3710 return main_as_QuantizedSoftmax();
3711 }
3712
3713 template<> inline const QuantizeMaxMin *Op::main_as<QuantizeMaxMin>() const {
3714 return main_as_QuantizeMaxMin();
3715 }
3716
3717 template<> inline const QuantizeV2 *Op::main_as<QuantizeV2>() const {
3718 return main_as_QuantizeV2();
3719 }
3720
3721 template<> inline const Range *Op::main_as<Range>() const {
3722 return main_as_Range();
3723 }
3724
3725 template<> inline const Rank *Op::main_as<Rank>() const {
3726 return main_as_Rank();
3727 }
3728
3729 template<> inline const ReduceJoin *Op::main_as<ReduceJoin>() const {
3730 return main_as_ReduceJoin();
3731 }
3732
3733 template<> inline const ReductionParam *Op::main_as<ReductionParam>() const {
3734 return main_as_ReductionParam();
3735 }
3736
3737 template<> inline const Relu *Op::main_as<Relu>() const {
3738 return main_as_Relu();
3739 }
3740
3741 template<> inline const Relu6 *Op::main_as<Relu6>() const {
3742 return main_as_Relu6();
3743 }
3744
3745 template<> inline const RequantizationRange *Op::main_as<RequantizationRange>() const {
3746 return main_as_RequantizationRange();
3747 }
3748
3749 template<> inline const Requantize *Op::main_as<Requantize>() const {
3750 return main_as_Requantize();
3751 }
3752
3753 template<> inline const Reshape *Op::main_as<Reshape>() const {
3754 return main_as_Reshape();
3755 }
3756
3757 template<> inline const Resize *Op::main_as<Resize>() const {
3758 return main_as_Resize();
3759 }
3760
3761 template<> inline const RoiPooling *Op::main_as<RoiPooling>() const {
3762 return main_as_RoiPooling();
3763 }
3764
3765 template<> inline const Scale *Op::main_as<Scale>() const {
3766 return main_as_Scale();
3767 }
3768
3769 template<> inline const Selu *Op::main_as<Selu>() const {
3770 return main_as_Selu();
3771 }
3772
3773 template<> inline const Size *Op::main_as<Size>() const {
3774 return main_as_Size();
3775 }
3776
3777 template<> inline const Slice *Op::main_as<Slice>() const {
3778 return main_as_Slice();
3779 }
3780
3781 template<> inline const SliceTf *Op::main_as<SliceTf>() const {
3782 return main_as_SliceTf();
3783 }
3784
3785 template<> inline const SpaceBatch *Op::main_as<SpaceBatch>() const {
3786 return main_as_SpaceBatch();
3787 }
3788
3789 template<> inline const SqueezeParam *Op::main_as<SqueezeParam>() const {
3790 return main_as_SqueezeParam();
3791 }
3792
3793 template<> inline const StridedSliceParam *Op::main_as<StridedSliceParam>() const {
3794 return main_as_StridedSliceParam();
3795 }
3796
3797 template<> inline const TensorConvertInfo *Op::main_as<TensorConvertInfo>() const {
3798 return main_as_TensorConvertInfo();
3799 }
3800
3801 template<> inline const TfQuantizedConv2D *Op::main_as<TfQuantizedConv2D>() const {
3802 return main_as_TfQuantizedConv2D();
3803 }
3804
3805 template<> inline const TopKV2 *Op::main_as<TopKV2>() const {
3806 return main_as_TopKV2();
3807 }
3808
3809 template<> inline const Transpose *Op::main_as<Transpose>() const {
3810 return main_as_Transpose();
3811 }
3812
3813 template<> inline const UnaryOp *Op::main_as<UnaryOp>() const {
3814 return main_as_UnaryOp();
3815 }
3816
3817 template<> inline const MomentsParam *Op::main_as<MomentsParam>() const {
3818 return main_as_MomentsParam();
3819 }
3820
3821 template<> inline const RNNParam *Op::main_as<RNNParam>() const {
3822 return main_as_RNNParam();
3823 }
3824
3825 template<> inline const BatchMatMulParam *Op::main_as<BatchMatMulParam>() const {
3826 return main_as_BatchMatMulParam();
3827 }
3828
3829 template<> inline const QuantizedFloatParam *Op::main_as<QuantizedFloatParam>() const {
3830 return main_as_QuantizedFloatParam();
3831 }
3832
3833 template<> inline const DepthSpaceParam *Op::main_as<DepthSpaceParam>() const {
3834 return main_as_DepthSpaceParam();
3835 }
3836
3837 template<> inline const EltwiseInt8 *Op::main_as<EltwiseInt8>() const {
3838 return main_as_EltwiseInt8();
3839 }
3840
3841 template<> inline const ReverseSequenceParam *Op::main_as<ReverseSequenceParam>() const {
3842 return main_as_ReverseSequenceParam();
3843 }
3844
3845 template<> inline const Extra *Op::main_as<Extra>() const {
3846 return main_as_Extra();
3847 }
3848
3849 template<> inline const Pool3D *Op::main_as<Pool3D>() const {
3850 return main_as_Pool3D();
3851 }
3852
3853 template<> inline const Convolution3D *Op::main_as<Convolution3D>() const {
3854 return main_as_Convolution3D();
3855 }
3856
3857 template<> inline const ELU *Op::main_as<ELU>() const {
3858 return main_as_ELU();
3859 }
3860
3861 template<> inline const DetectionPostProcessParam *Op::main_as<DetectionPostProcessParam>() const {
3862 return main_as_DetectionPostProcessParam();
3863 }
3864
3865 template<> inline const OneHotParam *Op::main_as<OneHotParam>() const {
3866 return main_as_OneHotParam();
3867 }
3868
3869 template<> inline const PadParam *Op::main_as<PadParam>() const {
3870 return main_as_PadParam();
3871 }
3872
3873 template<> inline const WhileParam *Op::main_as<WhileParam>() const {
3874 return main_as_WhileParam();
3875 }
3876
3877 template<> inline const IfParam *Op::main_as<IfParam>() const {
3878 return main_as_IfParam();
3879 }
3880
3881 template<> inline const RandomUniform *Op::main_as<RandomUniform>() const {
3882 return main_as_RandomUniform();
3883 }
3884
3885 template<> inline const LayerNorm *Op::main_as<LayerNorm>() const {
3886 return main_as_LayerNorm();
3887 }
3888
3889 template<> inline const TensorArray *Op::main_as<TensorArray>() const {
3890 return main_as_TensorArray();
3891 }
3892
3893 template<> inline const LSTMBlockCell *Op::main_as<LSTMBlockCell>() const {
3894 return main_as_LSTMBlockCell();
3895 }
3896
3897 template<> inline const GridSample *Op::main_as<GridSample>() const {
3898 return main_as_GridSample();
3899 }
3900
3901 template<> inline const LoopParam *Op::main_as<LoopParam>() const {
3902 return main_as_LoopParam();
3903 }
3904
3905 struct OpBuilder {
3906 flatbuffers::FlatBufferBuilder &fbb_;
3907 flatbuffers::uoffset_t start_;
3908 void add_inputIndexes(flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputIndexes) {
3909 fbb_.AddOffset(4, inputIndexes);
3910 }
3911 void add_main_type(OpParameter main_type) {
3912 fbb_.AddElement<uint8_t>(6, static_cast<uint8_t>(main_type), 0);
3913 }
3914 void add_main(flatbuffers::Offset<void> main) {
3915 fbb_.AddOffset(8, main);
3916 }
3917 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
3918 fbb_.AddOffset(10, name);
3919 }
3920 void add_outputIndexes(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputIndexes) {
3921 fbb_.AddOffset(12, outputIndexes);
3922 }
3923 void add_type(OpType type) {
3924 fbb_.AddElement<int32_t>(14, static_cast<int32_t>(type), 0);
3925 }
3926 void add_defaultDimentionFormat(MNN_DATA_FORMAT defaultDimentionFormat) {
3927 fbb_.AddElement<int8_t>(16, static_cast<int8_t>(defaultDimentionFormat), 1);
3928 }
3929 explicit OpBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3930 : fbb_(_fbb) {
3931 start_ = fbb_.StartTable();
3932 }
3933 OpBuilder &operator=(const OpBuilder &);
3934 flatbuffers::Offset<Op> Finish() {
3935 const auto end = fbb_.EndTable(start_);
3936 auto o = flatbuffers::Offset<Op>(end);
3937 return o;
3938 }
3939 };
3940
3941 inline flatbuffers::Offset<Op> CreateOp(
3942 flatbuffers::FlatBufferBuilder &_fbb,
3943 flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputIndexes = 0,
3944 OpParameter main_type = OpParameter_NONE,
3945 flatbuffers::Offset<void> main = 0,
3946 flatbuffers::Offset<flatbuffers::String> name = 0,
3947 flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputIndexes = 0,
3948 OpType type = OpType_AbsVal,
3949 MNN_DATA_FORMAT defaultDimentionFormat = MNN_DATA_FORMAT_NHWC) {
3950 OpBuilder builder_(_fbb);
3951 builder_.add_type(type);
3952 builder_.add_outputIndexes(outputIndexes);
3953 builder_.add_name(name);
3954 builder_.add_main(main);
3955 builder_.add_inputIndexes(inputIndexes);
3956 builder_.add_defaultDimentionFormat(defaultDimentionFormat);
3957 builder_.add_main_type(main_type);
3958 return builder_.Finish();
3959 }
3960
3961 flatbuffers::Offset<Op> CreateOp(flatbuffers::FlatBufferBuilder &_fbb, const OpT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3962
3963 struct ViewT : public flatbuffers::NativeTable {
3964 typedef View TableType;
3965 int32_t offset;
3966 std::vector<int32_t> stride;
3967 ViewT()
3968 : offset(0) {
3969 }
3970 };
3971
3972 struct View FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
3973 typedef ViewT NativeTableType;
3974 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
3975 return ViewTypeTable();
3976 }
3977 int32_t offset() const {
3978 return GetField<int32_t>(4, 0);
3979 }
3980 const flatbuffers::Vector<int32_t> *stride() const {
3981 return GetPointer<const flatbuffers::Vector<int32_t> *>(6);
3982 }
3983 bool Verify(flatbuffers::Verifier &verifier) const {
3984 return VerifyTableStart(verifier) &&
3985 VerifyField<int32_t>(verifier, 4) &&
3986 VerifyOffset(verifier, 6) &&
3987 verifier.VerifyVector(stride()) &&
3988 verifier.EndTable();
3989 }
3990 ViewT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3991 void UnPackTo(ViewT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3992 static flatbuffers::Offset<View> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ViewT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3993 };
3994
3995 struct ViewBuilder {
3996 flatbuffers::FlatBufferBuilder &fbb_;
3997 flatbuffers::uoffset_t start_;
3998 void add_offset(int32_t offset) {
3999 fbb_.AddElement<int32_t>(4, offset, 0);
4000 }
4001 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
4002 fbb_.AddOffset(6, stride);
4003 }
4004 explicit ViewBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4005 : fbb_(_fbb) {
4006 start_ = fbb_.StartTable();
4007 }
4008 ViewBuilder &operator=(const ViewBuilder &);
4009 flatbuffers::Offset<View> Finish() {
4010 const auto end = fbb_.EndTable(start_);
4011 auto o = flatbuffers::Offset<View>(end);
4012 return o;
4013 }
4014 };
4015
4016 inline flatbuffers::Offset<View> CreateView(
4017 flatbuffers::FlatBufferBuilder &_fbb,
4018 int32_t offset = 0,
4019 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0) {
4020 ViewBuilder builder_(_fbb);
4021 builder_.add_stride(stride);
4022 builder_.add_offset(offset);
4023 return builder_.Finish();
4024 }
4025
4026 flatbuffers::Offset<View> CreateView(flatbuffers::FlatBufferBuilder &_fbb, const ViewT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
4027
4028 struct RegionT : public flatbuffers::NativeTable {
4029 typedef Region TableType;
4030 std::unique_ptr<ViewT> src;
4031 std::unique_ptr<ViewT> dst;
4032 std::vector<int32_t> size;
4033 int32_t origin;
4034 RegionT()
4035 : origin(0) {
4036 }
4037 };
4038
4039 struct Region FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4040 typedef RegionT NativeTableType;
4041 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
4042 return RegionTypeTable();
4043 }
4044 const View *src() const {
4045 return GetPointer<const View *>(4);
4046 }
4047 const View *dst() const {
4048 return GetPointer<const View *>(6);
4049 }
4050 const flatbuffers::Vector<int32_t> *size() const {
4051 return GetPointer<const flatbuffers::Vector<int32_t> *>(8);
4052 }
4053 int32_t origin() const {
4054 return GetField<int32_t>(10, 0);
4055 }
4056 bool Verify(flatbuffers::Verifier &verifier) const {
4057 return VerifyTableStart(verifier) &&
4058 VerifyOffset(verifier, 4) &&
4059 verifier.VerifyTable(src()) &&
4060 VerifyOffset(verifier, 6) &&
4061 verifier.VerifyTable(dst()) &&
4062 VerifyOffset(verifier, 8) &&
4063 verifier.VerifyVector(size()) &&
4064 VerifyField<int32_t>(verifier, 10) &&
4065 verifier.EndTable();
4066 }
4067 RegionT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
4068 void UnPackTo(RegionT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
4069 static flatbuffers::Offset<Region> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RegionT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
4070 };
4071
4072 struct RegionBuilder {
4073 flatbuffers::FlatBufferBuilder &fbb_;
4074 flatbuffers::uoffset_t start_;
4075 void add_src(flatbuffers::Offset<View> src) {
4076 fbb_.AddOffset(4, src);
4077 }
4078 void add_dst(flatbuffers::Offset<View> dst) {
4079 fbb_.AddOffset(6, dst);
4080 }
4081 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
4082 fbb_.AddOffset(8, size);
4083 }
4084 void add_origin(int32_t origin) {
4085 fbb_.AddElement<int32_t>(10, origin, 0);
4086 }
4087 explicit RegionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4088 : fbb_(_fbb) {
4089 start_ = fbb_.StartTable();
4090 }
4091 RegionBuilder &operator=(const RegionBuilder &);
4092 flatbuffers::Offset<Region> Finish() {
4093 const auto end = fbb_.EndTable(start_);
4094 auto o = flatbuffers::Offset<Region>(end);
4095 return o;
4096 }
4097 };
4098
4099 inline flatbuffers::Offset<Region> CreateRegion(
4100 flatbuffers::FlatBufferBuilder &_fbb,
4101 flatbuffers::Offset<View> src = 0,
4102 flatbuffers::Offset<View> dst = 0,
4103 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0,
4104 int32_t origin = 0) {
4105 RegionBuilder builder_(_fbb);
4106 builder_.add_origin(origin);
4107 builder_.add_size(size);
4108 builder_.add_dst(dst);
4109 builder_.add_src(src);
4110 return builder_.Finish();
4111 }
4112
4113 flatbuffers::Offset<Region> CreateRegion(flatbuffers::FlatBufferBuilder &_fbb, const RegionT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
4114
4115 struct TensorDescribeT : public flatbuffers::NativeTable {
4116 typedef TensorDescribe TableType;
4117 std::unique_ptr<BlobT> blob;
4118 int32_t index;
4119 std::string name;
4120 std::vector<std::unique_ptr<RegionT>> regions;
4121 std::unique_ptr<TensorQuantInfoT> quantInfo;
4122 TensorDescribeT()
4123 : index(0) {
4124 }
4125 };
4126
4127 struct TensorDescribe FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4128 typedef TensorDescribeT NativeTableType;
4129 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
4130 return TensorDescribeTypeTable();
4131 }
4132 const Blob *blob() const {
4133 return GetPointer<const Blob *>(4);
4134 }
4135 int32_t index() const {
4136 return GetField<int32_t>(6, 0);
4137 }
4138 const flatbuffers::String *name() const {
4139 return GetPointer<const flatbuffers::String *>(8);
4140 }
4141 const flatbuffers::Vector<flatbuffers::Offset<Region>> *regions() const {
4142 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Region>> *>(10);
4143 }
4144 const TensorQuantInfo *quantInfo() const {
4145 return GetPointer<const TensorQuantInfo *>(12);
4146 }
4147 bool Verify(flatbuffers::Verifier &verifier) const {
4148 return VerifyTableStart(verifier) &&
4149 VerifyOffset(verifier, 4) &&
4150 verifier.VerifyTable(blob()) &&
4151 VerifyField<int32_t>(verifier, 6) &&
4152 VerifyOffset(verifier, 8) &&
4153 verifier.VerifyString(name()) &&
4154 VerifyOffset(verifier, 10) &&
4155 verifier.VerifyVector(regions()) &&
4156 verifier.VerifyVectorOfTables(regions()) &&
4157 VerifyOffset(verifier, 12) &&
4158 verifier.VerifyTable(quantInfo()) &&
4159 verifier.EndTable();
4160 }
4161 TensorDescribeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
4162 void UnPackTo(TensorDescribeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
4163 static flatbuffers::Offset<TensorDescribe> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TensorDescribeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
4164 };
4165
4166 struct TensorDescribeBuilder {
4167 flatbuffers::FlatBufferBuilder &fbb_;
4168 flatbuffers::uoffset_t start_;
4169 void add_blob(flatbuffers::Offset<Blob> blob) {
4170 fbb_.AddOffset(4, blob);
4171 }
4172 void add_index(int32_t index) {
4173 fbb_.AddElement<int32_t>(6, index, 0);
4174 }
4175 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
4176 fbb_.AddOffset(8, name);
4177 }
4178 void add_regions(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Region>>> regions) {
4179 fbb_.AddOffset(10, regions);
4180 }
4181 void add_quantInfo(flatbuffers::Offset<TensorQuantInfo> quantInfo) {
4182 fbb_.AddOffset(12, quantInfo);
4183 }
4184 explicit TensorDescribeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4185 : fbb_(_fbb) {
4186 start_ = fbb_.StartTable();
4187 }
4188 TensorDescribeBuilder &operator=(const TensorDescribeBuilder &);
4189 flatbuffers::Offset<TensorDescribe> Finish() {
4190 const auto end = fbb_.EndTable(start_);
4191 auto o = flatbuffers::Offset<TensorDescribe>(end);
4192 return o;
4193 }
4194 };
4195
4196 inline flatbuffers::Offset<TensorDescribe> CreateTensorDescribe(
4197 flatbuffers::FlatBufferBuilder &_fbb,
4198 flatbuffers::Offset<Blob> blob = 0,
4199 int32_t index = 0,
4200 flatbuffers::Offset<flatbuffers::String> name = 0,
4201 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Region>>> regions = 0,
4202 flatbuffers::Offset<TensorQuantInfo> quantInfo = 0) {
4203 TensorDescribeBuilder builder_(_fbb);
4204 builder_.add_quantInfo(quantInfo);
4205 builder_.add_regions(regions);
4206 builder_.add_name(name);
4207 builder_.add_index(index);
4208 builder_.add_blob(blob);
4209 return builder_.Finish();
4210 }
4211
4212 flatbuffers::Offset<TensorDescribe> CreateTensorDescribe(flatbuffers::FlatBufferBuilder &_fbb, const TensorDescribeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
4213
4214 struct SubGraphProtoT : public flatbuffers::NativeTable {
4215 typedef SubGraphProto TableType;
4216 std::string name;
4217 std::vector<int32_t> inputs;
4218 std::vector<int32_t> outputs;
4219 std::vector<std::string> tensors;
4220 std::vector<std::unique_ptr<OpT>> nodes;
4221 std::vector<std::unique_ptr<TensorDescribeT>> extraTensorDescribe;
4222 SubGraphProtoT() {
4223 }
4224 };
4225
4226 struct SubGraphProto FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4227 typedef SubGraphProtoT NativeTableType;
4228 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
4229 return SubGraphProtoTypeTable();
4230 }
4231 const flatbuffers::String *name() const {
4232 return GetPointer<const flatbuffers::String *>(4);
4233 }
4234 const flatbuffers::Vector<int32_t> *inputs() const {
4235 return GetPointer<const flatbuffers::Vector<int32_t> *>(6);
4236 }
4237 const flatbuffers::Vector<int32_t> *outputs() const {
4238 return GetPointer<const flatbuffers::Vector<int32_t> *>(8);
4239 }
4240 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *tensors() const {
4241 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(10);
4242 }
4243 const flatbuffers::Vector<flatbuffers::Offset<Op>> *nodes() const {
4244 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Op>> *>(12);
4245 }
4246 const flatbuffers::Vector<flatbuffers::Offset<TensorDescribe>> *extraTensorDescribe() const {
4247 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<TensorDescribe>> *>(14);
4248 }
4249 bool Verify(flatbuffers::Verifier &verifier) const {
4250 return VerifyTableStart(verifier) &&
4251 VerifyOffset(verifier, 4) &&
4252 verifier.VerifyString(name()) &&
4253 VerifyOffset(verifier, 6) &&
4254 verifier.VerifyVector(inputs()) &&
4255 VerifyOffset(verifier, 8) &&
4256 verifier.VerifyVector(outputs()) &&
4257 VerifyOffset(verifier, 10) &&
4258 verifier.VerifyVector(tensors()) &&
4259 verifier.VerifyVectorOfStrings(tensors()) &&
4260 VerifyOffset(verifier, 12) &&
4261 verifier.VerifyVector(nodes()) &&
4262 verifier.VerifyVectorOfTables(nodes()) &&
4263 VerifyOffset(verifier, 14) &&
4264 verifier.VerifyVector(extraTensorDescribe()) &&
4265 verifier.VerifyVectorOfTables(extraTensorDescribe()) &&
4266 verifier.EndTable();
4267 }
4268 SubGraphProtoT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
4269 void UnPackTo(SubGraphProtoT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
4270 static flatbuffers::Offset<SubGraphProto> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SubGraphProtoT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
4271 };
4272
4273 struct SubGraphProtoBuilder {
4274 flatbuffers::FlatBufferBuilder &fbb_;
4275 flatbuffers::uoffset_t start_;
4276 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
4277 fbb_.AddOffset(4, name);
4278 }
4279 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputs) {
4280 fbb_.AddOffset(6, inputs);
4281 }
4282 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputs) {
4283 fbb_.AddOffset(8, outputs);
4284 }
4285 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> tensors) {
4286 fbb_.AddOffset(10, tensors);
4287 }
4288 void add_nodes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Op>>> nodes) {
4289 fbb_.AddOffset(12, nodes);
4290 }
4291 void add_extraTensorDescribe(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TensorDescribe>>> extraTensorDescribe) {
4292 fbb_.AddOffset(14, extraTensorDescribe);
4293 }
4294 explicit SubGraphProtoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4295 : fbb_(_fbb) {
4296 start_ = fbb_.StartTable();
4297 }
4298 SubGraphProtoBuilder &operator=(const SubGraphProtoBuilder &);
4299 flatbuffers::Offset<SubGraphProto> Finish() {
4300 const auto end = fbb_.EndTable(start_);
4301 auto o = flatbuffers::Offset<SubGraphProto>(end);
4302 return o;
4303 }
4304 };
4305
4306 inline flatbuffers::Offset<SubGraphProto> CreateSubGraphProto(
4307 flatbuffers::FlatBufferBuilder &_fbb,
4308 flatbuffers::Offset<flatbuffers::String> name = 0,
4309 flatbuffers::Offset<flatbuffers::Vector<int32_t>> inputs = 0,
4310 flatbuffers::Offset<flatbuffers::Vector<int32_t>> outputs = 0,
4311 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> tensors = 0,
4312 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Op>>> nodes = 0,
4313 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TensorDescribe>>> extraTensorDescribe = 0) {
4314 SubGraphProtoBuilder builder_(_fbb);
4315 builder_.add_extraTensorDescribe(extraTensorDescribe);
4316 builder_.add_nodes(nodes);
4317 builder_.add_tensors(tensors);
4318 builder_.add_outputs(outputs);
4319 builder_.add_inputs(inputs);
4320 builder_.add_name(name);
4321 return builder_.Finish();
4322 }
4323
4324 flatbuffers::Offset<SubGraphProto> CreateSubGraphProto(flatbuffers::FlatBufferBuilder &_fbb, const SubGraphProtoT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
4325
4326 struct TensorQuantInfoT : public flatbuffers::NativeTable {
4327 typedef TensorQuantInfo TableType;
4328 float scale;
4329 float zero;
4330 float min;
4331 float max;
4332 DataType type;
4333 TensorQuantInfoT()
4334 : scale(0.0f),
4335 zero(0.0f),
4336 min(-128.0f),
4337 max(127.0f),
4338 type(DataType_DT_INVALID) {
4339 }
4340 };
4341
4342 struct TensorQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4343 typedef TensorQuantInfoT NativeTableType;
4344 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
4345 return TensorQuantInfoTypeTable();
4346 }
4347 float scale() const {
4348 return GetField<float>(4, 0.0f);
4349 }
4350 float zero() const {
4351 return GetField<float>(6, 0.0f);
4352 }
4353 float min() const {
4354 return GetField<float>(8, -128.0f);
4355 }
4356 float max() const {
4357 return GetField<float>(10, 127.0f);
4358 }
4359 DataType type() const {
4360 return static_cast<DataType>(GetField<int32_t>(12, 0));
4361 }
4362 bool Verify(flatbuffers::Verifier &verifier) const {
4363 return VerifyTableStart(verifier) &&
4364 VerifyField<float>(verifier, 4) &&
4365 VerifyField<float>(verifier, 6) &&
4366 VerifyField<float>(verifier, 8) &&
4367 VerifyField<float>(verifier, 10) &&
4368 VerifyField<int32_t>(verifier, 12) &&
4369 verifier.EndTable();
4370 }
4371 TensorQuantInfoT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
4372 void UnPackTo(TensorQuantInfoT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
4373 static flatbuffers::Offset<TensorQuantInfo> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TensorQuantInfoT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
4374 };
4375
4376 struct TensorQuantInfoBuilder {
4377 flatbuffers::FlatBufferBuilder &fbb_;
4378 flatbuffers::uoffset_t start_;
4379 void add_scale(float scale) {
4380 fbb_.AddElement<float>(4, scale, 0.0f);
4381 }
4382 void add_zero(float zero) {
4383 fbb_.AddElement<float>(6, zero, 0.0f);
4384 }
4385 void add_min(float min) {
4386 fbb_.AddElement<float>(8, min, -128.0f);
4387 }
4388 void add_max(float max) {
4389 fbb_.AddElement<float>(10, max, 127.0f);
4390 }
4391 void add_type(DataType type) {
4392 fbb_.AddElement<int32_t>(12, static_cast<int32_t>(type), 0);
4393 }
4394 explicit TensorQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4395 : fbb_(_fbb) {
4396 start_ = fbb_.StartTable();
4397 }
4398 TensorQuantInfoBuilder &operator=(const TensorQuantInfoBuilder &);
4399 flatbuffers::Offset<TensorQuantInfo> Finish() {
4400 const auto end = fbb_.EndTable(start_);
4401 auto o = flatbuffers::Offset<TensorQuantInfo>(end);
4402 return o;
4403 }
4404 };
4405
4406 inline flatbuffers::Offset<TensorQuantInfo> CreateTensorQuantInfo(
4407 flatbuffers::FlatBufferBuilder &_fbb,
4408 float scale = 0.0f,
4409 float zero = 0.0f,
4410 float min = -128.0f,
4411 float max = 127.0f,
4412 DataType type = DataType_DT_INVALID) {
4413 TensorQuantInfoBuilder builder_(_fbb);
4414 builder_.add_type(type);
4415 builder_.add_max(max);
4416 builder_.add_min(min);
4417 builder_.add_zero(zero);
4418 builder_.add_scale(scale);
4419 return builder_.Finish();
4420 }
4421
4422 flatbuffers::Offset<TensorQuantInfo> CreateTensorQuantInfo(flatbuffers::FlatBufferBuilder &_fbb, const TensorQuantInfoT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
4423
4424 struct NetT : public flatbuffers::NativeTable {
4425 typedef Net TableType;
4426 std::string bizCode;
4427 std::vector<std::unique_ptr<TensorDescribeT>> extraTensorDescribe;
4428 std::unique_ptr<GpuLibraryT> gpulibrary;
4429 std::vector<std::unique_ptr<OpT>> oplists;
4430 std::vector<std::string> outputName;
4431 ForwardType preferForwardType;
4432 NetSource sourceType;
4433 std::vector<std::string> tensorName;
4434 int32_t tensorNumber;
4435 Usage usage;
4436 std::vector<std::unique_ptr<SubGraphProtoT>> subgraphs;
4437 NetT()
4438 : preferForwardType(ForwardType_CPU),
4439 sourceType(NetSource_CAFFE),
4440 tensorNumber(0),
4441 usage(Usage_INFERENCE) {
4442 }
4443 };
4444
4445 struct Net FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
4446 typedef NetT NativeTableType;
4447 static const flatbuffers::TypeTable *MiniReflectTypeTable() {
4448 return NetTypeTable();
4449 }
4450 const flatbuffers::String *bizCode() const {
4451 return GetPointer<const flatbuffers::String *>(4);
4452 }
4453 const flatbuffers::Vector<flatbuffers::Offset<TensorDescribe>> *extraTensorDescribe() const {
4454 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<TensorDescribe>> *>(6);
4455 }
4456 const GpuLibrary *gpulibrary() const {
4457 return GetPointer<const GpuLibrary *>(8);
4458 }
4459 const flatbuffers::Vector<flatbuffers::Offset<Op>> *oplists() const {
4460 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Op>> *>(10);
4461 }
4462 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputName() const {
4463 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(12);
4464 }
4465 ForwardType preferForwardType() const {
4466 return static_cast<ForwardType>(GetField<int8_t>(14, 0));
4467 }
4468 NetSource sourceType() const {
4469 return static_cast<NetSource>(GetField<int8_t>(16, 0));
4470 }
4471 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *tensorName() const {
4472 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(18);
4473 }
4474 int32_t tensorNumber() const {
4475 return GetField<int32_t>(20, 0);
4476 }
4477 Usage usage() const {
4478 return static_cast<Usage>(GetField<int8_t>(22, 0));
4479 }
4480 const flatbuffers::Vector<flatbuffers::Offset<SubGraphProto>> *subgraphs() const {
4481 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<SubGraphProto>> *>(24);
4482 }
4483 bool Verify(flatbuffers::Verifier &verifier) const {
4484 return VerifyTableStart(verifier) &&
4485 VerifyOffset(verifier, 4) &&
4486 verifier.VerifyString(bizCode()) &&
4487 VerifyOffset(verifier, 6) &&
4488 verifier.VerifyVector(extraTensorDescribe()) &&
4489 verifier.VerifyVectorOfTables(extraTensorDescribe()) &&
4490 VerifyOffset(verifier, 8) &&
4491 verifier.VerifyTable(gpulibrary()) &&
4492 VerifyOffset(verifier, 10) &&
4493 verifier.VerifyVector(oplists()) &&
4494 verifier.VerifyVectorOfTables(oplists()) &&
4495 VerifyOffset(verifier, 12) &&
4496 verifier.VerifyVector(outputName()) &&
4497 verifier.VerifyVectorOfStrings(outputName()) &&
4498 VerifyField<int8_t>(verifier, 14) &&
4499 VerifyField<int8_t>(verifier, 16) &&
4500 VerifyOffset(verifier, 18) &&
4501 verifier.VerifyVector(tensorName()) &&
4502 verifier.VerifyVectorOfStrings(tensorName()) &&
4503 VerifyField<int32_t>(verifier, 20) &&
4504 VerifyField<int8_t>(verifier, 22) &&
4505 VerifyOffset(verifier, 24) &&
4506 verifier.VerifyVector(subgraphs()) &&
4507 verifier.VerifyVectorOfTables(subgraphs()) &&
4508 verifier.EndTable();
4509 }
4510 NetT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
4511 void UnPackTo(NetT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
4512 static flatbuffers::Offset<Net> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NetT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
4513 };
4514
4515 struct NetBuilder {
4516 flatbuffers::FlatBufferBuilder &fbb_;
4517 flatbuffers::uoffset_t start_;
4518 void add_bizCode(flatbuffers::Offset<flatbuffers::String> bizCode) {
4519 fbb_.AddOffset(4, bizCode);
4520 }
4521 void add_extraTensorDescribe(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TensorDescribe>>> extraTensorDescribe) {
4522 fbb_.AddOffset(6, extraTensorDescribe);
4523 }
4524 void add_gpulibrary(flatbuffers::Offset<GpuLibrary> gpulibrary) {
4525 fbb_.AddOffset(8, gpulibrary);
4526 }
4527 void add_oplists(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Op>>> oplists) {
4528 fbb_.AddOffset(10, oplists);
4529 }
4530 void add_outputName(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputName) {
4531 fbb_.AddOffset(12, outputName);
4532 }
4533 void add_preferForwardType(ForwardType preferForwardType) {
4534 fbb_.AddElement<int8_t>(14, static_cast<int8_t>(preferForwardType), 0);
4535 }
4536 void add_sourceType(NetSource sourceType) {
4537 fbb_.AddElement<int8_t>(16, static_cast<int8_t>(sourceType), 0);
4538 }
4539 void add_tensorName(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> tensorName) {
4540 fbb_.AddOffset(18, tensorName);
4541 }
4542 void add_tensorNumber(int32_t tensorNumber) {
4543 fbb_.AddElement<int32_t>(20, tensorNumber, 0);
4544 }
4545 void add_usage(Usage usage) {
4546 fbb_.AddElement<int8_t>(22, static_cast<int8_t>(usage), 0);
4547 }
4548 void add_subgraphs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<SubGraphProto>>> subgraphs) {
4549 fbb_.AddOffset(24, subgraphs);
4550 }
4551 explicit NetBuilder(flatbuffers::FlatBufferBuilder &_fbb)
4552 : fbb_(_fbb) {
4553 start_ = fbb_.StartTable();
4554 }
4555 NetBuilder &operator=(const NetBuilder &);
4556 flatbuffers::Offset<Net> Finish() {
4557 const auto end = fbb_.EndTable(start_);
4558 auto o = flatbuffers::Offset<Net>(end);
4559 return o;
4560 }
4561 };
4562
4563 inline flatbuffers::Offset<Net> CreateNet(
4564 flatbuffers::FlatBufferBuilder &_fbb,
4565 flatbuffers::Offset<flatbuffers::String> bizCode = 0,
4566 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<TensorDescribe>>> extraTensorDescribe = 0,
4567 flatbuffers::Offset<GpuLibrary> gpulibrary = 0,
4568 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Op>>> oplists = 0,
4569 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputName = 0,
4570 ForwardType preferForwardType = ForwardType_CPU,
4571 NetSource sourceType = NetSource_CAFFE,
4572 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> tensorName = 0,
4573 int32_t tensorNumber = 0,
4574 Usage usage = Usage_INFERENCE,
4575 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<SubGraphProto>>> subgraphs = 0) {
4576 NetBuilder builder_(_fbb);
4577 builder_.add_subgraphs(subgraphs);
4578 builder_.add_tensorNumber(tensorNumber);
4579 builder_.add_tensorName(tensorName);
4580 builder_.add_outputName(outputName);
4581 builder_.add_oplists(oplists);
4582 builder_.add_gpulibrary(gpulibrary);
4583 builder_.add_extraTensorDescribe(extraTensorDescribe);
4584 builder_.add_bizCode(bizCode);
4585 builder_.add_usage(usage);
4586 builder_.add_sourceType(sourceType);
4587 builder_.add_preferForwardType(preferForwardType);
4588 return builder_.Finish();
4589 }
4590
4591 flatbuffers::Offset<Net> CreateNet(flatbuffers::FlatBufferBuilder &_fbb, const NetT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
4592
4593 inline PluginT *Plugin::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4594 auto _o = new PluginT();
4595 UnPackTo(_o, _resolver);
4596 return _o;
4597 }
4598
4599 inline void Plugin::UnPackTo(PluginT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4600 (void)_o;
4601 (void)_resolver;
4602 { auto _e = type(); if (_e) _o->type = _e->str(); };
4603 { auto _e = attr(); if (_e) { _o->attr.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->attr[_i] = std::unique_ptr<AttributeT>(_e->Get(_i)->UnPack(_resolver)); } } };
4604 }
4605
4606 inline flatbuffers::Offset<Plugin> Plugin::Pack(flatbuffers::FlatBufferBuilder &_fbb, const PluginT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4607 return CreatePlugin(_fbb, _o, _rehasher);
4608 }
4609
4610 inline flatbuffers::Offset<Plugin> CreatePlugin(flatbuffers::FlatBufferBuilder &_fbb, const PluginT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4611 (void)_rehasher;
4612 (void)_o;
4613 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const PluginT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4614 auto _type = _o->type.empty() ? 0 : _fbb.CreateString(_o->type);
4615 auto _attr = _o->attr.size() ? _fbb.CreateVector<flatbuffers::Offset<Attribute>> (_o->attr.size(), [](size_t i, _VectorArgs *__va) { return CreateAttribute(*__va->__fbb, __va->__o->attr[i].get(), __va->__rehasher); }, &_va ) : 0;
4616 return MNN::CreatePlugin(
4617 _fbb,
4618 _type,
4619 _attr);
4620 }
4621
4622 inline ExtraT *Extra::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4623 auto _o = new ExtraT();
4624 UnPackTo(_o, _resolver);
4625 return _o;
4626 }
4627
4628 inline void Extra::UnPackTo(ExtraT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4629 (void)_o;
4630 (void)_resolver;
4631 { auto _e = type(); if (_e) _o->type = _e->str(); };
4632 { auto _e = engine(); if (_e) _o->engine = _e->str(); };
4633 { auto _e = info(); if (_e) { _o->info.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->info[_i] = _e->Get(_i); } } };
4634 { auto _e = attr(); if (_e) { _o->attr.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->attr[_i] = std::unique_ptr<AttributeT>(_e->Get(_i)->UnPack(_resolver)); } } };
4635 }
4636
4637 inline flatbuffers::Offset<Extra> Extra::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExtraT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4638 return CreateExtra(_fbb, _o, _rehasher);
4639 }
4640
4641 inline flatbuffers::Offset<Extra> CreateExtra(flatbuffers::FlatBufferBuilder &_fbb, const ExtraT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4642 (void)_rehasher;
4643 (void)_o;
4644 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ExtraT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4645 auto _type = _o->type.empty() ? 0 : _fbb.CreateString(_o->type);
4646 auto _engine = _o->engine.empty() ? 0 : _fbb.CreateString(_o->engine);
4647 auto _info = _o->info.size() ? _fbb.CreateVector(_o->info) : 0;
4648 auto _attr = _o->attr.size() ? _fbb.CreateVector<flatbuffers::Offset<Attribute>> (_o->attr.size(), [](size_t i, _VectorArgs *__va) { return CreateAttribute(*__va->__fbb, __va->__o->attr[i].get(), __va->__rehasher); }, &_va ) : 0;
4649 return MNN::CreateExtra(
4650 _fbb,
4651 _type,
4652 _engine,
4653 _info,
4654 _attr);
4655 }
4656
4657 inline StringVecT *StringVec::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4658 auto _o = new StringVecT();
4659 UnPackTo(_o, _resolver);
4660 return _o;
4661 }
4662
4663 inline void StringVec::UnPackTo(StringVecT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4664 (void)_o;
4665 (void)_resolver;
4666 { auto _e = data(); if (_e) { _o->data.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->data[_i] = _e->Get(_i)->str(); } } };
4667 }
4668
4669 inline flatbuffers::Offset<StringVec> StringVec::Pack(flatbuffers::FlatBufferBuilder &_fbb, const StringVecT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4670 return CreateStringVec(_fbb, _o, _rehasher);
4671 }
4672
4673 inline flatbuffers::Offset<StringVec> CreateStringVec(flatbuffers::FlatBufferBuilder &_fbb, const StringVecT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4674 (void)_rehasher;
4675 (void)_o;
4676 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const StringVecT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4677 auto _data = _o->data.size() ? _fbb.CreateVectorOfStrings(_o->data) : 0;
4678 return MNN::CreateStringVec(
4679 _fbb,
4680 _data);
4681 }
4682
4683 inline WhileParamT *WhileParam::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4684 auto _o = new WhileParamT();
4685 UnPackTo(_o, _resolver);
4686 return _o;
4687 }
4688
4689 inline void WhileParam::UnPackTo(WhileParamT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4690 (void)_o;
4691 (void)_resolver;
4692 { auto _e = cond_graph(); if (_e) _o->cond_graph = _e->str(); };
4693 { auto _e = body_graph(); if (_e) _o->body_graph = _e->str(); };
4694 { auto _e = aliases_inputs(); if (_e) { _o->aliases_inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->aliases_inputs[_i] = std::unique_ptr<StringVecT>(_e->Get(_i)->UnPack(_resolver)); } } };
4695 { auto _e = aliases_outputs(); if (_e) { _o->aliases_outputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->aliases_outputs[_i] = _e->Get(_i)->str(); } } };
4696 { auto _e = aliases_updates(); if (_e) { _o->aliases_updates.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->aliases_updates[_i] = std::unique_ptr<StringVecT>(_e->Get(_i)->UnPack(_resolver)); } } };
4697 }
4698
4699 inline flatbuffers::Offset<WhileParam> WhileParam::Pack(flatbuffers::FlatBufferBuilder &_fbb, const WhileParamT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4700 return CreateWhileParam(_fbb, _o, _rehasher);
4701 }
4702
4703 inline flatbuffers::Offset<WhileParam> CreateWhileParam(flatbuffers::FlatBufferBuilder &_fbb, const WhileParamT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4704 (void)_rehasher;
4705 (void)_o;
4706 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const WhileParamT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4707 auto _cond_graph = _o->cond_graph.empty() ? 0 : _fbb.CreateString(_o->cond_graph);
4708 auto _body_graph = _o->body_graph.empty() ? 0 : _fbb.CreateString(_o->body_graph);
4709 auto _aliases_inputs = _o->aliases_inputs.size() ? _fbb.CreateVector<flatbuffers::Offset<StringVec>> (_o->aliases_inputs.size(), [](size_t i, _VectorArgs *__va) { return CreateStringVec(*__va->__fbb, __va->__o->aliases_inputs[i].get(), __va->__rehasher); }, &_va ) : 0;
4710 auto _aliases_outputs = _o->aliases_outputs.size() ? _fbb.CreateVectorOfStrings(_o->aliases_outputs) : 0;
4711 auto _aliases_updates = _o->aliases_updates.size() ? _fbb.CreateVector<flatbuffers::Offset<StringVec>> (_o->aliases_updates.size(), [](size_t i, _VectorArgs *__va) { return CreateStringVec(*__va->__fbb, __va->__o->aliases_updates[i].get(), __va->__rehasher); }, &_va ) : 0;
4712 return MNN::CreateWhileParam(
4713 _fbb,
4714 _cond_graph,
4715 _body_graph,
4716 _aliases_inputs,
4717 _aliases_outputs,
4718 _aliases_updates);
4719 }
4720
4721 inline IfParamT *IfParam::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4722 auto _o = new IfParamT();
4723 UnPackTo(_o, _resolver);
4724 return _o;
4725 }
4726
4727 inline void IfParam::UnPackTo(IfParamT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4728 (void)_o;
4729 (void)_resolver;
4730 { auto _e = then_graph(); if (_e) _o->then_graph = _e->str(); };
4731 { auto _e = else_graph(); if (_e) _o->else_graph = _e->str(); };
4732 { auto _e = aliases_inputs(); if (_e) { _o->aliases_inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->aliases_inputs[_i] = std::unique_ptr<StringVecT>(_e->Get(_i)->UnPack(_resolver)); } } };
4733 { auto _e = aliases_outputs(); if (_e) { _o->aliases_outputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->aliases_outputs[_i] = std::unique_ptr<StringVecT>(_e->Get(_i)->UnPack(_resolver)); } } };
4734 }
4735
4736 inline flatbuffers::Offset<IfParam> IfParam::Pack(flatbuffers::FlatBufferBuilder &_fbb, const IfParamT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4737 return CreateIfParam(_fbb, _o, _rehasher);
4738 }
4739
4740 inline flatbuffers::Offset<IfParam> CreateIfParam(flatbuffers::FlatBufferBuilder &_fbb, const IfParamT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4741 (void)_rehasher;
4742 (void)_o;
4743 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const IfParamT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4744 auto _then_graph = _o->then_graph.empty() ? 0 : _fbb.CreateString(_o->then_graph);
4745 auto _else_graph = _o->else_graph.empty() ? 0 : _fbb.CreateString(_o->else_graph);
4746 auto _aliases_inputs = _o->aliases_inputs.size() ? _fbb.CreateVector<flatbuffers::Offset<StringVec>> (_o->aliases_inputs.size(), [](size_t i, _VectorArgs *__va) { return CreateStringVec(*__va->__fbb, __va->__o->aliases_inputs[i].get(), __va->__rehasher); }, &_va ) : 0;
4747 auto _aliases_outputs = _o->aliases_outputs.size() ? _fbb.CreateVector<flatbuffers::Offset<StringVec>> (_o->aliases_outputs.size(), [](size_t i, _VectorArgs *__va) { return CreateStringVec(*__va->__fbb, __va->__o->aliases_outputs[i].get(), __va->__rehasher); }, &_va ) : 0;
4748 return MNN::CreateIfParam(
4749 _fbb,
4750 _then_graph,
4751 _else_graph,
4752 _aliases_inputs,
4753 _aliases_outputs);
4754 }
4755
4756 inline RegionCommandT *RegionCommand::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4757 auto _o = new RegionCommandT();
4758 UnPackTo(_o, _resolver);
4759 return _o;
4760 }
4761
4762 inline void RegionCommand::UnPackTo(RegionCommandT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4763 (void)_o;
4764 (void)_resolver;
4765 { auto _e = op(); if (_e) _o->op = std::unique_ptr<OpT>(_e->UnPack(_resolver)); };
4766 { auto _e = steps(); if (_e) { _o->steps.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->steps[_i] = _e->Get(_i); } } };
4767 { auto _e = size(); if (_e) { _o->size.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->size[_i] = _e->Get(_i); } } };
4768 { auto _e = indexes(); if (_e) { _o->indexes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->indexes[_i] = _e->Get(_i); } } };
4769 { auto _e = view(); if (_e) { _o->view.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->view[_i] = std::unique_ptr<ViewT>(_e->Get(_i)->UnPack(_resolver)); } } };
4770 { auto _e = fuse(); _o->fuse = _e; };
4771 { auto _e = iterIndexes(); if (_e) { _o->iterIndexes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->iterIndexes[_i] = _e->Get(_i); } } };
4772 }
4773
4774 inline flatbuffers::Offset<RegionCommand> RegionCommand::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RegionCommandT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4775 return CreateRegionCommand(_fbb, _o, _rehasher);
4776 }
4777
4778 inline flatbuffers::Offset<RegionCommand> CreateRegionCommand(flatbuffers::FlatBufferBuilder &_fbb, const RegionCommandT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4779 (void)_rehasher;
4780 (void)_o;
4781 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RegionCommandT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4782 auto _op = _o->op ? CreateOp(_fbb, _o->op.get(), _rehasher) : 0;
4783 auto _steps = _o->steps.size() ? _fbb.CreateVector(_o->steps) : 0;
4784 auto _size = _o->size.size() ? _fbb.CreateVector(_o->size) : 0;
4785 auto _indexes = _o->indexes.size() ? _fbb.CreateVector(_o->indexes) : 0;
4786 auto _view = _o->view.size() ? _fbb.CreateVector<flatbuffers::Offset<View>> (_o->view.size(), [](size_t i, _VectorArgs *__va) { return CreateView(*__va->__fbb, __va->__o->view[i].get(), __va->__rehasher); }, &_va ) : 0;
4787 auto _fuse = _o->fuse;
4788 auto _iterIndexes = _o->iterIndexes.size() ? _fbb.CreateVector(_o->iterIndexes) : 0;
4789 return MNN::CreateRegionCommand(
4790 _fbb,
4791 _op,
4792 _steps,
4793 _size,
4794 _indexes,
4795 _view,
4796 _fuse,
4797 _iterIndexes);
4798 }
4799
4800 inline LoopParamT *LoopParam::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4801 auto _o = new LoopParamT();
4802 UnPackTo(_o, _resolver);
4803 return _o;
4804 }
4805
4806 inline void LoopParam::UnPackTo(LoopParamT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4807 (void)_o;
4808 (void)_resolver;
4809 { auto _e = tensorNumber(); _o->tensorNumber = _e; };
4810 { auto _e = outputIndexes(); if (_e) { _o->outputIndexes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->outputIndexes[_i] = _e->Get(_i); } } };
4811 { auto _e = inputIndexes(); if (_e) { _o->inputIndexes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inputIndexes[_i] = _e->Get(_i); } } };
4812 { auto _e = midTensors(); if (_e) { _o->midTensors.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->midTensors[_i] = std::unique_ptr<TensorDescribeT>(_e->Get(_i)->UnPack(_resolver)); } } };
4813 { auto _e = parallel(); _o->parallel = _e; };
4814 { auto _e = loopNumber(); _o->loopNumber = _e; };
4815 { auto _e = commands(); if (_e) { _o->commands.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->commands[_i] = std::unique_ptr<RegionCommandT>(_e->Get(_i)->UnPack(_resolver)); } } };
4816 }
4817
4818 inline flatbuffers::Offset<LoopParam> LoopParam::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LoopParamT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4819 return CreateLoopParam(_fbb, _o, _rehasher);
4820 }
4821
4822 inline flatbuffers::Offset<LoopParam> CreateLoopParam(flatbuffers::FlatBufferBuilder &_fbb, const LoopParamT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4823 (void)_rehasher;
4824 (void)_o;
4825 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LoopParamT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4826 auto _tensorNumber = _o->tensorNumber;
4827 auto _outputIndexes = _o->outputIndexes.size() ? _fbb.CreateVector(_o->outputIndexes) : 0;
4828 auto _inputIndexes = _o->inputIndexes.size() ? _fbb.CreateVector(_o->inputIndexes) : 0;
4829 auto _midTensors = _o->midTensors.size() ? _fbb.CreateVector<flatbuffers::Offset<TensorDescribe>> (_o->midTensors.size(), [](size_t i, _VectorArgs *__va) { return CreateTensorDescribe(*__va->__fbb, __va->__o->midTensors[i].get(), __va->__rehasher); }, &_va ) : 0;
4830 auto _parallel = _o->parallel;
4831 auto _loopNumber = _o->loopNumber;
4832 auto _commands = _o->commands.size() ? _fbb.CreateVector<flatbuffers::Offset<RegionCommand>> (_o->commands.size(), [](size_t i, _VectorArgs *__va) { return CreateRegionCommand(*__va->__fbb, __va->__o->commands[i].get(), __va->__rehasher); }, &_va ) : 0;
4833 return MNN::CreateLoopParam(
4834 _fbb,
4835 _tensorNumber,
4836 _outputIndexes,
4837 _inputIndexes,
4838 _midTensors,
4839 _parallel,
4840 _loopNumber,
4841 _commands);
4842 }
4843
4844 inline OpT *Op::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4845 auto _o = new OpT();
4846 UnPackTo(_o, _resolver);
4847 return _o;
4848 }
4849
4850 inline void Op::UnPackTo(OpT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4851 (void)_o;
4852 (void)_resolver;
4853 { auto _e = inputIndexes(); if (_e) { _o->inputIndexes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inputIndexes[_i] = _e->Get(_i); } } };
4854 { auto _e = main_type(); _o->main.type = _e; };
4855 { auto _e = main(); if (_e) _o->main.value = OpParameterUnion::UnPack(_e, main_type(), _resolver); };
4856 { auto _e = name(); if (_e) _o->name = _e->str(); };
4857 { auto _e = outputIndexes(); if (_e) { _o->outputIndexes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->outputIndexes[_i] = _e->Get(_i); } } };
4858 { auto _e = type(); _o->type = _e; };
4859 { auto _e = defaultDimentionFormat(); _o->defaultDimentionFormat = _e; };
4860 }
4861
4862 inline flatbuffers::Offset<Op> Op::Pack(flatbuffers::FlatBufferBuilder &_fbb, const OpT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4863 return CreateOp(_fbb, _o, _rehasher);
4864 }
4865
4866 inline flatbuffers::Offset<Op> CreateOp(flatbuffers::FlatBufferBuilder &_fbb, const OpT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4867 (void)_rehasher;
4868 (void)_o;
4869 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const OpT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4870 auto _inputIndexes = _o->inputIndexes.size() ? _fbb.CreateVector(_o->inputIndexes) : 0;
4871 auto _main_type = _o->main.type;
4872 auto _main = _o->main.Pack(_fbb);
4873 auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
4874 auto _outputIndexes = _o->outputIndexes.size() ? _fbb.CreateVector(_o->outputIndexes) : 0;
4875 auto _type = _o->type;
4876 auto _defaultDimentionFormat = _o->defaultDimentionFormat;
4877 return MNN::CreateOp(
4878 _fbb,
4879 _inputIndexes,
4880 _main_type,
4881 _main,
4882 _name,
4883 _outputIndexes,
4884 _type,
4885 _defaultDimentionFormat);
4886 }
4887
4888 inline ViewT *View::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4889 auto _o = new ViewT();
4890 UnPackTo(_o, _resolver);
4891 return _o;
4892 }
4893
4894 inline void View::UnPackTo(ViewT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4895 (void)_o;
4896 (void)_resolver;
4897 { auto _e = offset(); _o->offset = _e; };
4898 { auto _e = stride(); if (_e) { _o->stride.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->stride[_i] = _e->Get(_i); } } };
4899 }
4900
4901 inline flatbuffers::Offset<View> View::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ViewT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4902 return CreateView(_fbb, _o, _rehasher);
4903 }
4904
4905 inline flatbuffers::Offset<View> CreateView(flatbuffers::FlatBufferBuilder &_fbb, const ViewT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4906 (void)_rehasher;
4907 (void)_o;
4908 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ViewT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4909 auto _offset = _o->offset;
4910 auto _stride = _o->stride.size() ? _fbb.CreateVector(_o->stride) : 0;
4911 return MNN::CreateView(
4912 _fbb,
4913 _offset,
4914 _stride);
4915 }
4916
4917 inline RegionT *Region::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4918 auto _o = new RegionT();
4919 UnPackTo(_o, _resolver);
4920 return _o;
4921 }
4922
4923 inline void Region::UnPackTo(RegionT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4924 (void)_o;
4925 (void)_resolver;
4926 { auto _e = src(); if (_e) _o->src = std::unique_ptr<ViewT>(_e->UnPack(_resolver)); };
4927 { auto _e = dst(); if (_e) _o->dst = std::unique_ptr<ViewT>(_e->UnPack(_resolver)); };
4928 { auto _e = size(); if (_e) { _o->size.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->size[_i] = _e->Get(_i); } } };
4929 { auto _e = origin(); _o->origin = _e; };
4930 }
4931
4932 inline flatbuffers::Offset<Region> Region::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RegionT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4933 return CreateRegion(_fbb, _o, _rehasher);
4934 }
4935
4936 inline flatbuffers::Offset<Region> CreateRegion(flatbuffers::FlatBufferBuilder &_fbb, const RegionT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4937 (void)_rehasher;
4938 (void)_o;
4939 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RegionT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4940 auto _src = _o->src ? CreateView(_fbb, _o->src.get(), _rehasher) : 0;
4941 auto _dst = _o->dst ? CreateView(_fbb, _o->dst.get(), _rehasher) : 0;
4942 auto _size = _o->size.size() ? _fbb.CreateVector(_o->size) : 0;
4943 auto _origin = _o->origin;
4944 return MNN::CreateRegion(
4945 _fbb,
4946 _src,
4947 _dst,
4948 _size,
4949 _origin);
4950 }
4951
4952 inline TensorDescribeT *TensorDescribe::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4953 auto _o = new TensorDescribeT();
4954 UnPackTo(_o, _resolver);
4955 return _o;
4956 }
4957
4958 inline void TensorDescribe::UnPackTo(TensorDescribeT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4959 (void)_o;
4960 (void)_resolver;
4961 { auto _e = blob(); if (_e) _o->blob = std::unique_ptr<BlobT>(_e->UnPack(_resolver)); };
4962 { auto _e = index(); _o->index = _e; };
4963 { auto _e = name(); if (_e) _o->name = _e->str(); };
4964 { auto _e = regions(); if (_e) { _o->regions.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->regions[_i] = std::unique_ptr<RegionT>(_e->Get(_i)->UnPack(_resolver)); } } };
4965 { auto _e = quantInfo(); if (_e) _o->quantInfo = std::unique_ptr<TensorQuantInfoT>(_e->UnPack(_resolver)); };
4966 }
4967
4968 inline flatbuffers::Offset<TensorDescribe> TensorDescribe::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TensorDescribeT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4969 return CreateTensorDescribe(_fbb, _o, _rehasher);
4970 }
4971
4972 inline flatbuffers::Offset<TensorDescribe> CreateTensorDescribe(flatbuffers::FlatBufferBuilder &_fbb, const TensorDescribeT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4973 (void)_rehasher;
4974 (void)_o;
4975 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TensorDescribeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4976 auto _blob = _o->blob ? CreateBlob(_fbb, _o->blob.get(), _rehasher) : 0;
4977 auto _index = _o->index;
4978 auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
4979 auto _regions = _o->regions.size() ? _fbb.CreateVector<flatbuffers::Offset<Region>> (_o->regions.size(), [](size_t i, _VectorArgs *__va) { return CreateRegion(*__va->__fbb, __va->__o->regions[i].get(), __va->__rehasher); }, &_va ) : 0;
4980 auto _quantInfo = _o->quantInfo ? CreateTensorQuantInfo(_fbb, _o->quantInfo.get(), _rehasher) : 0;
4981 return MNN::CreateTensorDescribe(
4982 _fbb,
4983 _blob,
4984 _index,
4985 _name,
4986 _regions,
4987 _quantInfo);
4988 }
4989
4990 inline SubGraphProtoT *SubGraphProto::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4991 auto _o = new SubGraphProtoT();
4992 UnPackTo(_o, _resolver);
4993 return _o;
4994 }
4995
4996 inline void SubGraphProto::UnPackTo(SubGraphProtoT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4997 (void)_o;
4998 (void)_resolver;
4999 { auto _e = name(); if (_e) _o->name = _e->str(); };
5000 { auto _e = inputs(); if (_e) { _o->inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inputs[_i] = _e->Get(_i); } } };
5001 { auto _e = outputs(); if (_e) { _o->outputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->outputs[_i] = _e->Get(_i); } } };
5002 { auto _e = tensors(); if (_e) { _o->tensors.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->tensors[_i] = _e->Get(_i)->str(); } } };
5003 { auto _e = nodes(); if (_e) { _o->nodes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->nodes[_i] = std::unique_ptr<OpT>(_e->Get(_i)->UnPack(_resolver)); } } };
5004 { auto _e = extraTensorDescribe(); if (_e) { _o->extraTensorDescribe.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->extraTensorDescribe[_i] = std::unique_ptr<TensorDescribeT>(_e->Get(_i)->UnPack(_resolver)); } } };
5005 }
5006
5007 inline flatbuffers::Offset<SubGraphProto> SubGraphProto::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SubGraphProtoT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
5008 return CreateSubGraphProto(_fbb, _o, _rehasher);
5009 }
5010
5011 inline flatbuffers::Offset<SubGraphProto> CreateSubGraphProto(flatbuffers::FlatBufferBuilder &_fbb, const SubGraphProtoT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
5012 (void)_rehasher;
5013 (void)_o;
5014 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SubGraphProtoT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
5015 auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
5016 auto _inputs = _o->inputs.size() ? _fbb.CreateVector(_o->inputs) : 0;
5017 auto _outputs = _o->outputs.size() ? _fbb.CreateVector(_o->outputs) : 0;
5018 auto _tensors = _o->tensors.size() ? _fbb.CreateVectorOfStrings(_o->tensors) : 0;
5019 auto _nodes = _o->nodes.size() ? _fbb.CreateVector<flatbuffers::Offset<Op>> (_o->nodes.size(), [](size_t i, _VectorArgs *__va) { return CreateOp(*__va->__fbb, __va->__o->nodes[i].get(), __va->__rehasher); }, &_va ) : 0;
5020 auto _extraTensorDescribe = _o->extraTensorDescribe.size() ? _fbb.CreateVector<flatbuffers::Offset<TensorDescribe>> (_o->extraTensorDescribe.size(), [](size_t i, _VectorArgs *__va) { return CreateTensorDescribe(*__va->__fbb, __va->__o->extraTensorDescribe[i].get(), __va->__rehasher); }, &_va ) : 0;
5021 return MNN::CreateSubGraphProto(
5022 _fbb,
5023 _name,
5024 _inputs,
5025 _outputs,
5026 _tensors,
5027 _nodes,
5028 _extraTensorDescribe);
5029 }
5030
5031 inline TensorQuantInfoT *TensorQuantInfo::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
5032 auto _o = new TensorQuantInfoT();
5033 UnPackTo(_o, _resolver);
5034 return _o;
5035 }
5036
5037 inline void TensorQuantInfo::UnPackTo(TensorQuantInfoT *_o, const flatbuffers::resolver_function_t *_resolver) const {
5038 (void)_o;
5039 (void)_resolver;
5040 { auto _e = scale(); _o->scale = _e; };
5041 { auto _e = zero(); _o->zero = _e; };
5042 { auto _e = min(); _o->min = _e; };
5043 { auto _e = max(); _o->max = _e; };
5044 { auto _e = type(); _o->type = _e; };
5045 }
5046
5047 inline flatbuffers::Offset<TensorQuantInfo> TensorQuantInfo::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TensorQuantInfoT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
5048 return CreateTensorQuantInfo(_fbb, _o, _rehasher);
5049 }
5050
5051 inline flatbuffers::Offset<TensorQuantInfo> CreateTensorQuantInfo(flatbuffers::FlatBufferBuilder &_fbb, const TensorQuantInfoT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
5052 (void)_rehasher;
5053 (void)_o;
5054 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TensorQuantInfoT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
5055 auto _scale = _o->scale;
5056 auto _zero = _o->zero;
5057 auto _min = _o->min;
5058 auto _max = _o->max;
5059 auto _type = _o->type;
5060 return MNN::CreateTensorQuantInfo(
5061 _fbb,
5062 _scale,
5063 _zero,
5064 _min,
5065 _max,
5066 _type);
5067 }
5068
5069 inline NetT *Net::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
5070 auto _o = new NetT();
5071 UnPackTo(_o, _resolver);
5072 return _o;
5073 }
5074
5075 inline void Net::UnPackTo(NetT *_o, const flatbuffers::resolver_function_t *_resolver) const {
5076 (void)_o;
5077 (void)_resolver;
5078 { auto _e = bizCode(); if (_e) _o->bizCode = _e->str(); };
5079 { auto _e = extraTensorDescribe(); if (_e) { _o->extraTensorDescribe.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->extraTensorDescribe[_i] = std::unique_ptr<TensorDescribeT>(_e->Get(_i)->UnPack(_resolver)); } } };
5080 { auto _e = gpulibrary(); if (_e) _o->gpulibrary = std::unique_ptr<GpuLibraryT>(_e->UnPack(_resolver)); };
5081 { auto _e = oplists(); if (_e) { _o->oplists.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->oplists[_i] = std::unique_ptr<OpT>(_e->Get(_i)->UnPack(_resolver)); } } };
5082 { auto _e = outputName(); if (_e) { _o->outputName.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->outputName[_i] = _e->Get(_i)->str(); } } };
5083 { auto _e = preferForwardType(); _o->preferForwardType = _e; };
5084 { auto _e = sourceType(); _o->sourceType = _e; };
5085 { auto _e = tensorName(); if (_e) { _o->tensorName.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->tensorName[_i] = _e->Get(_i)->str(); } } };
5086 { auto _e = tensorNumber(); _o->tensorNumber = _e; };
5087 { auto _e = usage(); _o->usage = _e; };
5088 { auto _e = subgraphs(); if (_e) { _o->subgraphs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->subgraphs[_i] = std::unique_ptr<SubGraphProtoT>(_e->Get(_i)->UnPack(_resolver)); } } };
5089 }
5090
5091 inline flatbuffers::Offset<Net> Net::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NetT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
5092 return CreateNet(_fbb, _o, _rehasher);
5093 }
5094
5095 inline flatbuffers::Offset<Net> CreateNet(flatbuffers::FlatBufferBuilder &_fbb, const NetT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
5096 (void)_rehasher;
5097 (void)_o;
5098 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const NetT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
5099 auto _bizCode = _o->bizCode.empty() ? 0 : _fbb.CreateString(_o->bizCode);
5100 auto _extraTensorDescribe = _o->extraTensorDescribe.size() ? _fbb.CreateVector<flatbuffers::Offset<TensorDescribe>> (_o->extraTensorDescribe.size(), [](size_t i, _VectorArgs *__va) { return CreateTensorDescribe(*__va->__fbb, __va->__o->extraTensorDescribe[i].get(), __va->__rehasher); }, &_va ) : 0;
5101 auto _gpulibrary = _o->gpulibrary ? CreateGpuLibrary(_fbb, _o->gpulibrary.get(), _rehasher) : 0;
5102 auto _oplists = _o->oplists.size() ? _fbb.CreateVector<flatbuffers::Offset<Op>> (_o->oplists.size(), [](size_t i, _VectorArgs *__va) { return CreateOp(*__va->__fbb, __va->__o->oplists[i].get(), __va->__rehasher); }, &_va ) : 0;
5103 auto _outputName = _o->outputName.size() ? _fbb.CreateVectorOfStrings(_o->outputName) : 0;
5104 auto _preferForwardType = _o->preferForwardType;
5105 auto _sourceType = _o->sourceType;
5106 auto _tensorName = _o->tensorName.size() ? _fbb.CreateVectorOfStrings(_o->tensorName) : 0;
5107 auto _tensorNumber = _o->tensorNumber;
5108 auto _usage = _o->usage;
5109 auto _subgraphs = _o->subgraphs.size() ? _fbb.CreateVector<flatbuffers::Offset<SubGraphProto>> (_o->subgraphs.size(), [](size_t i, _VectorArgs *__va) { return CreateSubGraphProto(*__va->__fbb, __va->__o->subgraphs[i].get(), __va->__rehasher); }, &_va ) : 0;
5110 return MNN::CreateNet(
5111 _fbb,
5112 _bizCode,
5113 _extraTensorDescribe,
5114 _gpulibrary,
5115 _oplists,
5116 _outputName,
5117 _preferForwardType,
5118 _sourceType,
5119 _tensorName,
5120 _tensorNumber,
5121 _usage,
5122 _subgraphs);
5123 }
5124
5125 inline bool VerifyOpParameter(flatbuffers::Verifier &verifier, const void *obj, OpParameter type) {
5126 switch (type) {
5127 case OpParameter_NONE: {
5128 return true;
5129 }
5130 case OpParameter_QuantizedAdd: {
5131 auto ptr = reinterpret_cast<const QuantizedAdd *>(obj);
5132 return verifier.VerifyTable(ptr);
5133 }
5134 case OpParameter_ArgMax: {
5135 auto ptr = reinterpret_cast<const ArgMax *>(obj);
5136 return verifier.VerifyTable(ptr);
5137 }
5138 case OpParameter_AsString: {
5139 auto ptr = reinterpret_cast<const AsString *>(obj);
5140 return verifier.VerifyTable(ptr);
5141 }
5142 case OpParameter_Axis: {
5143 auto ptr = reinterpret_cast<const Axis *>(obj);
5144 return verifier.VerifyTable(ptr);
5145 }
5146 case OpParameter_BatchNorm: {
5147 auto ptr = reinterpret_cast<const BatchNorm *>(obj);
5148 return verifier.VerifyTable(ptr);
5149 }
5150 case OpParameter_BinaryOp: {
5151 auto ptr = reinterpret_cast<const BinaryOp *>(obj);
5152 return verifier.VerifyTable(ptr);
5153 }
5154 case OpParameter_Blob: {
5155 auto ptr = reinterpret_cast<const Blob *>(obj);
5156 return verifier.VerifyTable(ptr);
5157 }
5158 case OpParameter_CastParam: {
5159 auto ptr = reinterpret_cast<const CastParam *>(obj);
5160 return verifier.VerifyTable(ptr);
5161 }
5162 case OpParameter_Convolution2D: {
5163 auto ptr = reinterpret_cast<const Convolution2D *>(obj);
5164 return verifier.VerifyTable(ptr);
5165 }
5166 case OpParameter_Crop: {
5167 auto ptr = reinterpret_cast<const Crop *>(obj);
5168 return verifier.VerifyTable(ptr);
5169 }
5170 case OpParameter_CropAndResize: {
5171 auto ptr = reinterpret_cast<const CropAndResize *>(obj);
5172 return verifier.VerifyTable(ptr);
5173 }
5174 case OpParameter_Dequantize: {
5175 auto ptr = reinterpret_cast<const Dequantize *>(obj);
5176 return verifier.VerifyTable(ptr);
5177 }
5178 case OpParameter_DetectionOutput: {
5179 auto ptr = reinterpret_cast<const DetectionOutput *>(obj);
5180 return verifier.VerifyTable(ptr);
5181 }
5182 case OpParameter_Eltwise: {
5183 auto ptr = reinterpret_cast<const Eltwise *>(obj);
5184 return verifier.VerifyTable(ptr);
5185 }
5186 case OpParameter_ExpandDims: {
5187 auto ptr = reinterpret_cast<const ExpandDims *>(obj);
5188 return verifier.VerifyTable(ptr);
5189 }
5190 case OpParameter_Fill: {
5191 auto ptr = reinterpret_cast<const Fill *>(obj);
5192 return verifier.VerifyTable(ptr);
5193 }
5194 case OpParameter_Flatten: {
5195 auto ptr = reinterpret_cast<const Flatten *>(obj);
5196 return verifier.VerifyTable(ptr);
5197 }
5198 case OpParameter_Gather: {
5199 auto ptr = reinterpret_cast<const Gather *>(obj);
5200 return verifier.VerifyTable(ptr);
5201 }
5202 case OpParameter_GatherV2: {
5203 auto ptr = reinterpret_cast<const GatherV2 *>(obj);
5204 return verifier.VerifyTable(ptr);
5205 }
5206 case OpParameter_InnerProduct: {
5207 auto ptr = reinterpret_cast<const InnerProduct *>(obj);
5208 return verifier.VerifyTable(ptr);
5209 }
5210 case OpParameter_Input: {
5211 auto ptr = reinterpret_cast<const Input *>(obj);
5212 return verifier.VerifyTable(ptr);
5213 }
5214 case OpParameter_Interp: {
5215 auto ptr = reinterpret_cast<const Interp *>(obj);
5216 return verifier.VerifyTable(ptr);
5217 }
5218 case OpParameter_LRN: {
5219 auto ptr = reinterpret_cast<const LRN *>(obj);
5220 return verifier.VerifyTable(ptr);
5221 }
5222 case OpParameter_LSTM: {
5223 auto ptr = reinterpret_cast<const LSTM *>(obj);
5224 return verifier.VerifyTable(ptr);
5225 }
5226 case OpParameter_MatMul: {
5227 auto ptr = reinterpret_cast<const MatMul *>(obj);
5228 return verifier.VerifyTable(ptr);
5229 }
5230 case OpParameter_NonMaxSuppressionV2: {
5231 auto ptr = reinterpret_cast<const NonMaxSuppressionV2 *>(obj);
5232 return verifier.VerifyTable(ptr);
5233 }
5234 case OpParameter_Normalize: {
5235 auto ptr = reinterpret_cast<const Normalize *>(obj);
5236 return verifier.VerifyTable(ptr);
5237 }
5238 case OpParameter_PackParam: {
5239 auto ptr = reinterpret_cast<const PackParam *>(obj);
5240 return verifier.VerifyTable(ptr);
5241 }
5242 case OpParameter_Permute: {
5243 auto ptr = reinterpret_cast<const Permute *>(obj);
5244 return verifier.VerifyTable(ptr);
5245 }
5246 case OpParameter_Plugin: {
5247 auto ptr = reinterpret_cast<const Plugin *>(obj);
5248 return verifier.VerifyTable(ptr);
5249 }
5250 case OpParameter_Pool: {
5251 auto ptr = reinterpret_cast<const Pool *>(obj);
5252 return verifier.VerifyTable(ptr);
5253 }
5254 case OpParameter_PRelu: {
5255 auto ptr = reinterpret_cast<const PRelu *>(obj);
5256 return verifier.VerifyTable(ptr);
5257 }
5258 case OpParameter_PriorBox: {
5259 auto ptr = reinterpret_cast<const PriorBox *>(obj);
5260 return verifier.VerifyTable(ptr);
5261 }
5262 case OpParameter_Proposal: {
5263 auto ptr = reinterpret_cast<const Proposal *>(obj);
5264 return verifier.VerifyTable(ptr);
5265 }
5266 case OpParameter_QuantizedAvgPool: {
5267 auto ptr = reinterpret_cast<const QuantizedAvgPool *>(obj);
5268 return verifier.VerifyTable(ptr);
5269 }
5270 case OpParameter_QuantizedBiasAdd: {
5271 auto ptr = reinterpret_cast<const QuantizedBiasAdd *>(obj);
5272 return verifier.VerifyTable(ptr);
5273 }
5274 case OpParameter_QuantizedConcat: {
5275 auto ptr = reinterpret_cast<const QuantizedConcat *>(obj);
5276 return verifier.VerifyTable(ptr);
5277 }
5278 case OpParameter_QuantizedLogistic: {
5279 auto ptr = reinterpret_cast<const QuantizedLogistic *>(obj);
5280 return verifier.VerifyTable(ptr);
5281 }
5282 case OpParameter_QuantizedMatMul: {
5283 auto ptr = reinterpret_cast<const QuantizedMatMul *>(obj);
5284 return verifier.VerifyTable(ptr);
5285 }
5286 case OpParameter_QuantizedMaxPool: {
5287 auto ptr = reinterpret_cast<const QuantizedMaxPool *>(obj);
5288 return verifier.VerifyTable(ptr);
5289 }
5290 case OpParameter_QuantizedRelu: {
5291 auto ptr = reinterpret_cast<const QuantizedRelu *>(obj);
5292 return verifier.VerifyTable(ptr);
5293 }
5294 case OpParameter_QuantizedRelu6: {
5295 auto ptr = reinterpret_cast<const QuantizedRelu6 *>(obj);
5296 return verifier.VerifyTable(ptr);
5297 }
5298 case OpParameter_QuantizedReshape: {
5299 auto ptr = reinterpret_cast<const QuantizedReshape *>(obj);
5300 return verifier.VerifyTable(ptr);
5301 }
5302 case OpParameter_QuantizedSoftmax: {
5303 auto ptr = reinterpret_cast<const QuantizedSoftmax *>(obj);
5304 return verifier.VerifyTable(ptr);
5305 }
5306 case OpParameter_QuantizeMaxMin: {
5307 auto ptr = reinterpret_cast<const QuantizeMaxMin *>(obj);
5308 return verifier.VerifyTable(ptr);
5309 }
5310 case OpParameter_QuantizeV2: {
5311 auto ptr = reinterpret_cast<const QuantizeV2 *>(obj);
5312 return verifier.VerifyTable(ptr);
5313 }
5314 case OpParameter_Range: {
5315 auto ptr = reinterpret_cast<const Range *>(obj);
5316 return verifier.VerifyTable(ptr);
5317 }
5318 case OpParameter_Rank: {
5319 auto ptr = reinterpret_cast<const Rank *>(obj);
5320 return verifier.VerifyTable(ptr);
5321 }
5322 case OpParameter_ReduceJoin: {
5323 auto ptr = reinterpret_cast<const ReduceJoin *>(obj);
5324 return verifier.VerifyTable(ptr);
5325 }
5326 case OpParameter_ReductionParam: {
5327 auto ptr = reinterpret_cast<const ReductionParam *>(obj);
5328 return verifier.VerifyTable(ptr);
5329 }
5330 case OpParameter_Relu: {
5331 auto ptr = reinterpret_cast<const Relu *>(obj);
5332 return verifier.VerifyTable(ptr);
5333 }
5334 case OpParameter_Relu6: {
5335 auto ptr = reinterpret_cast<const Relu6 *>(obj);
5336 return verifier.VerifyTable(ptr);
5337 }
5338 case OpParameter_RequantizationRange: {
5339 auto ptr = reinterpret_cast<const RequantizationRange *>(obj);
5340 return verifier.VerifyTable(ptr);
5341 }
5342 case OpParameter_Requantize: {
5343 auto ptr = reinterpret_cast<const Requantize *>(obj);
5344 return verifier.VerifyTable(ptr);
5345 }
5346 case OpParameter_Reshape: {
5347 auto ptr = reinterpret_cast<const Reshape *>(obj);
5348 return verifier.VerifyTable(ptr);
5349 }
5350 case OpParameter_Resize: {
5351 auto ptr = reinterpret_cast<const Resize *>(obj);
5352 return verifier.VerifyTable(ptr);
5353 }
5354 case OpParameter_RoiPooling: {
5355 auto ptr = reinterpret_cast<const RoiPooling *>(obj);
5356 return verifier.VerifyTable(ptr);
5357 }
5358 case OpParameter_Scale: {
5359 auto ptr = reinterpret_cast<const Scale *>(obj);
5360 return verifier.VerifyTable(ptr);
5361 }
5362 case OpParameter_Selu: {
5363 auto ptr = reinterpret_cast<const Selu *>(obj);
5364 return verifier.VerifyTable(ptr);
5365 }
5366 case OpParameter_Size: {
5367 auto ptr = reinterpret_cast<const Size *>(obj);
5368 return verifier.VerifyTable(ptr);
5369 }
5370 case OpParameter_Slice: {
5371 auto ptr = reinterpret_cast<const Slice *>(obj);
5372 return verifier.VerifyTable(ptr);
5373 }
5374 case OpParameter_SliceTf: {
5375 auto ptr = reinterpret_cast<const SliceTf *>(obj);
5376 return verifier.VerifyTable(ptr);
5377 }
5378 case OpParameter_SpaceBatch: {
5379 auto ptr = reinterpret_cast<const SpaceBatch *>(obj);
5380 return verifier.VerifyTable(ptr);
5381 }
5382 case OpParameter_SqueezeParam: {
5383 auto ptr = reinterpret_cast<const SqueezeParam *>(obj);
5384 return verifier.VerifyTable(ptr);
5385 }
5386 case OpParameter_StridedSliceParam: {
5387 auto ptr = reinterpret_cast<const StridedSliceParam *>(obj);
5388 return verifier.VerifyTable(ptr);
5389 }
5390 case OpParameter_TensorConvertInfo: {
5391 auto ptr = reinterpret_cast<const TensorConvertInfo *>(obj);
5392 return verifier.VerifyTable(ptr);
5393 }
5394 case OpParameter_TfQuantizedConv2D: {
5395 auto ptr = reinterpret_cast<const TfQuantizedConv2D *>(obj);
5396 return verifier.VerifyTable(ptr);
5397 }
5398 case OpParameter_TopKV2: {
5399 auto ptr = reinterpret_cast<const TopKV2 *>(obj);
5400 return verifier.VerifyTable(ptr);
5401 }
5402 case OpParameter_Transpose: {
5403 auto ptr = reinterpret_cast<const Transpose *>(obj);
5404 return verifier.VerifyTable(ptr);
5405 }
5406 case OpParameter_UnaryOp: {
5407 auto ptr = reinterpret_cast<const UnaryOp *>(obj);
5408 return verifier.VerifyTable(ptr);
5409 }
5410 case OpParameter_MomentsParam: {
5411 auto ptr = reinterpret_cast<const MomentsParam *>(obj);
5412 return verifier.VerifyTable(ptr);
5413 }
5414 case OpParameter_RNNParam: {
5415 auto ptr = reinterpret_cast<const RNNParam *>(obj);
5416 return verifier.VerifyTable(ptr);
5417 }
5418 case OpParameter_BatchMatMulParam: {
5419 auto ptr = reinterpret_cast<const BatchMatMulParam *>(obj);
5420 return verifier.VerifyTable(ptr);
5421 }
5422 case OpParameter_QuantizedFloatParam: {
5423 auto ptr = reinterpret_cast<const QuantizedFloatParam *>(obj);
5424 return verifier.VerifyTable(ptr);
5425 }
5426 case OpParameter_DepthSpaceParam: {
5427 auto ptr = reinterpret_cast<const DepthSpaceParam *>(obj);
5428 return verifier.VerifyTable(ptr);
5429 }
5430 case OpParameter_EltwiseInt8: {
5431 auto ptr = reinterpret_cast<const EltwiseInt8 *>(obj);
5432 return verifier.VerifyTable(ptr);
5433 }
5434 case OpParameter_ReverseSequenceParam: {
5435 auto ptr = reinterpret_cast<const ReverseSequenceParam *>(obj);
5436 return verifier.VerifyTable(ptr);
5437 }
5438 case OpParameter_Extra: {
5439 auto ptr = reinterpret_cast<const Extra *>(obj);
5440 return verifier.VerifyTable(ptr);
5441 }
5442 case OpParameter_Pool3D: {
5443 auto ptr = reinterpret_cast<const Pool3D *>(obj);
5444 return verifier.VerifyTable(ptr);
5445 }
5446 case OpParameter_Convolution3D: {
5447 auto ptr = reinterpret_cast<const Convolution3D *>(obj);
5448 return verifier.VerifyTable(ptr);
5449 }
5450 case OpParameter_ELU: {
5451 auto ptr = reinterpret_cast<const ELU *>(obj);
5452 return verifier.VerifyTable(ptr);
5453 }
5454 case OpParameter_DetectionPostProcessParam: {
5455 auto ptr = reinterpret_cast<const DetectionPostProcessParam *>(obj);
5456 return verifier.VerifyTable(ptr);
5457 }
5458 case OpParameter_OneHotParam: {
5459 auto ptr = reinterpret_cast<const OneHotParam *>(obj);
5460 return verifier.VerifyTable(ptr);
5461 }
5462 case OpParameter_PadParam: {
5463 auto ptr = reinterpret_cast<const PadParam *>(obj);
5464 return verifier.VerifyTable(ptr);
5465 }
5466 case OpParameter_WhileParam: {
5467 auto ptr = reinterpret_cast<const WhileParam *>(obj);
5468 return verifier.VerifyTable(ptr);
5469 }
5470 case OpParameter_IfParam: {
5471 auto ptr = reinterpret_cast<const IfParam *>(obj);
5472 return verifier.VerifyTable(ptr);
5473 }
5474 case OpParameter_RandomUniform: {
5475 auto ptr = reinterpret_cast<const RandomUniform *>(obj);
5476 return verifier.VerifyTable(ptr);
5477 }
5478 case OpParameter_LayerNorm: {
5479 auto ptr = reinterpret_cast<const LayerNorm *>(obj);
5480 return verifier.VerifyTable(ptr);
5481 }
5482 case OpParameter_TensorArray: {
5483 auto ptr = reinterpret_cast<const TensorArray *>(obj);
5484 return verifier.VerifyTable(ptr);
5485 }
5486 case OpParameter_LSTMBlockCell: {
5487 auto ptr = reinterpret_cast<const LSTMBlockCell *>(obj);
5488 return verifier.VerifyTable(ptr);
5489 }
5490 case OpParameter_GridSample: {
5491 auto ptr = reinterpret_cast<const GridSample *>(obj);
5492 return verifier.VerifyTable(ptr);
5493 }
5494 case OpParameter_LoopParam: {
5495 auto ptr = reinterpret_cast<const LoopParam *>(obj);
5496 return verifier.VerifyTable(ptr);
5497 }
5498 default: return false;
5499 }
5500 }
5501
5502 inline bool VerifyOpParameterVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
5503 if (!values || !types) return !values && !types;
5504 if (values->size() != types->size()) return false;
5505 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
5506 if (!VerifyOpParameter(
5507 verifier, values->Get(i), types->GetEnum<OpParameter>(i))) {
5508 return false;
5509 }
5510 }
5511 return true;
5512 }
5513
5514 inline void *OpParameterUnion::UnPack(const void *obj, OpParameter type, const flatbuffers::resolver_function_t *resolver) {
5515 switch (type) {
5516 case OpParameter_QuantizedAdd: {
5517 auto ptr = reinterpret_cast<const QuantizedAdd *>(obj);
5518 return ptr->UnPack(resolver);
5519 }
5520 case OpParameter_ArgMax: {
5521 auto ptr = reinterpret_cast<const ArgMax *>(obj);
5522 return ptr->UnPack(resolver);
5523 }
5524 case OpParameter_AsString: {
5525 auto ptr = reinterpret_cast<const AsString *>(obj);
5526 return ptr->UnPack(resolver);
5527 }
5528 case OpParameter_Axis: {
5529 auto ptr = reinterpret_cast<const Axis *>(obj);
5530 return ptr->UnPack(resolver);
5531 }
5532 case OpParameter_BatchNorm: {
5533 auto ptr = reinterpret_cast<const BatchNorm *>(obj);
5534 return ptr->UnPack(resolver);
5535 }
5536 case OpParameter_BinaryOp: {
5537 auto ptr = reinterpret_cast<const BinaryOp *>(obj);
5538 return ptr->UnPack(resolver);
5539 }
5540 case OpParameter_Blob: {
5541 auto ptr = reinterpret_cast<const Blob *>(obj);
5542 return ptr->UnPack(resolver);
5543 }
5544 case OpParameter_CastParam: {
5545 auto ptr = reinterpret_cast<const CastParam *>(obj);
5546 return ptr->UnPack(resolver);
5547 }
5548 case OpParameter_Convolution2D: {
5549 auto ptr = reinterpret_cast<const Convolution2D *>(obj);
5550 return ptr->UnPack(resolver);
5551 }
5552 case OpParameter_Crop: {
5553 auto ptr = reinterpret_cast<const Crop *>(obj);
5554 return ptr->UnPack(resolver);
5555 }
5556 case OpParameter_CropAndResize: {
5557 auto ptr = reinterpret_cast<const CropAndResize *>(obj);
5558 return ptr->UnPack(resolver);
5559 }
5560 case OpParameter_Dequantize: {
5561 auto ptr = reinterpret_cast<const Dequantize *>(obj);
5562 return ptr->UnPack(resolver);
5563 }
5564 case OpParameter_DetectionOutput: {
5565 auto ptr = reinterpret_cast<const DetectionOutput *>(obj);
5566 return ptr->UnPack(resolver);
5567 }
5568 case OpParameter_Eltwise: {
5569 auto ptr = reinterpret_cast<const Eltwise *>(obj);
5570 return ptr->UnPack(resolver);
5571 }
5572 case OpParameter_ExpandDims: {
5573 auto ptr = reinterpret_cast<const ExpandDims *>(obj);
5574 return ptr->UnPack(resolver);
5575 }
5576 case OpParameter_Fill: {
5577 auto ptr = reinterpret_cast<const Fill *>(obj);
5578 return ptr->UnPack(resolver);
5579 }
5580 case OpParameter_Flatten: {
5581 auto ptr = reinterpret_cast<const Flatten *>(obj);
5582 return ptr->UnPack(resolver);
5583 }
5584 case OpParameter_Gather: {
5585 auto ptr = reinterpret_cast<const Gather *>(obj);
5586 return ptr->UnPack(resolver);
5587 }
5588 case OpParameter_GatherV2: {
5589 auto ptr = reinterpret_cast<const GatherV2 *>(obj);
5590 return ptr->UnPack(resolver);
5591 }
5592 case OpParameter_InnerProduct: {
5593 auto ptr = reinterpret_cast<const InnerProduct *>(obj);
5594 return ptr->UnPack(resolver);
5595 }
5596 case OpParameter_Input: {
5597 auto ptr = reinterpret_cast<const Input *>(obj);
5598 return ptr->UnPack(resolver);
5599 }
5600 case OpParameter_Interp: {
5601 auto ptr = reinterpret_cast<const Interp *>(obj);
5602 return ptr->UnPack(resolver);
5603 }
5604 case OpParameter_LRN: {
5605 auto ptr = reinterpret_cast<const LRN *>(obj);
5606 return ptr->UnPack(resolver);
5607 }
5608 case OpParameter_LSTM: {
5609 auto ptr = reinterpret_cast<const LSTM *>(obj);
5610 return ptr->UnPack(resolver);
5611 }
5612 case OpParameter_MatMul: {
5613 auto ptr = reinterpret_cast<const MatMul *>(obj);
5614 return ptr->UnPack(resolver);
5615 }
5616 case OpParameter_NonMaxSuppressionV2: {
5617 auto ptr = reinterpret_cast<const NonMaxSuppressionV2 *>(obj);
5618 return ptr->UnPack(resolver);
5619 }
5620 case OpParameter_Normalize: {
5621 auto ptr = reinterpret_cast<const Normalize *>(obj);
5622 return ptr->UnPack(resolver);
5623 }
5624 case OpParameter_PackParam: {
5625 auto ptr = reinterpret_cast<const PackParam *>(obj);
5626 return ptr->UnPack(resolver);
5627 }
5628 case OpParameter_Permute: {
5629 auto ptr = reinterpret_cast<const Permute *>(obj);
5630 return ptr->UnPack(resolver);
5631 }
5632 case OpParameter_Plugin: {
5633 auto ptr = reinterpret_cast<const Plugin *>(obj);
5634 return ptr->UnPack(resolver);
5635 }
5636 case OpParameter_Pool: {
5637 auto ptr = reinterpret_cast<const Pool *>(obj);
5638 return ptr->UnPack(resolver);
5639 }
5640 case OpParameter_PRelu: {
5641 auto ptr = reinterpret_cast<const PRelu *>(obj);
5642 return ptr->UnPack(resolver);
5643 }
5644 case OpParameter_PriorBox: {
5645 auto ptr = reinterpret_cast<const PriorBox *>(obj);
5646 return ptr->UnPack(resolver);
5647 }
5648 case OpParameter_Proposal: {
5649 auto ptr = reinterpret_cast<const Proposal *>(obj);
5650 return ptr->UnPack(resolver);
5651 }
5652 case OpParameter_QuantizedAvgPool: {
5653 auto ptr = reinterpret_cast<const QuantizedAvgPool *>(obj);
5654 return ptr->UnPack(resolver);
5655 }
5656 case OpParameter_QuantizedBiasAdd: {
5657 auto ptr = reinterpret_cast<const QuantizedBiasAdd *>(obj);
5658 return ptr->UnPack(resolver);
5659 }
5660 case OpParameter_QuantizedConcat: {
5661 auto ptr = reinterpret_cast<const QuantizedConcat *>(obj);
5662 return ptr->UnPack(resolver);
5663 }
5664 case OpParameter_QuantizedLogistic: {
5665 auto ptr = reinterpret_cast<const QuantizedLogistic *>(obj);
5666 return ptr->UnPack(resolver);
5667 }
5668 case OpParameter_QuantizedMatMul: {
5669 auto ptr = reinterpret_cast<const QuantizedMatMul *>(obj);
5670 return ptr->UnPack(resolver);
5671 }
5672 case OpParameter_QuantizedMaxPool: {
5673 auto ptr = reinterpret_cast<const QuantizedMaxPool *>(obj);
5674 return ptr->UnPack(resolver);
5675 }
5676 case OpParameter_QuantizedRelu: {
5677 auto ptr = reinterpret_cast<const QuantizedRelu *>(obj);
5678 return ptr->UnPack(resolver);
5679 }
5680 case OpParameter_QuantizedRelu6: {
5681 auto ptr = reinterpret_cast<const QuantizedRelu6 *>(obj);
5682 return ptr->UnPack(resolver);
5683 }
5684 case OpParameter_QuantizedReshape: {
5685 auto ptr = reinterpret_cast<const QuantizedReshape *>(obj);
5686 return ptr->UnPack(resolver);
5687 }
5688 case OpParameter_QuantizedSoftmax: {
5689 auto ptr = reinterpret_cast<const QuantizedSoftmax *>(obj);
5690 return ptr->UnPack(resolver);
5691 }
5692 case OpParameter_QuantizeMaxMin: {
5693 auto ptr = reinterpret_cast<const QuantizeMaxMin *>(obj);
5694 return ptr->UnPack(resolver);
5695 }
5696 case OpParameter_QuantizeV2: {
5697 auto ptr = reinterpret_cast<const QuantizeV2 *>(obj);
5698 return ptr->UnPack(resolver);
5699 }
5700 case OpParameter_Range: {
5701 auto ptr = reinterpret_cast<const Range *>(obj);
5702 return ptr->UnPack(resolver);
5703 }
5704 case OpParameter_Rank: {
5705 auto ptr = reinterpret_cast<const Rank *>(obj);
5706 return ptr->UnPack(resolver);
5707 }
5708 case OpParameter_ReduceJoin: {
5709 auto ptr = reinterpret_cast<const ReduceJoin *>(obj);
5710 return ptr->UnPack(resolver);
5711 }
5712 case OpParameter_ReductionParam: {
5713 auto ptr = reinterpret_cast<const ReductionParam *>(obj);
5714 return ptr->UnPack(resolver);
5715 }
5716 case OpParameter_Relu: {
5717 auto ptr = reinterpret_cast<const Relu *>(obj);
5718 return ptr->UnPack(resolver);
5719 }
5720 case OpParameter_Relu6: {
5721 auto ptr = reinterpret_cast<const Relu6 *>(obj);
5722 return ptr->UnPack(resolver);
5723 }
5724 case OpParameter_RequantizationRange: {
5725 auto ptr = reinterpret_cast<const RequantizationRange *>(obj);
5726 return ptr->UnPack(resolver);
5727 }
5728 case OpParameter_Requantize: {
5729 auto ptr = reinterpret_cast<const Requantize *>(obj);
5730 return ptr->UnPack(resolver);
5731 }
5732 case OpParameter_Reshape: {
5733 auto ptr = reinterpret_cast<const Reshape *>(obj);
5734 return ptr->UnPack(resolver);
5735 }
5736 case OpParameter_Resize: {
5737 auto ptr = reinterpret_cast<const Resize *>(obj);
5738 return ptr->UnPack(resolver);
5739 }
5740 case OpParameter_RoiPooling: {
5741 auto ptr = reinterpret_cast<const RoiPooling *>(obj);
5742 return ptr->UnPack(resolver);
5743 }
5744 case OpParameter_Scale: {
5745 auto ptr = reinterpret_cast<const Scale *>(obj);
5746 return ptr->UnPack(resolver);
5747 }
5748 case OpParameter_Selu: {
5749 auto ptr = reinterpret_cast<const Selu *>(obj);
5750 return ptr->UnPack(resolver);
5751 }
5752 case OpParameter_Size: {
5753 auto ptr = reinterpret_cast<const Size *>(obj);
5754 return ptr->UnPack(resolver);
5755 }
5756 case OpParameter_Slice: {
5757 auto ptr = reinterpret_cast<const Slice *>(obj);
5758 return ptr->UnPack(resolver);
5759 }
5760 case OpParameter_SliceTf: {
5761 auto ptr = reinterpret_cast<const SliceTf *>(obj);
5762 return ptr->UnPack(resolver);
5763 }
5764 case OpParameter_SpaceBatch: {
5765 auto ptr = reinterpret_cast<const SpaceBatch *>(obj);
5766 return ptr->UnPack(resolver);
5767 }
5768 case OpParameter_SqueezeParam: {
5769 auto ptr = reinterpret_cast<const SqueezeParam *>(obj);
5770 return ptr->UnPack(resolver);
5771 }
5772 case OpParameter_StridedSliceParam: {
5773 auto ptr = reinterpret_cast<const StridedSliceParam *>(obj);
5774 return ptr->UnPack(resolver);
5775 }
5776 case OpParameter_TensorConvertInfo: {
5777 auto ptr = reinterpret_cast<const TensorConvertInfo *>(obj);
5778 return ptr->UnPack(resolver);
5779 }
5780 case OpParameter_TfQuantizedConv2D: {
5781 auto ptr = reinterpret_cast<const TfQuantizedConv2D *>(obj);
5782 return ptr->UnPack(resolver);
5783 }
5784 case OpParameter_TopKV2: {
5785 auto ptr = reinterpret_cast<const TopKV2 *>(obj);
5786 return ptr->UnPack(resolver);
5787 }
5788 case OpParameter_Transpose: {
5789 auto ptr = reinterpret_cast<const Transpose *>(obj);
5790 return ptr->UnPack(resolver);
5791 }
5792 case OpParameter_UnaryOp: {
5793 auto ptr = reinterpret_cast<const UnaryOp *>(obj);
5794 return ptr->UnPack(resolver);
5795 }
5796 case OpParameter_MomentsParam: {
5797 auto ptr = reinterpret_cast<const MomentsParam *>(obj);
5798 return ptr->UnPack(resolver);
5799 }
5800 case OpParameter_RNNParam: {
5801 auto ptr = reinterpret_cast<const RNNParam *>(obj);
5802 return ptr->UnPack(resolver);
5803 }
5804 case OpParameter_BatchMatMulParam: {
5805 auto ptr = reinterpret_cast<const BatchMatMulParam *>(obj);
5806 return ptr->UnPack(resolver);
5807 }
5808 case OpParameter_QuantizedFloatParam: {
5809 auto ptr = reinterpret_cast<const QuantizedFloatParam *>(obj);
5810 return ptr->UnPack(resolver);
5811 }
5812 case OpParameter_DepthSpaceParam: {
5813 auto ptr = reinterpret_cast<const DepthSpaceParam *>(obj);
5814 return ptr->UnPack(resolver);
5815 }
5816 case OpParameter_EltwiseInt8: {
5817 auto ptr = reinterpret_cast<const EltwiseInt8 *>(obj);
5818 return ptr->UnPack(resolver);
5819 }
5820 case OpParameter_ReverseSequenceParam: {
5821 auto ptr = reinterpret_cast<const ReverseSequenceParam *>(obj);
5822 return ptr->UnPack(resolver);
5823 }
5824 case OpParameter_Extra: {
5825 auto ptr = reinterpret_cast<const Extra *>(obj);
5826 return ptr->UnPack(resolver);
5827 }
5828 case OpParameter_Pool3D: {
5829 auto ptr = reinterpret_cast<const Pool3D *>(obj);
5830 return ptr->UnPack(resolver);
5831 }
5832 case OpParameter_Convolution3D: {
5833 auto ptr = reinterpret_cast<const Convolution3D *>(obj);
5834 return ptr->UnPack(resolver);
5835 }
5836 case OpParameter_ELU: {
5837 auto ptr = reinterpret_cast<const ELU *>(obj);
5838 return ptr->UnPack(resolver);
5839 }
5840 case OpParameter_DetectionPostProcessParam: {
5841 auto ptr = reinterpret_cast<const DetectionPostProcessParam *>(obj);
5842 return ptr->UnPack(resolver);
5843 }
5844 case OpParameter_OneHotParam: {
5845 auto ptr = reinterpret_cast<const OneHotParam *>(obj);
5846 return ptr->UnPack(resolver);
5847 }
5848 case OpParameter_PadParam: {
5849 auto ptr = reinterpret_cast<const PadParam *>(obj);
5850 return ptr->UnPack(resolver);
5851 }
5852 case OpParameter_WhileParam: {
5853 auto ptr = reinterpret_cast<const WhileParam *>(obj);
5854 return ptr->UnPack(resolver);
5855 }
5856 case OpParameter_IfParam: {
5857 auto ptr = reinterpret_cast<const IfParam *>(obj);
5858 return ptr->UnPack(resolver);
5859 }
5860 case OpParameter_RandomUniform: {
5861 auto ptr = reinterpret_cast<const RandomUniform *>(obj);
5862 return ptr->UnPack(resolver);
5863 }
5864 case OpParameter_LayerNorm: {
5865 auto ptr = reinterpret_cast<const LayerNorm *>(obj);
5866 return ptr->UnPack(resolver);
5867 }
5868 case OpParameter_TensorArray: {
5869 auto ptr = reinterpret_cast<const TensorArray *>(obj);
5870 return ptr->UnPack(resolver);
5871 }
5872 case OpParameter_LSTMBlockCell: {
5873 auto ptr = reinterpret_cast<const LSTMBlockCell *>(obj);
5874 return ptr->UnPack(resolver);
5875 }
5876 case OpParameter_GridSample: {
5877 auto ptr = reinterpret_cast<const GridSample *>(obj);
5878 return ptr->UnPack(resolver);
5879 }
5880 case OpParameter_LoopParam: {
5881 auto ptr = reinterpret_cast<const LoopParam *>(obj);
5882 return ptr->UnPack(resolver);
5883 }
5884 default: return nullptr;
5885 }
5886 }
5887
5888 inline flatbuffers::Offset<void> OpParameterUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const {
5889 switch (type) {
5890 case OpParameter_QuantizedAdd: {
5891 auto ptr = reinterpret_cast<const QuantizedAddT *>(value);
5892 return CreateQuantizedAdd(_fbb, ptr, _rehasher).Union();
5893 }
5894 case OpParameter_ArgMax: {
5895 auto ptr = reinterpret_cast<const ArgMaxT *>(value);
5896 return CreateArgMax(_fbb, ptr, _rehasher).Union();
5897 }
5898 case OpParameter_AsString: {
5899 auto ptr = reinterpret_cast<const AsStringT *>(value);
5900 return CreateAsString(_fbb, ptr, _rehasher).Union();
5901 }
5902 case OpParameter_Axis: {
5903 auto ptr = reinterpret_cast<const AxisT *>(value);
5904 return CreateAxis(_fbb, ptr, _rehasher).Union();
5905 }
5906 case OpParameter_BatchNorm: {
5907 auto ptr = reinterpret_cast<const BatchNormT *>(value);
5908 return CreateBatchNorm(_fbb, ptr, _rehasher).Union();
5909 }
5910 case OpParameter_BinaryOp: {
5911 auto ptr = reinterpret_cast<const BinaryOpT *>(value);
5912 return CreateBinaryOp(_fbb, ptr, _rehasher).Union();
5913 }
5914 case OpParameter_Blob: {
5915 auto ptr = reinterpret_cast<const BlobT *>(value);
5916 return CreateBlob(_fbb, ptr, _rehasher).Union();
5917 }
5918 case OpParameter_CastParam: {
5919 auto ptr = reinterpret_cast<const CastParamT *>(value);
5920 return CreateCastParam(_fbb, ptr, _rehasher).Union();
5921 }
5922 case OpParameter_Convolution2D: {
5923 auto ptr = reinterpret_cast<const Convolution2DT *>(value);
5924 return CreateConvolution2D(_fbb, ptr, _rehasher).Union();
5925 }
5926 case OpParameter_Crop: {
5927 auto ptr = reinterpret_cast<const CropT *>(value);
5928 return CreateCrop(_fbb, ptr, _rehasher).Union();
5929 }
5930 case OpParameter_CropAndResize: {
5931 auto ptr = reinterpret_cast<const CropAndResizeT *>(value);
5932 return CreateCropAndResize(_fbb, ptr, _rehasher).Union();
5933 }
5934 case OpParameter_Dequantize: {
5935 auto ptr = reinterpret_cast<const DequantizeT *>(value);
5936 return CreateDequantize(_fbb, ptr, _rehasher).Union();
5937 }
5938 case OpParameter_DetectionOutput: {
5939 auto ptr = reinterpret_cast<const DetectionOutputT *>(value);
5940 return CreateDetectionOutput(_fbb, ptr, _rehasher).Union();
5941 }
5942 case OpParameter_Eltwise: {
5943 auto ptr = reinterpret_cast<const EltwiseT *>(value);
5944 return CreateEltwise(_fbb, ptr, _rehasher).Union();
5945 }
5946 case OpParameter_ExpandDims: {
5947 auto ptr = reinterpret_cast<const ExpandDimsT *>(value);
5948 return CreateExpandDims(_fbb, ptr, _rehasher).Union();
5949 }
5950 case OpParameter_Fill: {
5951 auto ptr = reinterpret_cast<const FillT *>(value);
5952 return CreateFill(_fbb, ptr, _rehasher).Union();
5953 }
5954 case OpParameter_Flatten: {
5955 auto ptr = reinterpret_cast<const FlattenT *>(value);
5956 return CreateFlatten(_fbb, ptr, _rehasher).Union();
5957 }
5958 case OpParameter_Gather: {
5959 auto ptr = reinterpret_cast<const GatherT *>(value);
5960 return CreateGather(_fbb, ptr, _rehasher).Union();
5961 }
5962 case OpParameter_GatherV2: {
5963 auto ptr = reinterpret_cast<const GatherV2T *>(value);
5964 return CreateGatherV2(_fbb, ptr, _rehasher).Union();
5965 }
5966 case OpParameter_InnerProduct: {
5967 auto ptr = reinterpret_cast<const InnerProductT *>(value);
5968 return CreateInnerProduct(_fbb, ptr, _rehasher).Union();
5969 }
5970 case OpParameter_Input: {
5971 auto ptr = reinterpret_cast<const InputT *>(value);
5972 return CreateInput(_fbb, ptr, _rehasher).Union();
5973 }
5974 case OpParameter_Interp: {
5975 auto ptr = reinterpret_cast<const InterpT *>(value);
5976 return CreateInterp(_fbb, ptr, _rehasher).Union();
5977 }
5978 case OpParameter_LRN: {
5979 auto ptr = reinterpret_cast<const LRNT *>(value);
5980 return CreateLRN(_fbb, ptr, _rehasher).Union();
5981 }
5982 case OpParameter_LSTM: {
5983 auto ptr = reinterpret_cast<const LSTMT *>(value);
5984 return CreateLSTM(_fbb, ptr, _rehasher).Union();
5985 }
5986 case OpParameter_MatMul: {
5987 auto ptr = reinterpret_cast<const MatMulT *>(value);
5988 return CreateMatMul(_fbb, ptr, _rehasher).Union();
5989 }
5990 case OpParameter_NonMaxSuppressionV2: {
5991 auto ptr = reinterpret_cast<const NonMaxSuppressionV2T *>(value);
5992 return CreateNonMaxSuppressionV2(_fbb, ptr, _rehasher).Union();
5993 }
5994 case OpParameter_Normalize: {
5995 auto ptr = reinterpret_cast<const NormalizeT *>(value);
5996 return CreateNormalize(_fbb, ptr, _rehasher).Union();
5997 }
5998 case OpParameter_PackParam: {
5999 auto ptr = reinterpret_cast<const PackParamT *>(value);
6000 return CreatePackParam(_fbb, ptr, _rehasher).Union();
6001 }
6002 case OpParameter_Permute: {
6003 auto ptr = reinterpret_cast<const PermuteT *>(value);
6004 return CreatePermute(_fbb, ptr, _rehasher).Union();
6005 }
6006 case OpParameter_Plugin: {
6007 auto ptr = reinterpret_cast<const PluginT *>(value);
6008 return CreatePlugin(_fbb, ptr, _rehasher).Union();
6009 }
6010 case OpParameter_Pool: {
6011 auto ptr = reinterpret_cast<const PoolT *>(value);
6012 return CreatePool(_fbb, ptr, _rehasher).Union();
6013 }
6014 case OpParameter_PRelu: {
6015 auto ptr = reinterpret_cast<const PReluT *>(value);
6016 return CreatePRelu(_fbb, ptr, _rehasher).Union();
6017 }
6018 case OpParameter_PriorBox: {
6019 auto ptr = reinterpret_cast<const PriorBoxT *>(value);
6020 return CreatePriorBox(_fbb, ptr, _rehasher).Union();
6021 }
6022 case OpParameter_Proposal: {
6023 auto ptr = reinterpret_cast<const ProposalT *>(value);
6024 return CreateProposal(_fbb, ptr, _rehasher).Union();
6025 }
6026 case OpParameter_QuantizedAvgPool: {
6027 auto ptr = reinterpret_cast<const QuantizedAvgPoolT *>(value);
6028 return CreateQuantizedAvgPool(_fbb, ptr, _rehasher).Union();
6029 }
6030 case OpParameter_QuantizedBiasAdd: {
6031 auto ptr = reinterpret_cast<const QuantizedBiasAddT *>(value);
6032 return CreateQuantizedBiasAdd(_fbb, ptr, _rehasher).Union();
6033 }
6034 case OpParameter_QuantizedConcat: {
6035 auto ptr = reinterpret_cast<const QuantizedConcatT *>(value);
6036 return CreateQuantizedConcat(_fbb, ptr, _rehasher).Union();
6037 }
6038 case OpParameter_QuantizedLogistic: {
6039 auto ptr = reinterpret_cast<const QuantizedLogisticT *>(value);
6040 return CreateQuantizedLogistic(_fbb, ptr, _rehasher).Union();
6041 }
6042 case OpParameter_QuantizedMatMul: {
6043 auto ptr = reinterpret_cast<const QuantizedMatMulT *>(value);
6044 return CreateQuantizedMatMul(_fbb, ptr, _rehasher).Union();
6045 }
6046 case OpParameter_QuantizedMaxPool: {
6047 auto ptr = reinterpret_cast<const QuantizedMaxPoolT *>(value);
6048 return CreateQuantizedMaxPool(_fbb, ptr, _rehasher).Union();
6049 }
6050 case OpParameter_QuantizedRelu: {
6051 auto ptr = reinterpret_cast<const QuantizedReluT *>(value);
6052 return CreateQuantizedRelu(_fbb, ptr, _rehasher).Union();
6053 }
6054 case OpParameter_QuantizedRelu6: {
6055 auto ptr = reinterpret_cast<const QuantizedRelu6T *>(value);
6056 return CreateQuantizedRelu6(_fbb, ptr, _rehasher).Union();
6057 }
6058 case OpParameter_QuantizedReshape: {
6059 auto ptr = reinterpret_cast<const QuantizedReshapeT *>(value);
6060 return CreateQuantizedReshape(_fbb, ptr, _rehasher).Union();
6061 }
6062 case OpParameter_QuantizedSoftmax: {
6063 auto ptr = reinterpret_cast<const QuantizedSoftmaxT *>(value);
6064 return CreateQuantizedSoftmax(_fbb, ptr, _rehasher).Union();
6065 }
6066 case OpParameter_QuantizeMaxMin: {
6067 auto ptr = reinterpret_cast<const QuantizeMaxMinT *>(value);
6068 return CreateQuantizeMaxMin(_fbb, ptr, _rehasher).Union();
6069 }
6070 case OpParameter_QuantizeV2: {
6071 auto ptr = reinterpret_cast<const QuantizeV2T *>(value);
6072 return CreateQuantizeV2(_fbb, ptr, _rehasher).Union();
6073 }
6074 case OpParameter_Range: {
6075 auto ptr = reinterpret_cast<const RangeT *>(value);
6076 return CreateRange(_fbb, ptr, _rehasher).Union();
6077 }
6078 case OpParameter_Rank: {
6079 auto ptr = reinterpret_cast<const RankT *>(value);
6080 return CreateRank(_fbb, ptr, _rehasher).Union();
6081 }
6082 case OpParameter_ReduceJoin: {
6083 auto ptr = reinterpret_cast<const ReduceJoinT *>(value);
6084 return CreateReduceJoin(_fbb, ptr, _rehasher).Union();
6085 }
6086 case OpParameter_ReductionParam: {
6087 auto ptr = reinterpret_cast<const ReductionParamT *>(value);
6088 return CreateReductionParam(_fbb, ptr, _rehasher).Union();
6089 }
6090 case OpParameter_Relu: {
6091 auto ptr = reinterpret_cast<const ReluT *>(value);
6092 return CreateRelu(_fbb, ptr, _rehasher).Union();
6093 }
6094 case OpParameter_Relu6: {
6095 auto ptr = reinterpret_cast<const Relu6T *>(value);
6096 return CreateRelu6(_fbb, ptr, _rehasher).Union();
6097 }
6098 case OpParameter_RequantizationRange: {
6099 auto ptr = reinterpret_cast<const RequantizationRangeT *>(value);
6100 return CreateRequantizationRange(_fbb, ptr, _rehasher).Union();
6101 }
6102 case OpParameter_Requantize: {
6103 auto ptr = reinterpret_cast<const RequantizeT *>(value);
6104 return CreateRequantize(_fbb, ptr, _rehasher).Union();
6105 }
6106 case OpParameter_Reshape: {
6107 auto ptr = reinterpret_cast<const ReshapeT *>(value);
6108 return CreateReshape(_fbb, ptr, _rehasher).Union();
6109 }
6110 case OpParameter_Resize: {
6111 auto ptr = reinterpret_cast<const ResizeT *>(value);
6112 return CreateResize(_fbb, ptr, _rehasher).Union();
6113 }
6114 case OpParameter_RoiPooling: {
6115 auto ptr = reinterpret_cast<const RoiPoolingT *>(value);
6116 return CreateRoiPooling(_fbb, ptr, _rehasher).Union();
6117 }
6118 case OpParameter_Scale: {
6119 auto ptr = reinterpret_cast<const ScaleT *>(value);
6120 return CreateScale(_fbb, ptr, _rehasher).Union();
6121 }
6122 case OpParameter_Selu: {
6123 auto ptr = reinterpret_cast<const SeluT *>(value);
6124 return CreateSelu(_fbb, ptr, _rehasher).Union();
6125 }
6126 case OpParameter_Size: {
6127 auto ptr = reinterpret_cast<const SizeT *>(value);
6128 return CreateSize(_fbb, ptr, _rehasher).Union();
6129 }
6130 case OpParameter_Slice: {
6131 auto ptr = reinterpret_cast<const SliceT *>(value);
6132 return CreateSlice(_fbb, ptr, _rehasher).Union();
6133 }
6134 case OpParameter_SliceTf: {
6135 auto ptr = reinterpret_cast<const SliceTfT *>(value);
6136 return CreateSliceTf(_fbb, ptr, _rehasher).Union();
6137 }
6138 case OpParameter_SpaceBatch: {
6139 auto ptr = reinterpret_cast<const SpaceBatchT *>(value);
6140 return CreateSpaceBatch(_fbb, ptr, _rehasher).Union();
6141 }
6142 case OpParameter_SqueezeParam: {
6143 auto ptr = reinterpret_cast<const SqueezeParamT *>(value);
6144 return CreateSqueezeParam(_fbb, ptr, _rehasher).Union();
6145 }
6146 case OpParameter_StridedSliceParam: {
6147 auto ptr = reinterpret_cast<const StridedSliceParamT *>(value);
6148 return CreateStridedSliceParam(_fbb, ptr, _rehasher).Union();
6149 }
6150 case OpParameter_TensorConvertInfo: {
6151 auto ptr = reinterpret_cast<const TensorConvertInfoT *>(value);
6152 return CreateTensorConvertInfo(_fbb, ptr, _rehasher).Union();
6153 }
6154 case OpParameter_TfQuantizedConv2D: {
6155 auto ptr = reinterpret_cast<const TfQuantizedConv2DT *>(value);
6156 return CreateTfQuantizedConv2D(_fbb, ptr, _rehasher).Union();
6157 }
6158 case OpParameter_TopKV2: {
6159 auto ptr = reinterpret_cast<const TopKV2T *>(value);
6160 return CreateTopKV2(_fbb, ptr, _rehasher).Union();
6161 }
6162 case OpParameter_Transpose: {
6163 auto ptr = reinterpret_cast<const TransposeT *>(value);
6164 return CreateTranspose(_fbb, ptr, _rehasher).Union();
6165 }
6166 case OpParameter_UnaryOp: {
6167 auto ptr = reinterpret_cast<const UnaryOpT *>(value);
6168 return CreateUnaryOp(_fbb, ptr, _rehasher).Union();
6169 }
6170 case OpParameter_MomentsParam: {
6171 auto ptr = reinterpret_cast<const MomentsParamT *>(value);
6172 return CreateMomentsParam(_fbb, ptr, _rehasher).Union();
6173 }
6174 case OpParameter_RNNParam: {
6175 auto ptr = reinterpret_cast<const RNNParamT *>(value);
6176 return CreateRNNParam(_fbb, ptr, _rehasher).Union();
6177 }
6178 case OpParameter_BatchMatMulParam: {
6179 auto ptr = reinterpret_cast<const BatchMatMulParamT *>(value);
6180 return CreateBatchMatMulParam(_fbb, ptr, _rehasher).Union();
6181 }
6182 case OpParameter_QuantizedFloatParam: {
6183 auto ptr = reinterpret_cast<const QuantizedFloatParamT *>(value);
6184 return CreateQuantizedFloatParam(_fbb, ptr, _rehasher).Union();
6185 }
6186 case OpParameter_DepthSpaceParam: {
6187 auto ptr = reinterpret_cast<const DepthSpaceParamT *>(value);
6188 return CreateDepthSpaceParam(_fbb, ptr, _rehasher).Union();
6189 }
6190 case OpParameter_EltwiseInt8: {
6191 auto ptr = reinterpret_cast<const EltwiseInt8T *>(value);
6192 return CreateEltwiseInt8(_fbb, ptr, _rehasher).Union();
6193 }
6194 case OpParameter_ReverseSequenceParam: {
6195 auto ptr = reinterpret_cast<const ReverseSequenceParamT *>(value);
6196 return CreateReverseSequenceParam(_fbb, ptr, _rehasher).Union();
6197 }
6198 case OpParameter_Extra: {
6199 auto ptr = reinterpret_cast<const ExtraT *>(value);
6200 return CreateExtra(_fbb, ptr, _rehasher).Union();
6201 }
6202 case OpParameter_Pool3D: {
6203 auto ptr = reinterpret_cast<const Pool3DT *>(value);
6204 return CreatePool3D(_fbb, ptr, _rehasher).Union();
6205 }
6206 case OpParameter_Convolution3D: {
6207 auto ptr = reinterpret_cast<const Convolution3DT *>(value);
6208 return CreateConvolution3D(_fbb, ptr, _rehasher).Union();
6209 }
6210 case OpParameter_ELU: {
6211 auto ptr = reinterpret_cast<const ELUT *>(value);
6212 return CreateELU(_fbb, ptr, _rehasher).Union();
6213 }
6214 case OpParameter_DetectionPostProcessParam: {
6215 auto ptr = reinterpret_cast<const DetectionPostProcessParamT *>(value);
6216 return CreateDetectionPostProcessParam(_fbb, ptr, _rehasher).Union();
6217 }
6218 case OpParameter_OneHotParam: {
6219 auto ptr = reinterpret_cast<const OneHotParamT *>(value);
6220 return CreateOneHotParam(_fbb, ptr, _rehasher).Union();
6221 }
6222 case OpParameter_PadParam: {
6223 auto ptr = reinterpret_cast<const PadParamT *>(value);
6224 return CreatePadParam(_fbb, ptr, _rehasher).Union();
6225 }
6226 case OpParameter_WhileParam: {
6227 auto ptr = reinterpret_cast<const WhileParamT *>(value);
6228 return CreateWhileParam(_fbb, ptr, _rehasher).Union();
6229 }
6230 case OpParameter_IfParam: {
6231 auto ptr = reinterpret_cast<const IfParamT *>(value);
6232 return CreateIfParam(_fbb, ptr, _rehasher).Union();
6233 }
6234 case OpParameter_RandomUniform: {
6235 auto ptr = reinterpret_cast<const RandomUniformT *>(value);
6236 return CreateRandomUniform(_fbb, ptr, _rehasher).Union();
6237 }
6238 case OpParameter_LayerNorm: {
6239 auto ptr = reinterpret_cast<const LayerNormT *>(value);
6240 return CreateLayerNorm(_fbb, ptr, _rehasher).Union();
6241 }
6242 case OpParameter_TensorArray: {
6243 auto ptr = reinterpret_cast<const TensorArrayT *>(value);
6244 return CreateTensorArray(_fbb, ptr, _rehasher).Union();
6245 }
6246 case OpParameter_LSTMBlockCell: {
6247 auto ptr = reinterpret_cast<const LSTMBlockCellT *>(value);
6248 return CreateLSTMBlockCell(_fbb, ptr, _rehasher).Union();
6249 }
6250 case OpParameter_GridSample: {
6251 auto ptr = reinterpret_cast<const GridSampleT *>(value);
6252 return CreateGridSample(_fbb, ptr, _rehasher).Union();
6253 }
6254 case OpParameter_LoopParam: {
6255 auto ptr = reinterpret_cast<const LoopParamT *>(value);
6256 return CreateLoopParam(_fbb, ptr, _rehasher).Union();
6257 }
6258 default: return 0;
6259 }
6260 }
6261
6262 inline OpParameterUnion::OpParameterUnion(const OpParameterUnion &u) FLATBUFFERS_NOEXCEPT : type(u.type), value(nullptr) {
6263 switch (type) {
6264 case OpParameter_QuantizedAdd: {
6265 FLATBUFFERS_ASSERT(false); // QuantizedAddT not copyable.
6266 break;
6267 }
6268 case OpParameter_ArgMax: {
6269 value = new ArgMaxT(*reinterpret_cast<ArgMaxT *>(u.value));
6270 break;
6271 }
6272 case OpParameter_AsString: {
6273 value = new AsStringT(*reinterpret_cast<AsStringT *>(u.value));
6274 break;
6275 }
6276 case OpParameter_Axis: {
6277 value = new AxisT(*reinterpret_cast<AxisT *>(u.value));
6278 break;
6279 }
6280 case OpParameter_BatchNorm: {
6281 value = new BatchNormT(*reinterpret_cast<BatchNormT *>(u.value));
6282 break;
6283 }
6284 case OpParameter_BinaryOp: {
6285 value = new BinaryOpT(*reinterpret_cast<BinaryOpT *>(u.value));
6286 break;
6287 }
6288 case OpParameter_Blob: {
6289 value = new BlobT(*reinterpret_cast<BlobT *>(u.value));
6290 break;
6291 }
6292 case OpParameter_CastParam: {
6293 value = new CastParamT(*reinterpret_cast<CastParamT *>(u.value));
6294 break;
6295 }
6296 case OpParameter_Convolution2D: {
6297 FLATBUFFERS_ASSERT(false); // Convolution2DT not copyable.
6298 break;
6299 }
6300 case OpParameter_Crop: {
6301 value = new CropT(*reinterpret_cast<CropT *>(u.value));
6302 break;
6303 }
6304 case OpParameter_CropAndResize: {
6305 value = new CropAndResizeT(*reinterpret_cast<CropAndResizeT *>(u.value));
6306 break;
6307 }
6308 case OpParameter_Dequantize: {
6309 FLATBUFFERS_ASSERT(false); // DequantizeT not copyable.
6310 break;
6311 }
6312 case OpParameter_DetectionOutput: {
6313 value = new DetectionOutputT(*reinterpret_cast<DetectionOutputT *>(u.value));
6314 break;
6315 }
6316 case OpParameter_Eltwise: {
6317 value = new EltwiseT(*reinterpret_cast<EltwiseT *>(u.value));
6318 break;
6319 }
6320 case OpParameter_ExpandDims: {
6321 value = new ExpandDimsT(*reinterpret_cast<ExpandDimsT *>(u.value));
6322 break;
6323 }
6324 case OpParameter_Fill: {
6325 value = new FillT(*reinterpret_cast<FillT *>(u.value));
6326 break;
6327 }
6328 case OpParameter_Flatten: {
6329 value = new FlattenT(*reinterpret_cast<FlattenT *>(u.value));
6330 break;
6331 }
6332 case OpParameter_Gather: {
6333 value = new GatherT(*reinterpret_cast<GatherT *>(u.value));
6334 break;
6335 }
6336 case OpParameter_GatherV2: {
6337 value = new GatherV2T(*reinterpret_cast<GatherV2T *>(u.value));
6338 break;
6339 }
6340 case OpParameter_InnerProduct: {
6341 FLATBUFFERS_ASSERT(false); // InnerProductT not copyable.
6342 break;
6343 }
6344 case OpParameter_Input: {
6345 value = new InputT(*reinterpret_cast<InputT *>(u.value));
6346 break;
6347 }
6348 case OpParameter_Interp: {
6349 value = new InterpT(*reinterpret_cast<InterpT *>(u.value));
6350 break;
6351 }
6352 case OpParameter_LRN: {
6353 value = new LRNT(*reinterpret_cast<LRNT *>(u.value));
6354 break;
6355 }
6356 case OpParameter_LSTM: {
6357 FLATBUFFERS_ASSERT(false); // LSTMT not copyable.
6358 break;
6359 }
6360 case OpParameter_MatMul: {
6361 value = new MatMulT(*reinterpret_cast<MatMulT *>(u.value));
6362 break;
6363 }
6364 case OpParameter_NonMaxSuppressionV2: {
6365 value = new NonMaxSuppressionV2T(*reinterpret_cast<NonMaxSuppressionV2T *>(u.value));
6366 break;
6367 }
6368 case OpParameter_Normalize: {
6369 value = new NormalizeT(*reinterpret_cast<NormalizeT *>(u.value));
6370 break;
6371 }
6372 case OpParameter_PackParam: {
6373 value = new PackParamT(*reinterpret_cast<PackParamT *>(u.value));
6374 break;
6375 }
6376 case OpParameter_Permute: {
6377 value = new PermuteT(*reinterpret_cast<PermuteT *>(u.value));
6378 break;
6379 }
6380 case OpParameter_Plugin: {
6381 FLATBUFFERS_ASSERT(false); // PluginT not copyable.
6382 break;
6383 }
6384 case OpParameter_Pool: {
6385 value = new PoolT(*reinterpret_cast<PoolT *>(u.value));
6386 break;
6387 }
6388 case OpParameter_PRelu: {
6389 value = new PReluT(*reinterpret_cast<PReluT *>(u.value));
6390 break;
6391 }
6392 case OpParameter_PriorBox: {
6393 value = new PriorBoxT(*reinterpret_cast<PriorBoxT *>(u.value));
6394 break;
6395 }
6396 case OpParameter_Proposal: {
6397 FLATBUFFERS_ASSERT(false); // ProposalT not copyable.
6398 break;
6399 }
6400 case OpParameter_QuantizedAvgPool: {
6401 value = new QuantizedAvgPoolT(*reinterpret_cast<QuantizedAvgPoolT *>(u.value));
6402 break;
6403 }
6404 case OpParameter_QuantizedBiasAdd: {
6405 value = new QuantizedBiasAddT(*reinterpret_cast<QuantizedBiasAddT *>(u.value));
6406 break;
6407 }
6408 case OpParameter_QuantizedConcat: {
6409 FLATBUFFERS_ASSERT(false); // QuantizedConcatT not copyable.
6410 break;
6411 }
6412 case OpParameter_QuantizedLogistic: {
6413 FLATBUFFERS_ASSERT(false); // QuantizedLogisticT not copyable.
6414 break;
6415 }
6416 case OpParameter_QuantizedMatMul: {
6417 value = new QuantizedMatMulT(*reinterpret_cast<QuantizedMatMulT *>(u.value));
6418 break;
6419 }
6420 case OpParameter_QuantizedMaxPool: {
6421 value = new QuantizedMaxPoolT(*reinterpret_cast<QuantizedMaxPoolT *>(u.value));
6422 break;
6423 }
6424 case OpParameter_QuantizedRelu: {
6425 value = new QuantizedReluT(*reinterpret_cast<QuantizedReluT *>(u.value));
6426 break;
6427 }
6428 case OpParameter_QuantizedRelu6: {
6429 value = new QuantizedRelu6T(*reinterpret_cast<QuantizedRelu6T *>(u.value));
6430 break;
6431 }
6432 case OpParameter_QuantizedReshape: {
6433 value = new QuantizedReshapeT(*reinterpret_cast<QuantizedReshapeT *>(u.value));
6434 break;
6435 }
6436 case OpParameter_QuantizedSoftmax: {
6437 value = new QuantizedSoftmaxT(*reinterpret_cast<QuantizedSoftmaxT *>(u.value));
6438 break;
6439 }
6440 case OpParameter_QuantizeMaxMin: {
6441 value = new QuantizeMaxMinT(*reinterpret_cast<QuantizeMaxMinT *>(u.value));
6442 break;
6443 }
6444 case OpParameter_QuantizeV2: {
6445 value = new QuantizeV2T(*reinterpret_cast<QuantizeV2T *>(u.value));
6446 break;
6447 }
6448 case OpParameter_Range: {
6449 value = new RangeT(*reinterpret_cast<RangeT *>(u.value));
6450 break;
6451 }
6452 case OpParameter_Rank: {
6453 value = new RankT(*reinterpret_cast<RankT *>(u.value));
6454 break;
6455 }
6456 case OpParameter_ReduceJoin: {
6457 value = new ReduceJoinT(*reinterpret_cast<ReduceJoinT *>(u.value));
6458 break;
6459 }
6460 case OpParameter_ReductionParam: {
6461 value = new ReductionParamT(*reinterpret_cast<ReductionParamT *>(u.value));
6462 break;
6463 }
6464 case OpParameter_Relu: {
6465 value = new ReluT(*reinterpret_cast<ReluT *>(u.value));
6466 break;
6467 }
6468 case OpParameter_Relu6: {
6469 value = new Relu6T(*reinterpret_cast<Relu6T *>(u.value));
6470 break;
6471 }
6472 case OpParameter_RequantizationRange: {
6473 value = new RequantizationRangeT(*reinterpret_cast<RequantizationRangeT *>(u.value));
6474 break;
6475 }
6476 case OpParameter_Requantize: {
6477 value = new RequantizeT(*reinterpret_cast<RequantizeT *>(u.value));
6478 break;
6479 }
6480 case OpParameter_Reshape: {
6481 value = new ReshapeT(*reinterpret_cast<ReshapeT *>(u.value));
6482 break;
6483 }
6484 case OpParameter_Resize: {
6485 value = new ResizeT(*reinterpret_cast<ResizeT *>(u.value));
6486 break;
6487 }
6488 case OpParameter_RoiPooling: {
6489 value = new RoiPoolingT(*reinterpret_cast<RoiPoolingT *>(u.value));
6490 break;
6491 }
6492 case OpParameter_Scale: {
6493 value = new ScaleT(*reinterpret_cast<ScaleT *>(u.value));
6494 break;
6495 }
6496 case OpParameter_Selu: {
6497 value = new SeluT(*reinterpret_cast<SeluT *>(u.value));
6498 break;
6499 }
6500 case OpParameter_Size: {
6501 value = new SizeT(*reinterpret_cast<SizeT *>(u.value));
6502 break;
6503 }
6504 case OpParameter_Slice: {
6505 value = new SliceT(*reinterpret_cast<SliceT *>(u.value));
6506 break;
6507 }
6508 case OpParameter_SliceTf: {
6509 value = new SliceTfT(*reinterpret_cast<SliceTfT *>(u.value));
6510 break;
6511 }
6512 case OpParameter_SpaceBatch: {
6513 FLATBUFFERS_ASSERT(false); // SpaceBatchT not copyable.
6514 break;
6515 }
6516 case OpParameter_SqueezeParam: {
6517 value = new SqueezeParamT(*reinterpret_cast<SqueezeParamT *>(u.value));
6518 break;
6519 }
6520 case OpParameter_StridedSliceParam: {
6521 value = new StridedSliceParamT(*reinterpret_cast<StridedSliceParamT *>(u.value));
6522 break;
6523 }
6524 case OpParameter_TensorConvertInfo: {
6525 value = new TensorConvertInfoT(*reinterpret_cast<TensorConvertInfoT *>(u.value));
6526 break;
6527 }
6528 case OpParameter_TfQuantizedConv2D: {
6529 FLATBUFFERS_ASSERT(false); // TfQuantizedConv2DT not copyable.
6530 break;
6531 }
6532 case OpParameter_TopKV2: {
6533 value = new TopKV2T(*reinterpret_cast<TopKV2T *>(u.value));
6534 break;
6535 }
6536 case OpParameter_Transpose: {
6537 value = new TransposeT(*reinterpret_cast<TransposeT *>(u.value));
6538 break;
6539 }
6540 case OpParameter_UnaryOp: {
6541 value = new UnaryOpT(*reinterpret_cast<UnaryOpT *>(u.value));
6542 break;
6543 }
6544 case OpParameter_MomentsParam: {
6545 value = new MomentsParamT(*reinterpret_cast<MomentsParamT *>(u.value));
6546 break;
6547 }
6548 case OpParameter_RNNParam: {
6549 FLATBUFFERS_ASSERT(false); // RNNParamT not copyable.
6550 break;
6551 }
6552 case OpParameter_BatchMatMulParam: {
6553 value = new BatchMatMulParamT(*reinterpret_cast<BatchMatMulParamT *>(u.value));
6554 break;
6555 }
6556 case OpParameter_QuantizedFloatParam: {
6557 value = new QuantizedFloatParamT(*reinterpret_cast<QuantizedFloatParamT *>(u.value));
6558 break;
6559 }
6560 case OpParameter_DepthSpaceParam: {
6561 value = new DepthSpaceParamT(*reinterpret_cast<DepthSpaceParamT *>(u.value));
6562 break;
6563 }
6564 case OpParameter_EltwiseInt8: {
6565 FLATBUFFERS_ASSERT(false); // EltwiseInt8T not copyable.
6566 break;
6567 }
6568 case OpParameter_ReverseSequenceParam: {
6569 value = new ReverseSequenceParamT(*reinterpret_cast<ReverseSequenceParamT *>(u.value));
6570 break;
6571 }
6572 case OpParameter_Extra: {
6573 FLATBUFFERS_ASSERT(false); // ExtraT not copyable.
6574 break;
6575 }
6576 case OpParameter_Pool3D: {
6577 value = new Pool3DT(*reinterpret_cast<Pool3DT *>(u.value));
6578 break;
6579 }
6580 case OpParameter_Convolution3D: {
6581 FLATBUFFERS_ASSERT(false); // Convolution3DT not copyable.
6582 break;
6583 }
6584 case OpParameter_ELU: {
6585 value = new ELUT(*reinterpret_cast<ELUT *>(u.value));
6586 break;
6587 }
6588 case OpParameter_DetectionPostProcessParam: {
6589 value = new DetectionPostProcessParamT(*reinterpret_cast<DetectionPostProcessParamT *>(u.value));
6590 break;
6591 }
6592 case OpParameter_OneHotParam: {
6593 value = new OneHotParamT(*reinterpret_cast<OneHotParamT *>(u.value));
6594 break;
6595 }
6596 case OpParameter_PadParam: {
6597 value = new PadParamT(*reinterpret_cast<PadParamT *>(u.value));
6598 break;
6599 }
6600 case OpParameter_WhileParam: {
6601 FLATBUFFERS_ASSERT(false); // WhileParamT not copyable.
6602 break;
6603 }
6604 case OpParameter_IfParam: {
6605 FLATBUFFERS_ASSERT(false); // IfParamT not copyable.
6606 break;
6607 }
6608 case OpParameter_RandomUniform: {
6609 value = new RandomUniformT(*reinterpret_cast<RandomUniformT *>(u.value));
6610 break;
6611 }
6612 case OpParameter_LayerNorm: {
6613 value = new LayerNormT(*reinterpret_cast<LayerNormT *>(u.value));
6614 break;
6615 }
6616 case OpParameter_TensorArray: {
6617 value = new TensorArrayT(*reinterpret_cast<TensorArrayT *>(u.value));
6618 break;
6619 }
6620 case OpParameter_LSTMBlockCell: {
6621 value = new LSTMBlockCellT(*reinterpret_cast<LSTMBlockCellT *>(u.value));
6622 break;
6623 }
6624 case OpParameter_GridSample: {
6625 value = new GridSampleT(*reinterpret_cast<GridSampleT *>(u.value));
6626 break;
6627 }
6628 case OpParameter_LoopParam: {
6629 FLATBUFFERS_ASSERT(false); // LoopParamT not copyable.
6630 break;
6631 }
6632 default:
6633 break;
6634 }
6635 }
6636
6637 inline void OpParameterUnion::Reset() {
6638 switch (type) {
6639 case OpParameter_QuantizedAdd: {
6640 auto ptr = reinterpret_cast<QuantizedAddT *>(value);
6641 delete ptr;
6642 break;
6643 }
6644 case OpParameter_ArgMax: {
6645 auto ptr = reinterpret_cast<ArgMaxT *>(value);
6646 delete ptr;
6647 break;
6648 }
6649 case OpParameter_AsString: {
6650 auto ptr = reinterpret_cast<AsStringT *>(value);
6651 delete ptr;
6652 break;
6653 }
6654 case OpParameter_Axis: {
6655 auto ptr = reinterpret_cast<AxisT *>(value);
6656 delete ptr;
6657 break;
6658 }
6659 case OpParameter_BatchNorm: {
6660 auto ptr = reinterpret_cast<BatchNormT *>(value);
6661 delete ptr;
6662 break;
6663 }
6664 case OpParameter_BinaryOp: {
6665 auto ptr = reinterpret_cast<BinaryOpT *>(value);
6666 delete ptr;
6667 break;
6668 }
6669 case OpParameter_Blob: {
6670 auto ptr = reinterpret_cast<BlobT *>(value);
6671 delete ptr;
6672 break;
6673 }
6674 case OpParameter_CastParam: {
6675 auto ptr = reinterpret_cast<CastParamT *>(value);
6676 delete ptr;
6677 break;
6678 }
6679 case OpParameter_Convolution2D: {
6680 auto ptr = reinterpret_cast<Convolution2DT *>(value);
6681 delete ptr;
6682 break;
6683 }
6684 case OpParameter_Crop: {
6685 auto ptr = reinterpret_cast<CropT *>(value);
6686 delete ptr;
6687 break;
6688 }
6689 case OpParameter_CropAndResize: {
6690 auto ptr = reinterpret_cast<CropAndResizeT *>(value);
6691 delete ptr;
6692 break;
6693 }
6694 case OpParameter_Dequantize: {
6695 auto ptr = reinterpret_cast<DequantizeT *>(value);
6696 delete ptr;
6697 break;
6698 }
6699 case OpParameter_DetectionOutput: {
6700 auto ptr = reinterpret_cast<DetectionOutputT *>(value);
6701 delete ptr;
6702 break;
6703 }
6704 case OpParameter_Eltwise: {
6705 auto ptr = reinterpret_cast<EltwiseT *>(value);
6706 delete ptr;
6707 break;
6708 }
6709 case OpParameter_ExpandDims: {
6710 auto ptr = reinterpret_cast<ExpandDimsT *>(value);
6711 delete ptr;
6712 break;
6713 }
6714 case OpParameter_Fill: {
6715 auto ptr = reinterpret_cast<FillT *>(value);
6716 delete ptr;
6717 break;
6718 }
6719 case OpParameter_Flatten: {
6720 auto ptr = reinterpret_cast<FlattenT *>(value);
6721 delete ptr;
6722 break;
6723 }
6724 case OpParameter_Gather: {
6725 auto ptr = reinterpret_cast<GatherT *>(value);
6726 delete ptr;
6727 break;
6728 }
6729 case OpParameter_GatherV2: {
6730 auto ptr = reinterpret_cast<GatherV2T *>(value);
6731 delete ptr;
6732 break;
6733 }
6734 case OpParameter_InnerProduct: {
6735 auto ptr = reinterpret_cast<InnerProductT *>(value);
6736 delete ptr;
6737 break;
6738 }
6739 case OpParameter_Input: {
6740 auto ptr = reinterpret_cast<InputT *>(value);
6741 delete ptr;
6742 break;
6743 }
6744 case OpParameter_Interp: {
6745 auto ptr = reinterpret_cast<InterpT *>(value);
6746 delete ptr;
6747 break;
6748 }
6749 case OpParameter_LRN: {
6750 auto ptr = reinterpret_cast<LRNT *>(value);
6751 delete ptr;
6752 break;
6753 }
6754 case OpParameter_LSTM: {
6755 auto ptr = reinterpret_cast<LSTMT *>(value);
6756 delete ptr;
6757 break;
6758 }
6759 case OpParameter_MatMul: {
6760 auto ptr = reinterpret_cast<MatMulT *>(value);
6761 delete ptr;
6762 break;
6763 }
6764 case OpParameter_NonMaxSuppressionV2: {
6765 auto ptr = reinterpret_cast<NonMaxSuppressionV2T *>(value);
6766 delete ptr;
6767 break;
6768 }
6769 case OpParameter_Normalize: {
6770 auto ptr = reinterpret_cast<NormalizeT *>(value);
6771 delete ptr;
6772 break;
6773 }
6774 case OpParameter_PackParam: {
6775 auto ptr = reinterpret_cast<PackParamT *>(value);
6776 delete ptr;
6777 break;
6778 }
6779 case OpParameter_Permute: {
6780 auto ptr = reinterpret_cast<PermuteT *>(value);
6781 delete ptr;
6782 break;
6783 }
6784 case OpParameter_Plugin: {
6785 auto ptr = reinterpret_cast<PluginT *>(value);
6786 delete ptr;
6787 break;
6788 }
6789 case OpParameter_Pool: {
6790 auto ptr = reinterpret_cast<PoolT *>(value);
6791 delete ptr;
6792 break;
6793 }
6794 case OpParameter_PRelu: {
6795 auto ptr = reinterpret_cast<PReluT *>(value);
6796 delete ptr;
6797 break;
6798 }
6799 case OpParameter_PriorBox: {
6800 auto ptr = reinterpret_cast<PriorBoxT *>(value);
6801 delete ptr;
6802 break;
6803 }
6804 case OpParameter_Proposal: {
6805 auto ptr = reinterpret_cast<ProposalT *>(value);
6806 delete ptr;
6807 break;
6808 }
6809 case OpParameter_QuantizedAvgPool: {
6810 auto ptr = reinterpret_cast<QuantizedAvgPoolT *>(value);
6811 delete ptr;
6812 break;
6813 }
6814 case OpParameter_QuantizedBiasAdd: {
6815 auto ptr = reinterpret_cast<QuantizedBiasAddT *>(value);
6816 delete ptr;
6817 break;
6818 }
6819 case OpParameter_QuantizedConcat: {
6820 auto ptr = reinterpret_cast<QuantizedConcatT *>(value);
6821 delete ptr;
6822 break;
6823 }
6824 case OpParameter_QuantizedLogistic: {
6825 auto ptr = reinterpret_cast<QuantizedLogisticT *>(value);
6826 delete ptr;
6827 break;
6828 }
6829 case OpParameter_QuantizedMatMul: {
6830 auto ptr = reinterpret_cast<QuantizedMatMulT *>(value);
6831 delete ptr;
6832 break;
6833 }
6834 case OpParameter_QuantizedMaxPool: {
6835 auto ptr = reinterpret_cast<QuantizedMaxPoolT *>(value);
6836 delete ptr;
6837 break;
6838 }
6839 case OpParameter_QuantizedRelu: {
6840 auto ptr = reinterpret_cast<QuantizedReluT *>(value);
6841 delete ptr;
6842 break;
6843 }
6844 case OpParameter_QuantizedRelu6: {
6845 auto ptr = reinterpret_cast<QuantizedRelu6T *>(value);
6846 delete ptr;
6847 break;
6848 }
6849 case OpParameter_QuantizedReshape: {
6850 auto ptr = reinterpret_cast<QuantizedReshapeT *>(value);
6851 delete ptr;
6852 break;
6853 }
6854 case OpParameter_QuantizedSoftmax: {
6855 auto ptr = reinterpret_cast<QuantizedSoftmaxT *>(value);
6856 delete ptr;
6857 break;
6858 }
6859 case OpParameter_QuantizeMaxMin: {
6860 auto ptr = reinterpret_cast<QuantizeMaxMinT *>(value);
6861 delete ptr;
6862 break;
6863 }
6864 case OpParameter_QuantizeV2: {
6865 auto ptr = reinterpret_cast<QuantizeV2T *>(value);
6866 delete ptr;
6867 break;
6868 }
6869 case OpParameter_Range: {
6870 auto ptr = reinterpret_cast<RangeT *>(value);
6871 delete ptr;
6872 break;
6873 }
6874 case OpParameter_Rank: {
6875 auto ptr = reinterpret_cast<RankT *>(value);
6876 delete ptr;
6877 break;
6878 }
6879 case OpParameter_ReduceJoin: {
6880 auto ptr = reinterpret_cast<ReduceJoinT *>(value);
6881 delete ptr;
6882 break;
6883 }
6884 case OpParameter_ReductionParam: {
6885 auto ptr = reinterpret_cast<ReductionParamT *>(value);
6886 delete ptr;
6887 break;
6888 }
6889 case OpParameter_Relu: {
6890 auto ptr = reinterpret_cast<ReluT *>(value);
6891 delete ptr;
6892 break;
6893 }
6894 case OpParameter_Relu6: {
6895 auto ptr = reinterpret_cast<Relu6T *>(value);
6896 delete ptr;
6897 break;
6898 }
6899 case OpParameter_RequantizationRange: {
6900 auto ptr = reinterpret_cast<RequantizationRangeT *>(value);
6901 delete ptr;
6902 break;
6903 }
6904 case OpParameter_Requantize: {
6905 auto ptr = reinterpret_cast<RequantizeT *>(value);
6906 delete ptr;
6907 break;
6908 }
6909 case OpParameter_Reshape: {
6910 auto ptr = reinterpret_cast<ReshapeT *>(value);
6911 delete ptr;
6912 break;
6913 }
6914 case OpParameter_Resize: {
6915 auto ptr = reinterpret_cast<ResizeT *>(value);
6916 delete ptr;
6917 break;
6918 }
6919 case OpParameter_RoiPooling: {
6920 auto ptr = reinterpret_cast<RoiPoolingT *>(value);
6921 delete ptr;
6922 break;
6923 }
6924 case OpParameter_Scale: {
6925 auto ptr = reinterpret_cast<ScaleT *>(value);
6926 delete ptr;
6927 break;
6928 }
6929 case OpParameter_Selu: {
6930 auto ptr = reinterpret_cast<SeluT *>(value);
6931 delete ptr;
6932 break;
6933 }
6934 case OpParameter_Size: {
6935 auto ptr = reinterpret_cast<SizeT *>(value);
6936 delete ptr;
6937 break;
6938 }
6939 case OpParameter_Slice: {
6940 auto ptr = reinterpret_cast<SliceT *>(value);
6941 delete ptr;
6942 break;
6943 }
6944 case OpParameter_SliceTf: {
6945 auto ptr = reinterpret_cast<SliceTfT *>(value);
6946 delete ptr;
6947 break;
6948 }
6949 case OpParameter_SpaceBatch: {
6950 auto ptr = reinterpret_cast<SpaceBatchT *>(value);
6951 delete ptr;
6952 break;
6953 }
6954 case OpParameter_SqueezeParam: {
6955 auto ptr = reinterpret_cast<SqueezeParamT *>(value);
6956 delete ptr;
6957 break;
6958 }
6959 case OpParameter_StridedSliceParam: {
6960 auto ptr = reinterpret_cast<StridedSliceParamT *>(value);
6961 delete ptr;
6962 break;
6963 }
6964 case OpParameter_TensorConvertInfo: {
6965 auto ptr = reinterpret_cast<TensorConvertInfoT *>(value);
6966 delete ptr;
6967 break;
6968 }
6969 case OpParameter_TfQuantizedConv2D: {
6970 auto ptr = reinterpret_cast<TfQuantizedConv2DT *>(value);
6971 delete ptr;
6972 break;
6973 }
6974 case OpParameter_TopKV2: {
6975 auto ptr = reinterpret_cast<TopKV2T *>(value);
6976 delete ptr;
6977 break;
6978 }
6979 case OpParameter_Transpose: {
6980 auto ptr = reinterpret_cast<TransposeT *>(value);
6981 delete ptr;
6982 break;
6983 }
6984 case OpParameter_UnaryOp: {
6985 auto ptr = reinterpret_cast<UnaryOpT *>(value);
6986 delete ptr;
6987 break;
6988 }
6989 case OpParameter_MomentsParam: {
6990 auto ptr = reinterpret_cast<MomentsParamT *>(value);
6991 delete ptr;
6992 break;
6993 }
6994 case OpParameter_RNNParam: {
6995 auto ptr = reinterpret_cast<RNNParamT *>(value);
6996 delete ptr;
6997 break;
6998 }
6999 case OpParameter_BatchMatMulParam: {
7000 auto ptr = reinterpret_cast<BatchMatMulParamT *>(value);
7001 delete ptr;
7002 break;
7003 }
7004 case OpParameter_QuantizedFloatParam: {
7005 auto ptr = reinterpret_cast<QuantizedFloatParamT *>(value);
7006 delete ptr;
7007 break;
7008 }
7009 case OpParameter_DepthSpaceParam: {
7010 auto ptr = reinterpret_cast<DepthSpaceParamT *>(value);
7011 delete ptr;
7012 break;
7013 }
7014 case OpParameter_EltwiseInt8: {
7015 auto ptr = reinterpret_cast<EltwiseInt8T *>(value);
7016 delete ptr;
7017 break;
7018 }
7019 case OpParameter_ReverseSequenceParam: {
7020 auto ptr = reinterpret_cast<ReverseSequenceParamT *>(value);
7021 delete ptr;
7022 break;
7023 }
7024 case OpParameter_Extra: {
7025 auto ptr = reinterpret_cast<ExtraT *>(value);
7026 delete ptr;
7027 break;
7028 }
7029 case OpParameter_Pool3D: {
7030 auto ptr = reinterpret_cast<Pool3DT *>(value);
7031 delete ptr;
7032 break;
7033 }
7034 case OpParameter_Convolution3D: {
7035 auto ptr = reinterpret_cast<Convolution3DT *>(value);
7036 delete ptr;
7037 break;
7038 }
7039 case OpParameter_ELU: {
7040 auto ptr = reinterpret_cast<ELUT *>(value);
7041 delete ptr;
7042 break;
7043 }
7044 case OpParameter_DetectionPostProcessParam: {
7045 auto ptr = reinterpret_cast<DetectionPostProcessParamT *>(value);
7046 delete ptr;
7047 break;
7048 }
7049 case OpParameter_OneHotParam: {
7050 auto ptr = reinterpret_cast<OneHotParamT *>(value);
7051 delete ptr;
7052 break;
7053 }
7054 case OpParameter_PadParam: {
7055 auto ptr = reinterpret_cast<PadParamT *>(value);
7056 delete ptr;
7057 break;
7058 }
7059 case OpParameter_WhileParam: {
7060 auto ptr = reinterpret_cast<WhileParamT *>(value);
7061 delete ptr;
7062 break;
7063 }
7064 case OpParameter_IfParam: {
7065 auto ptr = reinterpret_cast<IfParamT *>(value);
7066 delete ptr;
7067 break;
7068 }
7069 case OpParameter_RandomUniform: {
7070 auto ptr = reinterpret_cast<RandomUniformT *>(value);
7071 delete ptr;
7072 break;
7073 }
7074 case OpParameter_LayerNorm: {
7075 auto ptr = reinterpret_cast<LayerNormT *>(value);
7076 delete ptr;
7077 break;
7078 }
7079 case OpParameter_TensorArray: {
7080 auto ptr = reinterpret_cast<TensorArrayT *>(value);
7081 delete ptr;
7082 break;
7083 }
7084 case OpParameter_LSTMBlockCell: {
7085 auto ptr = reinterpret_cast<LSTMBlockCellT *>(value);
7086 delete ptr;
7087 break;
7088 }
7089 case OpParameter_GridSample: {
7090 auto ptr = reinterpret_cast<GridSampleT *>(value);
7091 delete ptr;
7092 break;
7093 }
7094 case OpParameter_LoopParam: {
7095 auto ptr = reinterpret_cast<LoopParamT *>(value);
7096 delete ptr;
7097 break;
7098 }
7099 default: break;
7100 }
7101 value = nullptr;
7102 type = OpParameter_NONE;
7103 }
7104
7105 inline const flatbuffers::TypeTable *OpTypeTypeTable() {
7106 static const flatbuffers::TypeCode type_codes[] = {
7107 { flatbuffers::ET_INT, 0, 0 },
7108 { flatbuffers::ET_INT, 0, 0 },
7109 { flatbuffers::ET_INT, 0, 0 },
7110 { flatbuffers::ET_INT, 0, 0 },
7111 { flatbuffers::ET_INT, 0, 0 },
7112 { flatbuffers::ET_INT, 0, 0 },
7113 { flatbuffers::ET_INT, 0, 0 },
7114 { flatbuffers::ET_INT, 0, 0 },
7115 { flatbuffers::ET_INT, 0, 0 },
7116 { flatbuffers::ET_INT, 0, 0 },
7117 { flatbuffers::ET_INT, 0, 0 },
7118 { flatbuffers::ET_INT, 0, 0 },
7119 { flatbuffers::ET_INT, 0, 0 },
7120 { flatbuffers::ET_INT, 0, 0 },
7121 { flatbuffers::ET_INT, 0, 0 },
7122 { flatbuffers::ET_INT, 0, 0 },
7123 { flatbuffers::ET_INT, 0, 0 },
7124 { flatbuffers::ET_INT, 0, 0 },
7125 { flatbuffers::ET_INT, 0, 0 },
7126 { flatbuffers::ET_INT, 0, 0 },
7127 { flatbuffers::ET_INT, 0, 0 },
7128 { flatbuffers::ET_INT, 0, 0 },
7129 { flatbuffers::ET_INT, 0, 0 },
7130 { flatbuffers::ET_INT, 0, 0 },
7131 { flatbuffers::ET_INT, 0, 0 },
7132 { flatbuffers::ET_INT, 0, 0 },
7133 { flatbuffers::ET_INT, 0, 0 },
7134 { flatbuffers::ET_INT, 0, 0 },
7135 { flatbuffers::ET_INT, 0, 0 },
7136 { flatbuffers::ET_INT, 0, 0 },
7137 { flatbuffers::ET_INT, 0, 0 },
7138 { flatbuffers::ET_INT, 0, 0 },
7139 { flatbuffers::ET_INT, 0, 0 },
7140 { flatbuffers::ET_INT, 0, 0 },
7141 { flatbuffers::ET_INT, 0, 0 },
7142 { flatbuffers::ET_INT, 0, 0 },
7143 { flatbuffers::ET_INT, 0, 0 },
7144 { flatbuffers::ET_INT, 0, 0 },
7145 { flatbuffers::ET_INT, 0, 0 },
7146 { flatbuffers::ET_INT, 0, 0 },
7147 { flatbuffers::ET_INT, 0, 0 },
7148 { flatbuffers::ET_INT, 0, 0 },
7149 { flatbuffers::ET_INT, 0, 0 },
7150 { flatbuffers::ET_INT, 0, 0 },
7151 { flatbuffers::ET_INT, 0, 0 },
7152 { flatbuffers::ET_INT, 0, 0 },
7153 { flatbuffers::ET_INT, 0, 0 },
7154 { flatbuffers::ET_INT, 0, 0 },
7155 { flatbuffers::ET_INT, 0, 0 },
7156 { flatbuffers::ET_INT, 0, 0 },
7157 { flatbuffers::ET_INT, 0, 0 },
7158 { flatbuffers::ET_INT, 0, 0 },
7159 { flatbuffers::ET_INT, 0, 0 },
7160 { flatbuffers::ET_INT, 0, 0 },
7161 { flatbuffers::ET_INT, 0, 0 },
7162 { flatbuffers::ET_INT, 0, 0 },
7163 { flatbuffers::ET_INT, 0, 0 },
7164 { flatbuffers::ET_INT, 0, 0 },
7165 { flatbuffers::ET_INT, 0, 0 },
7166 { flatbuffers::ET_INT, 0, 0 },
7167 { flatbuffers::ET_INT, 0, 0 },
7168 { flatbuffers::ET_INT, 0, 0 },
7169 { flatbuffers::ET_INT, 0, 0 },
7170 { flatbuffers::ET_INT, 0, 0 },
7171 { flatbuffers::ET_INT, 0, 0 },
7172 { flatbuffers::ET_INT, 0, 0 },
7173 { flatbuffers::ET_INT, 0, 0 },
7174 { flatbuffers::ET_INT, 0, 0 },
7175 { flatbuffers::ET_INT, 0, 0 },
7176 { flatbuffers::ET_INT, 0, 0 },
7177 { flatbuffers::ET_INT, 0, 0 },
7178 { flatbuffers::ET_INT, 0, 0 },
7179 { flatbuffers::ET_INT, 0, 0 },
7180 { flatbuffers::ET_INT, 0, 0 },
7181 { flatbuffers::ET_INT, 0, 0 },
7182 { flatbuffers::ET_INT, 0, 0 },
7183 { flatbuffers::ET_INT, 0, 0 },
7184 { flatbuffers::ET_INT, 0, 0 },
7185 { flatbuffers::ET_INT, 0, 0 },
7186 { flatbuffers::ET_INT, 0, 0 },
7187 { flatbuffers::ET_INT, 0, 0 },
7188 { flatbuffers::ET_INT, 0, 0 },
7189 { flatbuffers::ET_INT, 0, 0 },
7190 { flatbuffers::ET_INT, 0, 0 },
7191 { flatbuffers::ET_INT, 0, 0 },
7192 { flatbuffers::ET_INT, 0, 0 },
7193 { flatbuffers::ET_INT, 0, 0 },
7194 { flatbuffers::ET_INT, 0, 0 },
7195 { flatbuffers::ET_INT, 0, 0 },
7196 { flatbuffers::ET_INT, 0, 0 },
7197 { flatbuffers::ET_INT, 0, 0 },
7198 { flatbuffers::ET_INT, 0, 0 },
7199 { flatbuffers::ET_INT, 0, 0 },
7200 { flatbuffers::ET_INT, 0, 0 },
7201 { flatbuffers::ET_INT, 0, 0 },
7202 { flatbuffers::ET_INT, 0, 0 },
7203 { flatbuffers::ET_INT, 0, 0 },
7204 { flatbuffers::ET_INT, 0, 0 },
7205 { flatbuffers::ET_INT, 0, 0 },
7206 { flatbuffers::ET_INT, 0, 0 },
7207 { flatbuffers::ET_INT, 0, 0 },
7208 { flatbuffers::ET_INT, 0, 0 },
7209 { flatbuffers::ET_INT, 0, 0 },
7210 { flatbuffers::ET_INT, 0, 0 },
7211 { flatbuffers::ET_INT, 0, 0 },
7212 { flatbuffers::ET_INT, 0, 0 },
7213 { flatbuffers::ET_INT, 0, 0 },
7214 { flatbuffers::ET_INT, 0, 0 },
7215 { flatbuffers::ET_INT, 0, 0 },
7216 { flatbuffers::ET_INT, 0, 0 },
7217 { flatbuffers::ET_INT, 0, 0 },
7218 { flatbuffers::ET_INT, 0, 0 },
7219 { flatbuffers::ET_INT, 0, 0 },
7220 { flatbuffers::ET_INT, 0, 0 },
7221 { flatbuffers::ET_INT, 0, 0 },
7222 { flatbuffers::ET_INT, 0, 0 },
7223 { flatbuffers::ET_INT, 0, 0 },
7224 { flatbuffers::ET_INT, 0, 0 },
7225 { flatbuffers::ET_INT, 0, 0 },
7226 { flatbuffers::ET_INT, 0, 0 },
7227 { flatbuffers::ET_INT, 0, 0 },
7228 { flatbuffers::ET_INT, 0, 0 },
7229 { flatbuffers::ET_INT, 0, 0 },
7230 { flatbuffers::ET_INT, 0, 0 },
7231 { flatbuffers::ET_INT, 0, 0 },
7232 { flatbuffers::ET_INT, 0, 0 },
7233 { flatbuffers::ET_INT, 0, 0 },
7234 { flatbuffers::ET_INT, 0, 0 },
7235 { flatbuffers::ET_INT, 0, 0 },
7236 { flatbuffers::ET_INT, 0, 0 },
7237 { flatbuffers::ET_INT, 0, 0 },
7238 { flatbuffers::ET_INT, 0, 0 },
7239 { flatbuffers::ET_INT, 0, 0 },
7240 { flatbuffers::ET_INT, 0, 0 },
7241 { flatbuffers::ET_INT, 0, 0 },
7242 { flatbuffers::ET_INT, 0, 0 },
7243 { flatbuffers::ET_INT, 0, 0 },
7244 { flatbuffers::ET_INT, 0, 0 },
7245 { flatbuffers::ET_INT, 0, 0 },
7246 { flatbuffers::ET_INT, 0, 0 },
7247 { flatbuffers::ET_INT, 0, 0 },
7248 { flatbuffers::ET_INT, 0, 0 },
7249 { flatbuffers::ET_INT, 0, 0 },
7250 { flatbuffers::ET_INT, 0, 0 },
7251 { flatbuffers::ET_INT, 0, 0 },
7252 { flatbuffers::ET_INT, 0, 0 },
7253 { flatbuffers::ET_INT, 0, 0 },
7254 { flatbuffers::ET_INT, 0, 0 },
7255 { flatbuffers::ET_INT, 0, 0 },
7256 { flatbuffers::ET_INT, 0, 0 },
7257 { flatbuffers::ET_INT, 0, 0 },
7258 { flatbuffers::ET_INT, 0, 0 },
7259 { flatbuffers::ET_INT, 0, 0 },
7260 { flatbuffers::ET_INT, 0, 0 },
7261 { flatbuffers::ET_INT, 0, 0 },
7262 { flatbuffers::ET_INT, 0, 0 },
7263 { flatbuffers::ET_INT, 0, 0 },
7264 { flatbuffers::ET_INT, 0, 0 },
7265 { flatbuffers::ET_INT, 0, 0 },
7266 { flatbuffers::ET_INT, 0, 0 },
7267 { flatbuffers::ET_INT, 0, 0 }
7268 };
7269 static const flatbuffers::TypeFunction type_refs[] = {
7270 OpTypeTypeTable
7271 };
7272 static const int64_t values[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 512, 513, 514, 515, 516, 517, 518, 600, 601, 603, 604 };
7273 static const char * const names[] = {
7274 "AbsVal",
7275 "QuantizedAdd",
7276 "ArgMax",
7277 "AsString",
7278 "InstanceNorm",
7279 "BatchToSpaceND",
7280 "Bias",
7281 "BinaryOp",
7282 "Bnll",
7283 "Cast",
7284 "Concat",
7285 "Const",
7286 "Convolution",
7287 "ConvolutionDepthwise",
7288 "Crop",
7289 "CropAndResize",
7290 "Cubic",
7291 "Deconvolution",
7292 "DeconvolutionDepthwise",
7293 "Dequantize",
7294 "DetectionOutput",
7295 "Dropout",
7296 "Eltwise",
7297 "ELU",
7298 "Embed",
7299 "Exp",
7300 "ExpandDims",
7301 "Fill",
7302 "Flatten",
7303 "FloorMod",
7304 "Gather",
7305 "GatherV2",
7306 "Im2Seq",
7307 "InnerProduct",
7308 "Input",
7309 "Interp",
7310 "Log",
7311 "LRN",
7312 "LSTM",
7313 "MatMul",
7314 "MVN",
7315 "NonMaxSuppression",
7316 "NonMaxSuppressionV2",
7317 "Normalize",
7318 "Pack",
7319 "Padding",
7320 "Permute",
7321 "Pooling",
7322 "Power",
7323 "PReLU",
7324 "PriorBox",
7325 "Proposal",
7326 "QuantizedAvgPool",
7327 "QuantizedBiasAdd",
7328 "QuantizedConcat",
7329 "QuantizedDepthwiseConv2D",
7330 "QuantizedLogistic",
7331 "QuantizedMatMul",
7332 "QuantizedMaxPool",
7333 "QuantizedRelu",
7334 "QuantizedRelu6",
7335 "QuantizedReshape",
7336 "QuantizedSoftmax",
7337 "QuantizeMaxMin",
7338 "QuantizeV2",
7339 "Range",
7340 "Rank",
7341 "ReduceJoin",
7342 "Reduction",
7343 "ReLU",
7344 "ReLU6",
7345 "RequantizationRange",
7346 "Requantize",
7347 "Reshape",
7348 "Resize",
7349 "RNN",
7350 "ROIPooling",
7351 "Scale",
7352 "Selu",
7353 "Seq2Out",
7354 "Shape",
7355 "Sigmoid",
7356 "Size",
7357 "Slice",
7358 "SliceTf",
7359 "Softmax",
7360 "SpaceToBatchND",
7361 "SpatialProduct",
7362 "Split",
7363 "SPP",
7364 "Squeeze",
7365 "StridedSlice",
7366 "StringJoin",
7367 "StringSplit",
7368 "StringToNumber",
7369 "TanH",
7370 "TfQuantizedConv2D",
7371 "Threshold",
7372 "Tile",
7373 "TopKV2",
7374 "Transpose",
7375 "UnaryOp",
7376 "Unpack",
7377 "Where",
7378 "Moments",
7379 "RNNSequenceGRU",
7380 "BatchMatMul",
7381 "Unsqueeze",
7382 "CosineSimilarity",
7383 "DepthToSpace",
7384 "SpaceToDepth",
7385 "ReverseSequence",
7386 "Pooling3D",
7387 "Convolution3D",
7388 "MatrixBandPart",
7389 "GatherND",
7390 "DetectionPostProcess",
7391 "UnravelIndex",
7392 "ScatterNd",
7393 "OneHot",
7394 "BroadcastTo",
7395 "Dilation2D",
7396 "Raster",
7397 "ConvertTensor",
7398 "ArgMin",
7399 "LinSpace",
7400 "RandomUniform",
7401 "TensorArray",
7402 "TensorArraySize",
7403 "TensorArrayRead",
7404 "TensorArrayWrite",
7405 "TensorArrayGather",
7406 "TensorArrayScatter",
7407 "TensorArraySplit",
7408 "TensorArrayConcat",
7409 "LSTMBlockCell",
7410 "Reverse",
7411 "Plugin",
7412 "Select",
7413 "ZerosLike",
7414 "Broastcast",
7415 "SetDiff1D",
7416 "ReluGrad",
7417 "Relu6Grad",
7418 "PoolGrad",
7419 "SoftmaxGrad",
7420 "Conv2DBackPropFilter",
7421 "TrainableParam",
7422 "BatchNorm",
7423 "ZeroGrad",
7424 "Extra",
7425 "ConvInt8",
7426 "Int8ToFloat",
7427 "DepthwiseConvInt8",
7428 "PoolInt8",
7429 "FloatToInt8",
7430 "EltwiseInt8",
7431 "While",
7432 "If",
7433 "LayerNorm",
7434 "GridSample"
7435 };
7436 static const flatbuffers::TypeTable tt = {
7437 flatbuffers::ST_ENUM, 161, type_codes, type_refs, values, names
7438 };
7439 return &tt;
7440 }
7441
7442 inline const flatbuffers::TypeTable *OpParameterTypeTable() {
7443 static const flatbuffers::TypeCode type_codes[] = {
7444 { flatbuffers::ET_SEQUENCE, 0, -1 },
7445 { flatbuffers::ET_SEQUENCE, 0, 0 },
7446 { flatbuffers::ET_SEQUENCE, 0, 1 },
7447 { flatbuffers::ET_SEQUENCE, 0, 2 },
7448 { flatbuffers::ET_SEQUENCE, 0, 3 },
7449 { flatbuffers::ET_SEQUENCE, 0, 4 },
7450 { flatbuffers::ET_SEQUENCE, 0, 5 },
7451 { flatbuffers::ET_SEQUENCE, 0, 6 },
7452 { flatbuffers::ET_SEQUENCE, 0, 7 },
7453 { flatbuffers::ET_SEQUENCE, 0, 8 },
7454 { flatbuffers::ET_SEQUENCE, 0, 9 },
7455 { flatbuffers::ET_SEQUENCE, 0, 10 },
7456 { flatbuffers::ET_SEQUENCE, 0, 11 },
7457 { flatbuffers::ET_SEQUENCE, 0, 12 },
7458 { flatbuffers::ET_SEQUENCE, 0, 13 },
7459 { flatbuffers::ET_SEQUENCE, 0, 14 },
7460 { flatbuffers::ET_SEQUENCE, 0, 15 },
7461 { flatbuffers::ET_SEQUENCE, 0, 16 },
7462 { flatbuffers::ET_SEQUENCE, 0, 17 },
7463 { flatbuffers::ET_SEQUENCE, 0, 18 },
7464 { flatbuffers::ET_SEQUENCE, 0, 19 },
7465 { flatbuffers::ET_SEQUENCE, 0, 20 },
7466 { flatbuffers::ET_SEQUENCE, 0, 21 },
7467 { flatbuffers::ET_SEQUENCE, 0, 22 },
7468 { flatbuffers::ET_SEQUENCE, 0, 23 },
7469 { flatbuffers::ET_SEQUENCE, 0, 24 },
7470 { flatbuffers::ET_SEQUENCE, 0, 25 },
7471 { flatbuffers::ET_SEQUENCE, 0, 26 },
7472 { flatbuffers::ET_SEQUENCE, 0, 27 },
7473 { flatbuffers::ET_SEQUENCE, 0, 28 },
7474 { flatbuffers::ET_SEQUENCE, 0, 29 },
7475 { flatbuffers::ET_SEQUENCE, 0, 30 },
7476 { flatbuffers::ET_SEQUENCE, 0, 31 },
7477 { flatbuffers::ET_SEQUENCE, 0, 32 },
7478 { flatbuffers::ET_SEQUENCE, 0, 33 },
7479 { flatbuffers::ET_SEQUENCE, 0, 34 },
7480 { flatbuffers::ET_SEQUENCE, 0, 35 },
7481 { flatbuffers::ET_SEQUENCE, 0, 36 },
7482 { flatbuffers::ET_SEQUENCE, 0, 37 },
7483 { flatbuffers::ET_SEQUENCE, 0, 38 },
7484 { flatbuffers::ET_SEQUENCE, 0, 39 },
7485 { flatbuffers::ET_SEQUENCE, 0, 40 },
7486 { flatbuffers::ET_SEQUENCE, 0, 41 },
7487 { flatbuffers::ET_SEQUENCE, 0, 42 },
7488 { flatbuffers::ET_SEQUENCE, 0, 43 },
7489 { flatbuffers::ET_SEQUENCE, 0, 44 },
7490 { flatbuffers::ET_SEQUENCE, 0, 45 },
7491 { flatbuffers::ET_SEQUENCE, 0, 46 },
7492 { flatbuffers::ET_SEQUENCE, 0, 47 },
7493 { flatbuffers::ET_SEQUENCE, 0, 48 },
7494 { flatbuffers::ET_SEQUENCE, 0, 49 },
7495 { flatbuffers::ET_SEQUENCE, 0, 50 },
7496 { flatbuffers::ET_SEQUENCE, 0, 51 },
7497 { flatbuffers::ET_SEQUENCE, 0, 52 },
7498 { flatbuffers::ET_SEQUENCE, 0, 53 },
7499 { flatbuffers::ET_SEQUENCE, 0, 54 },
7500 { flatbuffers::ET_SEQUENCE, 0, 55 },
7501 { flatbuffers::ET_SEQUENCE, 0, 56 },
7502 { flatbuffers::ET_SEQUENCE, 0, 57 },
7503 { flatbuffers::ET_SEQUENCE, 0, 58 },
7504 { flatbuffers::ET_SEQUENCE, 0, 59 },
7505 { flatbuffers::ET_SEQUENCE, 0, 60 },
7506 { flatbuffers::ET_SEQUENCE, 0, 61 },
7507 { flatbuffers::ET_SEQUENCE, 0, 62 },
7508 { flatbuffers::ET_SEQUENCE, 0, 63 },
7509 { flatbuffers::ET_SEQUENCE, 0, 64 },
7510 { flatbuffers::ET_SEQUENCE, 0, 65 },
7511 { flatbuffers::ET_SEQUENCE, 0, 66 },
7512 { flatbuffers::ET_SEQUENCE, 0, 67 },
7513 { flatbuffers::ET_SEQUENCE, 0, 68 },
7514 { flatbuffers::ET_SEQUENCE, 0, 69 },
7515 { flatbuffers::ET_SEQUENCE, 0, 70 },
7516 { flatbuffers::ET_SEQUENCE, 0, 71 },
7517 { flatbuffers::ET_SEQUENCE, 0, 72 },
7518 { flatbuffers::ET_SEQUENCE, 0, 73 },
7519 { flatbuffers::ET_SEQUENCE, 0, 74 },
7520 { flatbuffers::ET_SEQUENCE, 0, 75 },
7521 { flatbuffers::ET_SEQUENCE, 0, 76 },
7522 { flatbuffers::ET_SEQUENCE, 0, 77 },
7523 { flatbuffers::ET_SEQUENCE, 0, 78 },
7524 { flatbuffers::ET_SEQUENCE, 0, 79 },
7525 { flatbuffers::ET_SEQUENCE, 0, 80 },
7526 { flatbuffers::ET_SEQUENCE, 0, 81 },
7527 { flatbuffers::ET_SEQUENCE, 0, 82 },
7528 { flatbuffers::ET_SEQUENCE, 0, 83 },
7529 { flatbuffers::ET_SEQUENCE, 0, 84 },
7530 { flatbuffers::ET_SEQUENCE, 0, 85 },
7531 { flatbuffers::ET_SEQUENCE, 0, 86 },
7532 { flatbuffers::ET_SEQUENCE, 0, 87 },
7533 { flatbuffers::ET_SEQUENCE, 0, 88 },
7534 { flatbuffers::ET_SEQUENCE, 0, 89 },
7535 { flatbuffers::ET_SEQUENCE, 0, 90 },
7536 { flatbuffers::ET_SEQUENCE, 0, 91 }
7537 };
7538 static const flatbuffers::TypeFunction type_refs[] = {
7539 QuantizedAddTypeTable,
7540 ArgMaxTypeTable,
7541 AsStringTypeTable,
7542 AxisTypeTable,
7543 BatchNormTypeTable,
7544 BinaryOpTypeTable,
7545 BlobTypeTable,
7546 CastParamTypeTable,
7547 Convolution2DTypeTable,
7548 CropTypeTable,
7549 CropAndResizeTypeTable,
7550 DequantizeTypeTable,
7551 DetectionOutputTypeTable,
7552 EltwiseTypeTable,
7553 ExpandDimsTypeTable,
7554 FillTypeTable,
7555 FlattenTypeTable,
7556 GatherTypeTable,
7557 GatherV2TypeTable,
7558 InnerProductTypeTable,
7559 InputTypeTable,
7560 InterpTypeTable,
7561 LRNTypeTable,
7562 LSTMTypeTable,
7563 MatMulTypeTable,
7564 NonMaxSuppressionV2TypeTable,
7565 NormalizeTypeTable,
7566 PackParamTypeTable,
7567 PermuteTypeTable,
7568 PluginTypeTable,
7569 PoolTypeTable,
7570 PReluTypeTable,
7571 PriorBoxTypeTable,
7572 ProposalTypeTable,
7573 QuantizedAvgPoolTypeTable,
7574 QuantizedBiasAddTypeTable,
7575 QuantizedConcatTypeTable,
7576 QuantizedLogisticTypeTable,
7577 QuantizedMatMulTypeTable,
7578 QuantizedMaxPoolTypeTable,
7579 QuantizedReluTypeTable,
7580 QuantizedRelu6TypeTable,
7581 QuantizedReshapeTypeTable,
7582 QuantizedSoftmaxTypeTable,
7583 QuantizeMaxMinTypeTable,
7584 QuantizeV2TypeTable,
7585 RangeTypeTable,
7586 RankTypeTable,
7587 ReduceJoinTypeTable,
7588 ReductionParamTypeTable,
7589 ReluTypeTable,
7590 Relu6TypeTable,
7591 RequantizationRangeTypeTable,
7592 RequantizeTypeTable,
7593 ReshapeTypeTable,
7594 ResizeTypeTable,
7595 RoiPoolingTypeTable,
7596 ScaleTypeTable,
7597 SeluTypeTable,
7598 SizeTypeTable,
7599 SliceTypeTable,
7600 SliceTfTypeTable,
7601 SpaceBatchTypeTable,
7602 SqueezeParamTypeTable,
7603 StridedSliceParamTypeTable,
7604 TensorConvertInfoTypeTable,
7605 TfQuantizedConv2DTypeTable,
7606 TopKV2TypeTable,
7607 TransposeTypeTable,
7608 UnaryOpTypeTable,
7609 MomentsParamTypeTable,
7610 RNNParamTypeTable,
7611 BatchMatMulParamTypeTable,
7612 QuantizedFloatParamTypeTable,
7613 DepthSpaceParamTypeTable,
7614 EltwiseInt8TypeTable,
7615 ReverseSequenceParamTypeTable,
7616 ExtraTypeTable,
7617 Pool3DTypeTable,
7618 Convolution3DTypeTable,
7619 ELUTypeTable,
7620 DetectionPostProcessParamTypeTable,
7621 OneHotParamTypeTable,
7622 PadParamTypeTable,
7623 WhileParamTypeTable,
7624 IfParamTypeTable,
7625 RandomUniformTypeTable,
7626 LayerNormTypeTable,
7627 TensorArrayTypeTable,
7628 LSTMBlockCellTypeTable,
7629 GridSampleTypeTable,
7630 LoopParamTypeTable
7631 };
7632 static const char * const names[] = {
7633 "NONE",
7634 "QuantizedAdd",
7635 "ArgMax",
7636 "AsString",
7637 "Axis",
7638 "BatchNorm",
7639 "BinaryOp",
7640 "Blob",
7641 "CastParam",
7642 "Convolution2D",
7643 "Crop",
7644 "CropAndResize",
7645 "Dequantize",
7646 "DetectionOutput",
7647 "Eltwise",
7648 "ExpandDims",
7649 "Fill",
7650 "Flatten",
7651 "Gather",
7652 "GatherV2",
7653 "InnerProduct",
7654 "Input",
7655 "Interp",
7656 "LRN",
7657 "LSTM",
7658 "MatMul",
7659 "NonMaxSuppressionV2",
7660 "Normalize",
7661 "PackParam",
7662 "Permute",
7663 "Plugin",
7664 "Pool",
7665 "PRelu",
7666 "PriorBox",
7667 "Proposal",
7668 "QuantizedAvgPool",
7669 "QuantizedBiasAdd",
7670 "QuantizedConcat",
7671 "QuantizedLogistic",
7672 "QuantizedMatMul",
7673 "QuantizedMaxPool",
7674 "QuantizedRelu",
7675 "QuantizedRelu6",
7676 "QuantizedReshape",
7677 "QuantizedSoftmax",
7678 "QuantizeMaxMin",
7679 "QuantizeV2",
7680 "Range",
7681 "Rank",
7682 "ReduceJoin",
7683 "ReductionParam",
7684 "Relu",
7685 "Relu6",
7686 "RequantizationRange",
7687 "Requantize",
7688 "Reshape",
7689 "Resize",
7690 "RoiPooling",
7691 "Scale",
7692 "Selu",
7693 "Size",
7694 "Slice",
7695 "SliceTf",
7696 "SpaceBatch",
7697 "SqueezeParam",
7698 "StridedSliceParam",
7699 "TensorConvertInfo",
7700 "TfQuantizedConv2D",
7701 "TopKV2",
7702 "Transpose",
7703 "UnaryOp",
7704 "MomentsParam",
7705 "RNNParam",
7706 "BatchMatMulParam",
7707 "QuantizedFloatParam",
7708 "DepthSpaceParam",
7709 "EltwiseInt8",
7710 "ReverseSequenceParam",
7711 "Extra",
7712 "Pool3D",
7713 "Convolution3D",
7714 "ELU",
7715 "DetectionPostProcessParam",
7716 "OneHotParam",
7717 "PadParam",
7718 "WhileParam",
7719 "IfParam",
7720 "RandomUniform",
7721 "LayerNorm",
7722 "TensorArray",
7723 "LSTMBlockCell",
7724 "GridSample",
7725 "LoopParam"
7726 };
7727 static const flatbuffers::TypeTable tt = {
7728 flatbuffers::ST_UNION, 93, type_codes, type_refs, nullptr, names
7729 };
7730 return &tt;
7731 }
7732
7733 inline const flatbuffers::TypeTable *ForwardTypeTypeTable() {
7734 static const flatbuffers::TypeCode type_codes[] = {
7735 { flatbuffers::ET_CHAR, 0, 0 },
7736 { flatbuffers::ET_CHAR, 0, 0 },
7737 { flatbuffers::ET_CHAR, 0, 0 },
7738 { flatbuffers::ET_CHAR, 0, 0 },
7739 { flatbuffers::ET_CHAR, 0, 0 }
7740 };
7741 static const flatbuffers::TypeFunction type_refs[] = {
7742 ForwardTypeTypeTable
7743 };
7744 static const char * const names[] = {
7745 "CPU",
7746 "METAL",
7747 "OPENCL",
7748 "OPENGLES",
7749 "VULKAN"
7750 };
7751 static const flatbuffers::TypeTable tt = {
7752 flatbuffers::ST_ENUM, 5, type_codes, type_refs, nullptr, names
7753 };
7754 return &tt;
7755 }
7756
7757 inline const flatbuffers::TypeTable *UsageTypeTable() {
7758 static const flatbuffers::TypeCode type_codes[] = {
7759 { flatbuffers::ET_CHAR, 0, 0 },
7760 { flatbuffers::ET_CHAR, 0, 0 },
7761 { flatbuffers::ET_CHAR, 0, 0 }
7762 };
7763 static const flatbuffers::TypeFunction type_refs[] = {
7764 UsageTypeTable
7765 };
7766 static const char * const names[] = {
7767 "INFERENCE",
7768 "TRAIN",
7769 "INFERENCE_STATIC"
7770 };
7771 static const flatbuffers::TypeTable tt = {
7772 flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, names
7773 };
7774 return &tt;
7775 }
7776
7777 inline const flatbuffers::TypeTable *PluginTypeTable() {
7778 static const flatbuffers::TypeCode type_codes[] = {
7779 { flatbuffers::ET_STRING, 0, -1 },
7780 { flatbuffers::ET_SEQUENCE, 1, 0 }
7781 };
7782 static const flatbuffers::TypeFunction type_refs[] = {
7783 AttributeTypeTable
7784 };
7785 static const char * const names[] = {
7786 "type",
7787 "attr"
7788 };
7789 static const flatbuffers::TypeTable tt = {
7790 flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, names
7791 };
7792 return &tt;
7793 }
7794
7795 inline const flatbuffers::TypeTable *ExtraTypeTable() {
7796 static const flatbuffers::TypeCode type_codes[] = {
7797 { flatbuffers::ET_STRING, 0, -1 },
7798 { flatbuffers::ET_STRING, 0, -1 },
7799 { flatbuffers::ET_CHAR, 1, -1 },
7800 { flatbuffers::ET_SEQUENCE, 1, 0 }
7801 };
7802 static const flatbuffers::TypeFunction type_refs[] = {
7803 AttributeTypeTable
7804 };
7805 static const char * const names[] = {
7806 "type",
7807 "engine",
7808 "info",
7809 "attr"
7810 };
7811 static const flatbuffers::TypeTable tt = {
7812 flatbuffers::ST_TABLE, 4, type_codes, type_refs, nullptr, names
7813 };
7814 return &tt;
7815 }
7816
7817 inline const flatbuffers::TypeTable *StringVecTypeTable() {
7818 static const flatbuffers::TypeCode type_codes[] = {
7819 { flatbuffers::ET_STRING, 1, -1 }
7820 };
7821 static const char * const names[] = {
7822 "data"
7823 };
7824 static const flatbuffers::TypeTable tt = {
7825 flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, names
7826 };
7827 return &tt;
7828 }
7829
7830 inline const flatbuffers::TypeTable *WhileParamTypeTable() {
7831 static const flatbuffers::TypeCode type_codes[] = {
7832 { flatbuffers::ET_STRING, 0, -1 },
7833 { flatbuffers::ET_STRING, 0, -1 },
7834 { flatbuffers::ET_SEQUENCE, 1, 0 },
7835 { flatbuffers::ET_STRING, 1, -1 },
7836 { flatbuffers::ET_SEQUENCE, 1, 0 }
7837 };
7838 static const flatbuffers::TypeFunction type_refs[] = {
7839 StringVecTypeTable
7840 };
7841 static const char * const names[] = {
7842 "cond_graph",
7843 "body_graph",
7844 "aliases_inputs",
7845 "aliases_outputs",
7846 "aliases_updates"
7847 };
7848 static const flatbuffers::TypeTable tt = {
7849 flatbuffers::ST_TABLE, 5, type_codes, type_refs, nullptr, names
7850 };
7851 return &tt;
7852 }
7853
7854 inline const flatbuffers::TypeTable *IfParamTypeTable() {
7855 static const flatbuffers::TypeCode type_codes[] = {
7856 { flatbuffers::ET_STRING, 0, -1 },
7857 { flatbuffers::ET_STRING, 0, -1 },
7858 { flatbuffers::ET_SEQUENCE, 1, 0 },
7859 { flatbuffers::ET_SEQUENCE, 1, 0 }
7860 };
7861 static const flatbuffers::TypeFunction type_refs[] = {
7862 StringVecTypeTable
7863 };
7864 static const char * const names[] = {
7865 "then_graph",
7866 "else_graph",
7867 "aliases_inputs",
7868 "aliases_outputs"
7869 };
7870 static const flatbuffers::TypeTable tt = {
7871 flatbuffers::ST_TABLE, 4, type_codes, type_refs, nullptr, names
7872 };
7873 return &tt;
7874 }
7875
7876 inline const flatbuffers::TypeTable *RegionCommandTypeTable() {
7877 static const flatbuffers::TypeCode type_codes[] = {
7878 { flatbuffers::ET_SEQUENCE, 0, 0 },
7879 { flatbuffers::ET_INT, 1, -1 },
7880 { flatbuffers::ET_INT, 1, -1 },
7881 { flatbuffers::ET_INT, 1, -1 },
7882 { flatbuffers::ET_SEQUENCE, 1, 1 },
7883 { flatbuffers::ET_INT, 0, -1 },
7884 { flatbuffers::ET_INT, 1, -1 }
7885 };
7886 static const flatbuffers::TypeFunction type_refs[] = {
7887 OpTypeTable,
7888 ViewTypeTable
7889 };
7890 static const char * const names[] = {
7891 "op",
7892 "steps",
7893 "size",
7894 "indexes",
7895 "view",
7896 "fuse",
7897 "iterIndexes"
7898 };
7899 static const flatbuffers::TypeTable tt = {
7900 flatbuffers::ST_TABLE, 7, type_codes, type_refs, nullptr, names
7901 };
7902 return &tt;
7903 }
7904
7905 inline const flatbuffers::TypeTable *LoopParamTypeTable() {
7906 static const flatbuffers::TypeCode type_codes[] = {
7907 { flatbuffers::ET_INT, 0, -1 },
7908 { flatbuffers::ET_INT, 1, -1 },
7909 { flatbuffers::ET_INT, 1, -1 },
7910 { flatbuffers::ET_SEQUENCE, 1, 0 },
7911 { flatbuffers::ET_BOOL, 0, -1 },
7912 { flatbuffers::ET_INT, 0, -1 },
7913 { flatbuffers::ET_SEQUENCE, 1, 1 }
7914 };
7915 static const flatbuffers::TypeFunction type_refs[] = {
7916 TensorDescribeTypeTable,
7917 RegionCommandTypeTable
7918 };
7919 static const char * const names[] = {
7920 "tensorNumber",
7921 "outputIndexes",
7922 "inputIndexes",
7923 "midTensors",
7924 "parallel",
7925 "loopNumber",
7926 "commands"
7927 };
7928 static const flatbuffers::TypeTable tt = {
7929 flatbuffers::ST_TABLE, 7, type_codes, type_refs, nullptr, names
7930 };
7931 return &tt;
7932 }
7933
7934 inline const flatbuffers::TypeTable *OpTypeTable() {
7935 static const flatbuffers::TypeCode type_codes[] = {
7936 { flatbuffers::ET_INT, 1, -1 },
7937 { flatbuffers::ET_UTYPE, 0, 0 },
7938 { flatbuffers::ET_SEQUENCE, 0, 0 },
7939 { flatbuffers::ET_STRING, 0, -1 },
7940 { flatbuffers::ET_INT, 1, -1 },
7941 { flatbuffers::ET_INT, 0, 1 },
7942 { flatbuffers::ET_CHAR, 0, 2 }
7943 };
7944 static const flatbuffers::TypeFunction type_refs[] = {
7945 OpParameterTypeTable,
7946 OpTypeTypeTable,
7947 MNN_DATA_FORMATTypeTable
7948 };
7949 static const char * const names[] = {
7950 "inputIndexes",
7951 "main_type",
7952 "main",
7953 "name",
7954 "outputIndexes",
7955 "type",
7956 "defaultDimentionFormat"
7957 };
7958 static const flatbuffers::TypeTable tt = {
7959 flatbuffers::ST_TABLE, 7, type_codes, type_refs, nullptr, names
7960 };
7961 return &tt;
7962 }
7963
7964 inline const flatbuffers::TypeTable *ViewTypeTable() {
7965 static const flatbuffers::TypeCode type_codes[] = {
7966 { flatbuffers::ET_INT, 0, -1 },
7967 { flatbuffers::ET_INT, 1, -1 }
7968 };
7969 static const char * const names[] = {
7970 "offset",
7971 "stride"
7972 };
7973 static const flatbuffers::TypeTable tt = {
7974 flatbuffers::ST_TABLE, 2, type_codes, nullptr, nullptr, names
7975 };
7976 return &tt;
7977 }
7978
7979 inline const flatbuffers::TypeTable *RegionTypeTable() {
7980 static const flatbuffers::TypeCode type_codes[] = {
7981 { flatbuffers::ET_SEQUENCE, 0, 0 },
7982 { flatbuffers::ET_SEQUENCE, 0, 0 },
7983 { flatbuffers::ET_INT, 1, -1 },
7984 { flatbuffers::ET_INT, 0, -1 }
7985 };
7986 static const flatbuffers::TypeFunction type_refs[] = {
7987 ViewTypeTable
7988 };
7989 static const char * const names[] = {
7990 "src",
7991 "dst",
7992 "size",
7993 "origin"
7994 };
7995 static const flatbuffers::TypeTable tt = {
7996 flatbuffers::ST_TABLE, 4, type_codes, type_refs, nullptr, names
7997 };
7998 return &tt;
7999 }
8000
8001 inline const flatbuffers::TypeTable *TensorDescribeTypeTable() {
8002 static const flatbuffers::TypeCode type_codes[] = {
8003 { flatbuffers::ET_SEQUENCE, 0, 0 },
8004 { flatbuffers::ET_INT, 0, -1 },
8005 { flatbuffers::ET_STRING, 0, -1 },
8006 { flatbuffers::ET_SEQUENCE, 1, 1 },
8007 { flatbuffers::ET_SEQUENCE, 0, 2 }
8008 };
8009 static const flatbuffers::TypeFunction type_refs[] = {
8010 BlobTypeTable,
8011 RegionTypeTable,
8012 TensorQuantInfoTypeTable
8013 };
8014 static const char * const names[] = {
8015 "blob",
8016 "index",
8017 "name",
8018 "regions",
8019 "quantInfo"
8020 };
8021 static const flatbuffers::TypeTable tt = {
8022 flatbuffers::ST_TABLE, 5, type_codes, type_refs, nullptr, names
8023 };
8024 return &tt;
8025 }
8026
8027 inline const flatbuffers::TypeTable *SubGraphProtoTypeTable() {
8028 static const flatbuffers::TypeCode type_codes[] = {
8029 { flatbuffers::ET_STRING, 0, -1 },
8030 { flatbuffers::ET_INT, 1, -1 },
8031 { flatbuffers::ET_INT, 1, -1 },
8032 { flatbuffers::ET_STRING, 1, -1 },
8033 { flatbuffers::ET_SEQUENCE, 1, 0 },
8034 { flatbuffers::ET_SEQUENCE, 1, 1 }
8035 };
8036 static const flatbuffers::TypeFunction type_refs[] = {
8037 OpTypeTable,
8038 TensorDescribeTypeTable
8039 };
8040 static const char * const names[] = {
8041 "name",
8042 "inputs",
8043 "outputs",
8044 "tensors",
8045 "nodes",
8046 "extraTensorDescribe"
8047 };
8048 static const flatbuffers::TypeTable tt = {
8049 flatbuffers::ST_TABLE, 6, type_codes, type_refs, nullptr, names
8050 };
8051 return &tt;
8052 }
8053
8054 inline const flatbuffers::TypeTable *TensorQuantInfoTypeTable() {
8055 static const flatbuffers::TypeCode type_codes[] = {
8056 { flatbuffers::ET_FLOAT, 0, -1 },
8057 { flatbuffers::ET_FLOAT, 0, -1 },
8058 { flatbuffers::ET_FLOAT, 0, -1 },
8059 { flatbuffers::ET_FLOAT, 0, -1 },
8060 { flatbuffers::ET_INT, 0, 0 }
8061 };
8062 static const flatbuffers::TypeFunction type_refs[] = {
8063 DataTypeTypeTable
8064 };
8065 static const char * const names[] = {
8066 "scale",
8067 "zero",
8068 "min",
8069 "max",
8070 "type"
8071 };
8072 static const flatbuffers::TypeTable tt = {
8073 flatbuffers::ST_TABLE, 5, type_codes, type_refs, nullptr, names
8074 };
8075 return &tt;
8076 }
8077
8078 inline const flatbuffers::TypeTable *NetTypeTable() {
8079 static const flatbuffers::TypeCode type_codes[] = {
8080 { flatbuffers::ET_STRING, 0, -1 },
8081 { flatbuffers::ET_SEQUENCE, 1, 0 },
8082 { flatbuffers::ET_SEQUENCE, 0, 1 },
8083 { flatbuffers::ET_SEQUENCE, 1, 2 },
8084 { flatbuffers::ET_STRING, 1, -1 },
8085 { flatbuffers::ET_CHAR, 0, 3 },
8086 { flatbuffers::ET_CHAR, 0, 4 },
8087 { flatbuffers::ET_STRING, 1, -1 },
8088 { flatbuffers::ET_INT, 0, -1 },
8089 { flatbuffers::ET_CHAR, 0, 5 },
8090 { flatbuffers::ET_SEQUENCE, 1, 6 }
8091 };
8092 static const flatbuffers::TypeFunction type_refs[] = {
8093 TensorDescribeTypeTable,
8094 GpuLibraryTypeTable,
8095 OpTypeTable,
8096 ForwardTypeTypeTable,
8097 NetSourceTypeTable,
8098 UsageTypeTable,
8099 SubGraphProtoTypeTable
8100 };
8101 static const char * const names[] = {
8102 "bizCode",
8103 "extraTensorDescribe",
8104 "gpulibrary",
8105 "oplists",
8106 "outputName",
8107 "preferForwardType",
8108 "sourceType",
8109 "tensorName",
8110 "tensorNumber",
8111 "usage",
8112 "subgraphs"
8113 };
8114 static const flatbuffers::TypeTable tt = {
8115 flatbuffers::ST_TABLE, 11, type_codes, type_refs, nullptr, names
8116 };
8117 return &tt;
8118 }
8119
8120 inline const MNN::Net *GetNet(const void *buf) {
8121 return flatbuffers::GetRoot<MNN::Net>(buf);
8122 }
8123
8124 inline const MNN::Net *GetSizePrefixedNet(const void *buf) {
8125 return flatbuffers::GetSizePrefixedRoot<MNN::Net>(buf);
8126 }
8127
8128 inline bool VerifyNetBuffer(
8129 flatbuffers::Verifier &verifier) {
8130 return verifier.VerifyBuffer<MNN::Net>(nullptr);
8131 }
8132
8133 inline bool VerifySizePrefixedNetBuffer(
8134 flatbuffers::Verifier &verifier) {
8135 return verifier.VerifySizePrefixedBuffer<MNN::Net>(nullptr);
8136 }
8137
8138 inline void FinishNetBuffer(
8139 flatbuffers::FlatBufferBuilder &fbb,
8140 flatbuffers::Offset<MNN::Net> root) {
8141 fbb.Finish(root);
8142 }
8143
8144 inline void FinishSizePrefixedNetBuffer(
8145 flatbuffers::FlatBufferBuilder &fbb,
8146 flatbuffers::Offset<MNN::Net> root) {
8147 fbb.FinishSizePrefixed(root);
8148 }
8149
8150 inline std::unique_ptr<NetT> UnPackNet(
8151 const void *buf,
8152 const flatbuffers::resolver_function_t *res = nullptr) {
8153 return std::unique_ptr<NetT>(GetNet(buf)->UnPack(res));
8154 }
8155
8156 } // namespace MNN
8157
8158 #endif // FLATBUFFERS_GENERATED_MNN_MNN_H_
8159