• 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 };
48 
49 enum QuantType : int8_t {
50   QUANT_TYPE_NONE,
51   QUANT_TYPE_ALL,
52 };
53 
54 enum NodeType : uint32_t {
55   NODE_TYPE_NONE = 0,
56   NODE_TYPE_ACTIVATION = 2,
57   NODE_TYPE_ADD_FUSION = 5,
58   NODE_TYPE_ARGMAX_FUSION = 11,
59   NODE_TYPE_AVG_POOL_FUSION = 17,
60   NODE_TYPE_BATCH_TO_SPACE_ND = 22,
61   NODE_TYPE_BIAS_ADD = 23,
62   NODE_TYPE_CAST = 28,
63   NODE_TYPE_CONCAT = 31,
64   NODE_TYPE_CONV2D_FUSION = 35,
65   NODE_TYPE_CONV2D_TRANSPOSE_FUSION = 36,
66   NODE_TYPE_DIV_FUSION = 47,
67   NODE_TYPE_ELTWISE = 52,
68   NODE_TYPE_EXPAND_DIMS = 56,
69   NODE_TYPE_FILL = 66,
70   NODE_TYPE_FULL_CONNECTION = 67,
71   NODE_TYPE_FUSED_BATCH_NORM = 68,
72   NODE_TYPE_GATHER = 69,
73   NODE_TYPE_LAYER_NORM_FUSION = 75,
74   NODE_TYPE_LESS_EQUAL = 78,
75   NODE_TYPE_MATMUL_FUSION = 89,
76   NODE_TYPE_MAXIMUM = 90,
77   NODE_TYPE_MAX_POOL_FUSION = 92,
78   NODE_TYPE_MUL_FUSION = 99,
79   NODE_TYPE_ONE_HOT = 105,
80   NODE_TYPE_PAD_FUSION = 107,
81   NODE_TYPE_POW_FUSION = 110,
82   NODE_TYPE_PRELU_FUSION = 112,
83   NODE_TYPE_QUANT_DTYPE_CAST = 113,
84   NODE_TYPE_REDUCE_FUSION = 118,
85   NODE_TYPE_RESHAPE = 119,
86   NODE_TYPE_RESIZE = 120,
87   NODE_TYPE_RSQRT = 126,
88   NODE_TYPE_SCALE_FUSION = 127,
89   NODE_TYPE_SHAPE = 130,
90   NODE_TYPE_SLICE_FUSION = 135,
91   NODE_TYPE_SOFTMAX = 138,
92   NODE_TYPE_SPACE_TO_BATCH_ND = 141,
93   NODE_TYPE_SPLIT = 145,
94   NODE_TYPE_SQRT = 146,
95   NODE_TYPE_SQUEEZE = 147,
96   NODE_TYPE_SQUARED_DIFFERENCE = 149,
97   NODE_TYPE_STACK = 150,
98   NODE_TYPE_STRIDED_SLICE = 151,
99   NODE_TYPE_SUB_FUSION = 152,
100   NODE_TYPE_TILE_FUSION = 160,
101   NODE_TYPE_TOPK_FUSION = 161,
102   NODE_TYPE_TRANSPOSE = 162,
103   NODE_TYPE_UNSQUEEZE = 165,
104 };
105 
106 enum ResizeMethod : int8_t {
107   RESIZE_METHOD_UNKNOWN = -1,
108   RESIZE_METHOD_LINEAR = 0,
109   RESIZE_METHOD_NEAREST = 1,
110   RESIZE_METHOD_CUBIC = 2,
111 };
112 
113 enum CoordinateTransformMode : int8_t {
114   COORDINATE_TRANSFORM_MODE_ASYMMETRIC = 0,
115   COORDINATE_TRANSFORM_MODE_ALIGN_CORNERS = 1,
116   COORDINATE_TRANSFORM_MODE_HALF_PIXEL = 2,
117 };
118 
119 enum NearestMode : int8_t {
120   NEAREST_MODE_NORMAL = 0,
121   NEAREST_MODE_ROUND_HALF_DOWN = 1,
122   NEAREST_MODE_ROUND_HALF_UP = 2,
123   NEAREST_MODE_FLOOR = 3,
124   NEAREST_MODE_CEIL = 4,
125 };
126 
127 enum ActivationType : int8_t {
128   ACTIVATION_TYPE_NO_ACTIVATION = 0,
129   ACTIVATION_TYPE_RELU = 1,
130   ACTIVATION_TYPE_SIGMOID = 2,
131   ACTIVATION_TYPE_RELU6 = 3,
132   ACTIVATION_TYPE_ELU = 4,
133   ACTIVATION_TYPE_LEAKY_RELU = 5,
134   ACTIVATION_TYPE_ABS = 6,
135   ACTIVATION_TYPE_RELU1 = 7,
136   ACTIVATION_TYPE_SOFTSIGN = 8,
137   ACTIVATION_TYPE_SOFTPLUS = 9,
138   ACTIVATION_TYPE_TANH = 10,
139   ACTIVATION_TYPE_SELU = 11,
140   ACTIVATION_TYPE_HSWISH = 12,
141   ACTIVATION_TYPE_HSIGMOID = 13,
142   ACTIVATION_TYPE_THRESHOLDRELU = 14,
143   ACTIVATION_TYPE_LINEAR = 15,
144   ACTIVATION_TYPE_HARD_TANH = 16,
145   ACTIVATION_TYPE_SIGN = 17,
146   ACTIVATION_TYPE_SWISH = 18,
147   ACTIVATION_TYPE_GELU = 19,
148   ACTIVATION_TYPE_UNKNOWN = 20,
149 };
150 
151 enum ReduceMode : int8_t {
152   REDUCE_MODE_MEAN = 0,
153   REDUCE_MODE_MAX = 1,
154   REDUCE_MODE_MIN = 2,
155   REDUCE_MODE_PROD = 3,
156   REDUCE_MODE_SUM = 4,
157   REDUCE_MODE_SUM_SQUARE = 5,
158   REDUCE_MODE_ASUM = 6,
159   REDUCE_MODE_ALL = 7,
160 };
161 
162 enum PoolMode : int8_t {
163   POOL_MODE_MAX_POOLING = 0,
164   POOL_MODE_MEAN_POOLING = 1,
165 };
166 
167 enum EltwiseMode : int8_t {
168   ELTWISE_MODE_PROD = 0,
169   ELTWISE_MODE_SUM = 1,
170   ELTWISE_MODE_MAXIMUM = 2,
171   ELTWISE_MODE_UNKNOWN = 3,
172 };
173 
174 enum PadMode : int8_t {
175   PAD_MODE_PAD = 0,
176   PAD_MODE_SAME = 1,
177   PAD_MODE_VALID = 2,
178 };
179 
180 enum RoundMode : int8_t {
181   ROUND_MODE_FLOOR = 0,
182   ROUND_MODE_CEIL = 1,
183 };
184 
185 enum PaddingMode : int8_t {
186   PADDING_MODE_CONSTANT = 0,
187   PADDING_MODE_REFLECT = 1,
188   PADDING_MODE_SYMMETRIC = 2,
189   PADDING_MODE_RESERVED = 3,
190 };
191 
192 enum LshProjectionType : int8_t {
193   UNKNOWN = 0,
194   SPARSE = 1,
195   DENSE = 2,
196 };
197 
198 enum Reduction : int8_t {
199   REDUCTION_SUM = 0,
200   MEAN = 1,
201   NONE = 2,
202 };
203 
204 struct Attribute {
205   std::string name;
206   uint32_t data;
207 };
208 }  // namespace lite
209 }  // namespace mindspore
210 #endif  // MIDIR_LITE_TYPES_H
211