You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

schema_v2.fbs 5.3 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. include "dtype.fbs";
  2. include "opr_param_defs.fbs";
  3. include "mgb_opr_param_defs.fbs";
  4. include "mgb_cpp_opr.fbs";
  5. namespace mgb.serialization.fbs.v2;
  6. file_identifier "mge2";
  7. table CompNode {
  8. logical_locator:string;
  9. }
  10. table DefaultTensorFormat{}
  11. table Image2DPackedTensorFormat{
  12. align_axis: ubyte;
  13. }
  14. table LowbitsAlignedTensorFormat{
  15. size_nbits: ubyte;
  16. align_size_in_bits: ubyte;
  17. }
  18. /// The Tensor Format
  19. union TensorFormat {
  20. DefaultTensorFormat = 1,
  21. Image2DPackedTensorFormat = 2,
  22. LowbitsAlignedTensorFormat = 3,
  23. }
  24. /// Opaque byte buffer defined by operator implementation
  25. table Blob {
  26. data:[ubyte];
  27. }
  28. table Tensor {
  29. name:string;
  30. shape:[uint];
  31. comp_node:CompNode;
  32. dtype:DType;
  33. format:TensorFormat;
  34. /// The tensor raw data
  35. data:[ubyte];
  36. }
  37. table Reserved0 {}
  38. table DeprecatedParam {}
  39. union OperatorParam {
  40. param.Empty = 1,
  41. param.Axis = 2,
  42. param.Convolution = 3,
  43. param.MaskPropagate = 4,
  44. param.ConvPooling = 5,
  45. param.ConvBias = 6,
  46. param.SeparableConv = 7,
  47. param.Images2Neibs = 8,
  48. param.Pooling = 9,
  49. param.LRN = 10,
  50. param.BN = 11,
  51. param.ROIPooling = 12,
  52. param.WarpPerspective = 13,
  53. param.SpatialTfGridGenerator = 14,
  54. param.SpatialTfSampler = 15,
  55. param.MGBAddUpdate = 16,
  56. param.Elemwise = 17,
  57. param.ElemwiseMultiType = 18,
  58. param.PowC = 19,
  59. param.MatrixMul = 20,
  60. //Reserved for param.Winograd = 21,
  61. DeprecatedParam = 21,
  62. param.SVD = 22,
  63. param.Reduce = 23,
  64. param.Cumsum = 24,
  65. param.CondTake = 25,
  66. param.Argsort = 26,
  67. param.IndexingRemap = 27,
  68. param.MGBSleep = 28,
  69. param.Linspace = 29,
  70. param.LinspaceFull = 30,
  71. param.Eye = 31,
  72. param.UniformRNG = 32,
  73. param.GaussianRNG = 33,
  74. param.Flip = 34,
  75. param.Rotate = 35,
  76. param.ROICopy = 36,
  77. param.CvtColor = 37,
  78. param.WarpAffine = 38,
  79. param.GaussianBlur = 39,
  80. param.Resize = 40,
  81. param.Convolution3D = 41,
  82. param.Conv3DBias = 42,
  83. param.SeparableConv3D = 43,
  84. param.TopK = 44,
  85. param.RelayoutFormat = 45,
  86. param.SeparableFilter = 46,
  87. param.LocalShare = 47,
  88. param.ROIAlign = 48,
  89. param.DeformablePSROIPooling = 49,
  90. param.BatchConvBias = 50,
  91. param.DType = 51,
  92. param.PersistentOutputStorage = 52,
  93. param.OptionalAxis = 53,
  94. param.OptionalAxisV1 = 54,
  95. param.ExecutionPolicy = 55,
  96. param.AssertEqual = 56,
  97. param.FpgaConv = 57,
  98. param.CollectiveComm = 58,
  99. param.CondExecPred = 59,
  100. param.CondExecPredLogical = 60,
  101. param.CondExecMark = 61,
  102. param.CondExecMerge = 62,
  103. param.Host2DeviceCopy = 63,
  104. param.Dimshuffle = 64,
  105. param.AxisAddRemove = 65,
  106. param.IndexDescMaskDump = 66,
  107. DType = 67,
  108. param.Remap = 68,
  109. param.NMSKeep = 69,
  110. param.AdaptivePooling = 70,
  111. param.NvOf = 71,
  112. param.DctChannelSelect = 72,
  113. param.FakeQuant = 73,
  114. param.TQT = 74,
  115. param.Correlation = 75,
  116. param.LSQ = 76,
  117. param.GammaRNG = 77,
  118. param.PoissonRNG = 78,
  119. param.PermutationRNG = 79,
  120. param.BetaRNG = 80,
  121. param.SlidingWindowTranspose = 81,
  122. param.Padding = 82,
  123. param.ShuffleRNG = 83,
  124. param.CheckNonFinite = 84,
  125. param.LayerNorm = 85,
  126. param.Dropout = 86,
  127. param.RNNCell = 87,
  128. param.RNN = 88,
  129. param.LSTM = 89,
  130. param.Softmax = 90,
  131. param.Diag = 91,
  132. param.GroupNorm = 92,
  133. }
  134. table Operator {
  135. /// the Operator type id
  136. type:string;
  137. /// sometime type maybe not exist, so add type_id
  138. type_id:ulong;
  139. name:string;
  140. /// Operator parameter
  141. param:OperatorParam;
  142. /// Operator may want to save more than one OperatorParam
  143. additional_params:[OperatorParam];
  144. /// ID of the input tensor in the middle_tensors of a model
  145. inputs:[uint];
  146. /// ID of the output tensor in the middle_tensors of a model
  147. outputs:[uint];
  148. comp_node:[CompNode];
  149. output_dtype:DType;
  150. /// the const value in tensor format of the Operator
  151. tensors:[Tensor];
  152. /// opr version, with develop of MegEngine, some opr may have multi version
  153. opr_version:uint;
  154. /// the order of the Operator in the graph
  155. priority:int = 0;
  156. /// custom may want to save big, opaque byte buffers.
  157. custom_data:[Blob];
  158. }
  159. table Metadata {
  160. is_valid:bool;
  161. graph_modified:bool;
  162. optimize_options:ulong;
  163. user_info:string;
  164. }
  165. table MiddleTensor {
  166. name:string;
  167. shape:[uint];
  168. comp_node:CompNode;
  169. dtype:DType;
  170. format:TensorFormat;
  171. }
  172. table OutputVar {
  173. /// the id of the middle tensor in graph, the same as the inputs in Operator
  174. compact_id:uint;
  175. original_id:uint;
  176. }
  177. table OutputAlias {
  178. id:uint;
  179. name:string;
  180. }
  181. table Model {
  182. /// the megengine version when serialize the model
  183. mge_version:uint;
  184. /// model version, now model support:
  185. /// version v1: the original fbs serialization version
  186. /// version v2: support backward and poor forward compatibility
  187. model_version:uint;
  188. oprs:[Operator];
  189. /// the tensors produce and consume by the Operators, not the input or
  190. /// output tensor
  191. middle_tensors:[MiddleTensor];
  192. output_vars_idx:[OutputVar];
  193. output_alias:[OutputAlias];
  194. nr_shared_tensor:uint;
  195. /// the Metadata to storage the custom data or some flags
  196. metadata:Metadata;
  197. }
  198. root_type Model;