• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright 2021 Huawei Technologies Co., Ltd
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #ifndef MINDSPORE_LITE_TYPES_H
17 #define MINDSPORE_LITE_TYPES_H
18 #include <string>
19 namespace mindspore {
20 namespace lite {
21 
22 struct QuantParam {
23   int32_t zeroPoint;
24   double scale;
25   int numBits;
26 };
27 
28 enum DataType : int8_t {
29   DATA_TYPE_UNKNOWN = 0,
30   DATA_TYPE_BOOL = 30,
31   DATA_TYPE_INT8 = 32,
32   DATA_TYPE_INT16 = 33,
33   DATA_TYPE_INT32 = 34,
34   DATA_TYPE_INT64 = 35,
35   DATA_TYPE_UINT8 = 37,
36   DATA_TYPE_UINT16 = 38,
37   DATA_TYPE_UINT32 = 39,
38   DATA_TYPE_UINT64 = 40,
39   DATA_TYPE_FLOAT16 = 42,
40   DATA_TYPE_FLOAT32 = 43,
41   DATA_TYPE_FLOAT64 = 44,
42 };
43 
44 enum Format : int8_t {
45   FORMAT_NCHW = 0,
46   FORMAT_NHWC = 1,
47   FORMAT_NHWC4 = 2,
48   FORMAT_HWKC = 3,
49   FORMAT_HWCK = 4,
50   FORMAT_KCHW = 5,
51   FORMAT_CKHW = 6,
52   FORMAT_KHWC = 7,
53   FORMAT_CHWK = 8,
54   FORMAT_HW = 9,
55   FORMAT_HW4 = 10,
56   FORMAT_NC = 11,
57   FORMAT_NC4 = 12,
58   FORMAT_NC4HW4 = 13,
59   FORMAT_NUM_OF_FORMAT = 14,
60   FORMAT_NCDHW = 15,
61   FORMAT_NWC = 16,
62   FORMAT_NCW = 17,
63   FORMAT_NC8HW8 = 18,
64   FORMAT_MIN = FORMAT_NCHW,
65   FORMAT_MAX = FORMAT_NC8HW8
66 };
67 
68 enum QuantType : int8_t {
69   QUANT_TYPE_NONE = 0,
70   QUANT_TYPE_AWARETRAINING = 1,
71   QUANT_TYPE_WEIGHTQUANT = 2,
72   QUANT_TYPE_POSTTRAINING = 3,
73   QUANT_TYPE_WEIGHT = 4,
74   QUANT_TYPE_ALL = 5,
75   QUANT_TYPE_DYNAMIC = 6
76 };
77 
78 enum NodeType : uint32_t {
79   NODE_TYPE_NONE = 0,
80   NODE_TYPE_ABS = 1,
81   NODE_TYPE_ACTIVATION = 2,
82   NODE_TYPE_ADD_FUSION = 5,
83   NODE_TYPE_ALL = 9,
84   NODE_TYPE_ARGMAX_FUSION = 11,
85   NODE_TYPE_ASSERT = 13,
86   NODE_TYPE_AVG_POOL_FUSION = 17,
87   NODE_TYPE_BATCH_TO_SPACE = 21,
88   NODE_TYPE_BATCH_TO_SPACE_ND = 22,
89   NODE_TYPE_BIAS_ADD = 23,
90   NODE_TYPE_BROADCAST_TO = 27,
91   NODE_TYPE_CAST = 28,
92   NODE_TYPE_CEIL = 29,
93   NODE_TYPE_CLIP = 30,
94   NODE_TYPE_CONCAT = 31,
95   NODE_TYPE_CONV2D_FUSION = 35,
96   NODE_TYPE_CONV2D_TRANSPOSE_FUSION = 36,
97   NODE_TYPE_COS = 37,
98   NODE_TYPE_CONSTANT_OF_SHAPE = 38,
99   NODE_TYPE_CROP = 39,
100   NODE_TYPE_DEPEND = 44,
101   NODE_TYPE_DEPTH_TO_SPACE = 45,
102   NODE_TYPE_DETECTION_POST_PROCESS = 46,
103   NODE_TYPE_DIV_FUSION = 47,
104   NODE_TYPE_DROPOUT = 49,
105   NODE_TYPE_ELU = 51,
106   NODE_TYPE_ELTWISE = 52,
107   NODE_TYPE_EQUAL = 53,
108   NODE_TYPE_EMBEDDING_LOOKUP_FUSION = 54,
109   NODE_TYPE_EXPFUSION = 55,
110   NODE_TYPE_EXPAND_DIMS = 56,
111   NODE_TYPE_FAKE_QUANT_WITH_MIN_MAX_VARS = 57,
112   NODE_TYPE_FAKE_QUANT_WITH_MIN_MAX_VARS_PER_CHANNEL = 58,
113   NODE_TYPE_FFT_REAL = 59,
114   NODE_TYPE_FFT_IMAG = 60,
115   NODE_TYPE_FLATTEN = 61,
116   NODE_TYPE_FLOOR = 63,
117   NODE_TYPE_FLOOR_DIV = 64,
118   NODE_TYPE_FLOOR_MOD = 65,
119   NODE_TYPE_FILL = 66,
120   NODE_TYPE_FULL_CONNECTION = 67,
121   NODE_TYPE_FUSED_BATCH_NORM = 68,
122   NODE_TYPE_GATHER = 69,
123   NODE_TYPE_GATHER_ND = 70,
124   NODE_TYPE_GREATER = 71,
125   NODE_TYPE_GREATER_EQUAL = 72,
126   NODE_TYPE_HASHTABLE_LOOKUP = 73,
127   NODE_TYPE_INSTANCE_NORM = 74,
128   NODE_TYPE_LAYER_NORM_FUSION = 75,
129   NODE_TYPE_LEAKY_RELU = 76,
130   NODE_TYPE_LESS = 77,
131   NODE_TYPE_LESS_EQUAL = 78,
132   NODE_TYPE_LOG = 79,
133   NODE_TYPE_LOGICAL_AND = 81,
134   NODE_TYPE_LOGICAL_NOT = 82,
135   NODE_TYPE_LOGICAL_OR = 83,
136   NODE_TYPE_LP_NORMALIZATION = 84,
137   NODE_TYPE_L_R_N = 85,
138   NODE_TYPE_LSH_PROJECTION = 86,
139   NODE_TYPE_LSTM = 87,
140   NODE_TYPE_L2_NORMALIZE_FUSION = 88,
141   NODE_TYPE_MATMUL_FUSION = 89,
142   NODE_TYPE_MAXIMUM = 90,
143   NODE_TYPE_MAX_POOL_FUSION = 92,
144   NODE_TYPE_SWITCH_LAYER = 94,
145   NODE_TYPE_MFCC = 95,
146   NODE_TYPE_MINIMUM = 96,
147   NODE_TYPE_MOD = 98,
148   NODE_TYPE_MUL_FUSION = 99,
149   NODE_TYPE_NEG = 101,
150   NODE_TYPE_NOT_EQUAL = 103,
151   NODE_TYPE_NON_MAX_SUPPRESSION = 104,
152   NODE_TYPE_ONE_HOT = 105,
153   NODE_TYPE_ONES_LIKE = 106,
154   NODE_TYPE_PAD_FUSION = 107,
155   NODE_TYPE_PARTIAL_FUSION = 108,
156   NODE_TYPE_POW_FUSION = 110,
157   NODE_TYPE_PRIOR_BOX = 111,
158   NODE_TYPE_PRELU_FUSION = 112,
159   NODE_TYPE_QUANT_DTYPE_CAST = 113,
160   NODE_TYPE_RANK = 114,
161   NODE_TYPE_RANGE = 115,
162   NODE_TYPE_RECIPROCAL = 116,
163   NODE_TYPE_REAL_DIV = 117,
164   NODE_TYPE_REDUCE_FUSION = 118,
165   NODE_TYPE_RESHAPE = 119,
166   NODE_TYPE_RESIZE = 120,
167   NODE_TYPE_REVERSE_SEQUENCE = 121,
168   NODE_TYPE_REVERSE_V2 = 122,
169   NODE_TYPE_RFFT = 123,
170   NODE_TYPE_R_O_I_POOLING = 124,
171   NODE_TYPE_ROUND = 125,
172   NODE_TYPE_RSQRT = 126,
173   NODE_TYPE_SCALE_FUSION = 127,
174   NODE_TYPE_SCATTER_ND = 128,
175   NODE_TYPE_SHAPE = 130,
176   NODE_TYPE_SIN = 133,
177   NODE_TYPE_SKIP_GRAM = 134,
178   NODE_TYPE_SLICE_FUSION = 135,
179   NODE_TYPE_SOFTMAX = 138,
180   NODE_TYPE_SPACE_TO_BATCH_ND = 141,
181   NODE_TYPE_SPACE_TO_DEPTH = 142,
182   NODE_TYPE_SPARSE_TO_DENSE = 144,
183   NODE_TYPE_SPLIT = 145,
184   NODE_TYPE_SQRT = 146,
185   NODE_TYPE_SQUEEZE = 147,
186   NODE_TYPE_SQUARE = 148,
187   NODE_TYPE_SQUARED_DIFFERENCE = 149,
188   NODE_TYPE_STACK = 150,
189   NODE_TYPE_STRIDED_SLICE = 151,
190   NODE_TYPE_SUB_FUSION = 152,
191   NODE_TYPE_SWITCH = 154,
192   NODE_TYPE_TILE_FUSION = 160,
193   NODE_TYPE_TOPK_FUSION = 161,
194   NODE_TYPE_TRANSPOSE = 162,
195   NODE_TYPE_UNIQUE = 163,
196   NODE_TYPE_UNSORTED_SEGMENT_SUM = 164,
197   NODE_TYPE_UNSQUEEZE = 165,
198   NODE_TYPE_UNSTACK = 166,
199   NODE_TYPE_WHERE = 168,
200   NODE_TYPE_ZEROS_LIKE = 169,
201   NODE_TYPE_SELECT = 170,
202   NODE_TYPE_G_R_U = 172,
203   NODE_TYPE_NON_ZERO = 173,
204   NODE_TYPE_INVERT_PERMUTATION = 174,
205   NODE_TYPE_SIZE = 175,
206   NODE_TYPE_RANDOM_STANDARD_NORMAL = 176,
207   NODE_TYPE_CROP_AND_RESIZE = 177,
208   NODE_TYPE_ERF = 178,
209   NODE_TYPE_IS_FINITE = 180,
210   NODE_TYPE_LIN_SPACE = 181,
211   NODE_TYPE_UNIFORM_REAL = 182,
212   NODE_TYPE_SPLICE = 188,
213   NODE_TYPE_LOG_SOFTMAX = 189,
214   NODE_TYPE_CALL = 190,
215   NODE_TYPE_CUSTOM = 191,
216   NODE_TYPE_CUM_SUM = 192,
217   NODE_TYPE_SPLIT_WITH_OVERLAP = 193,
218   NODE_TYPE_GEN_O_P = 194,
219   NODE_TYPE_RAGGED_RANGE = 195,
220   NODE_TYPE_G_L_U = 196,
221   NODE_TYPE_AFFINE = 200,
222   NODE_TYPE_ALL_GATHER = 201,
223   NODE_TYPE_REDUCE_SCATTER = 202,
224   NODE_TYPE_DYNAMIC_QUANT = 203,
225   NODE_TYPE_RANDOM_NORMAL = 206,
226   NODE_TYPE_FORMAT_TRANSPOSE = 209,
227   NODE_TYPE_GATHER_D = 210,
228   NODE_TYPE_GROUP_NORM_FUSION = 211,
229   NODE_TYPE_LOG1P = 212,
230   NODE_TYPE_SPARSE_FILL_EMPTY_ROWS = 214,
231   NODE_TYPE_SPARSE_RESHAPE = 215,
232   NODE_TYPE_SPARSE_SEGMENT_SUM = 216,
233   NODE_TYPE_SCATTER_ELEMENTS = 217,
234   NODE_TYPE_TRIU = 218,
235   NODE_TYPE_TRIL = 219,
236 };
237 
238 enum ResizeMethod : int8_t {
239   RESIZE_METHOD_UNKNOWN = -1,
240   RESIZE_METHOD_LINEAR = 0,
241   RESIZE_METHOD_NEAREST = 1,
242   RESIZE_METHOD_CUBIC = 2,
243 };
244 
245 enum CoordinateTransformMode : int8_t {
246   COORDINATE_TRANSFORM_MODE_ASYMMETRIC = 0,
247   COORDINATE_TRANSFORM_MODE_ALIGN_CORNERS = 1,
248   COORDINATE_TRANSFORM_MODE_HALF_PIXEL = 2,
249 };
250 
251 enum NearestMode : int8_t {
252   NEAREST_MODE_NORMAL = 0,
253   NEAREST_MODE_ROUND_HALF_DOWN = 1,
254   NEAREST_MODE_ROUND_HALF_UP = 2,
255   NEAREST_MODE_FLOOR = 3,
256   NEAREST_MODE_CEIL = 4,
257 };
258 
259 enum ActivationType : int8_t {
260   ACTIVATION_TYPE_NO_ACTIVATION = 0,
261   ACTIVATION_TYPE_RELU = 1,
262   ACTIVATION_TYPE_SIGMOID = 2,
263   ACTIVATION_TYPE_RELU6 = 3,
264   ACTIVATION_TYPE_ELU = 4,
265   ACTIVATION_TYPE_LEAKY_RELU = 5,
266   ACTIVATION_TYPE_ABS = 6,
267   ACTIVATION_TYPE_RELU1 = 7,
268   ACTIVATION_TYPE_SOFTSIGN = 8,
269   ACTIVATION_TYPE_SOFTPLUS = 9,
270   ACTIVATION_TYPE_TANH = 10,
271   ACTIVATION_TYPE_SELU = 11,
272   ACTIVATION_TYPE_HSWISH = 12,
273   ACTIVATION_TYPE_HSIGMOID = 13,
274   ACTIVATION_TYPE_THRESHOLDRELU = 14,
275   ACTIVATION_TYPE_LINEAR = 15,
276   ACTIVATION_TYPE_HARD_TANH = 16,
277   ACTIVATION_TYPE_SIGN = 17,
278   ACTIVATION_TYPE_SWISH = 18,
279   ACTIVATION_TYPE_GELU = 19,
280   ACTIVATION_TYPE_UNKNOWN = 20,
281 };
282 
283 enum ReduceMode : int8_t {
284   REDUCE_MODE_MEAN = 0,
285   REDUCE_MODE_MAX = 1,
286   REDUCE_MODE_MIN = 2,
287   REDUCE_MODE_PROD = 3,
288   REDUCE_MODE_SUM = 4,
289   REDUCE_MODE_SUM_SQUARE = 5,
290   REDUCE_MODE_ASUM = 6,
291   REDUCE_MODE_ALL = 7,
292   REDUCE_MODE_L2 = 8,
293 };
294 
295 enum PoolMode : int8_t {
296   POOL_MODE_MAX_POOLING = 0,
297   POOL_MODE_MEAN_POOLING = 1,
298 };
299 
300 enum EltwiseMode : int8_t {
301   ELTWISE_MODE_PROD = 0,
302   ELTWISE_MODE_SUM = 1,
303   ELTWISE_MODE_MAXIMUM = 2,
304   ELTWISE_MODE_UNKNOWN = 3,
305 };
306 
307 enum PadMode : int8_t {
308   PAD_MODE_PAD = 0,
309   PAD_MODE_SAME = 1,
310   PAD_MODE_VALID = 2,
311 };
312 
313 enum RoundMode : int8_t {
314   ROUND_MODE_FLOOR = 0,
315   ROUND_MODE_CEIL = 1,
316 };
317 
318 enum PaddingMode : int8_t {
319   PADDING_MODE_CONSTANT = 0,
320   PADDING_MODE_REFLECT = 1,
321   PADDING_MODE_SYMMETRIC = 2,
322   PADDING_MODE_RESERVED = 3,
323 };
324 
325 enum LshProjectionType : int8_t {
326   UNKNOWN = 0,
327   SPARSE = 1,
328   DENSE = 2,
329 };
330 
331 enum Reduction : int8_t {
332   REDUCTION_SUM = 0,
333   MEAN = 1,
334   NONE = 2,
335 };
336 
337 struct Attribute {
338   std::string name;
339   uint32_t data;
340 };
341 }  // namespace lite
342 }  // namespace mindspore
343 #endif  // MIDIR_LITE_TYPES_H
344