tvm
Loading...
Searching...
No Matches
nn.h
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
24#ifndef TVM_RELAX_OP_NN_H_
25#define TVM_RELAX_OP_NN_H_
26
27#include <tvm/relax/expr.h>
28
29namespace tvm {
30namespace relax {
31
33struct Conv1DAttrs : public AttrsNode {
34 ffi::Array<int64_t> strides;
35 ffi::Array<int64_t> padding;
36 ffi::Array<int64_t> dilation;
37 int groups;
38 ffi::String data_layout;
39 ffi::String kernel_layout;
40 ffi::String out_layout;
41 ffi::Optional<DLDataType> out_dtype;
42
43 static void RegisterReflection();
45}; // struct Conv1dAttrs
46
48struct Conv2DAttrs : public AttrsNode {
49 ffi::Array<int64_t> strides;
50 ffi::Array<int64_t> padding;
51 ffi::Array<int64_t> dilation;
52 int groups;
53 ffi::String data_layout;
54 ffi::String kernel_layout;
55 ffi::String out_layout;
56 ffi::Optional<DLDataType> out_dtype;
57
58 static void RegisterReflection();
60}; // struct Conv2dAttrs
61
63struct Conv3DAttrs : public AttrsNode {
64 ffi::Array<int64_t> strides;
65 ffi::Array<int64_t> padding;
66 ffi::Array<int64_t> dilation;
67 int groups;
68 ffi::String data_layout;
69 ffi::String kernel_layout;
70 ffi::String out_layout;
71 ffi::Optional<DLDataType> out_dtype;
72
73 static void RegisterReflection();
75}; // struct Conv3dAttrs
76
79 ffi::Array<int64_t> strides;
80 ffi::Array<int64_t> padding;
81 ffi::Array<int64_t> output_padding;
82 ffi::Array<int64_t> dilation;
83 int groups;
84 ffi::String data_layout;
85 ffi::String kernel_layout;
86 ffi::String out_layout;
87 ffi::Optional<DLDataType> out_dtype;
88
89 static void RegisterReflection();
90 TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.Conv1DTransposeAttrs", Conv1DTransposeAttrs,
91 AttrsNode);
92}; // struct Conv1DTransposeAttrs
93
96 ffi::Array<int64_t> strides;
97 ffi::Array<int64_t> padding;
98 ffi::Array<int64_t> output_padding;
99 ffi::Array<int64_t> dilation;
101 ffi::String data_layout;
102 ffi::String kernel_layout;
103 ffi::String out_layout;
104 ffi::Optional<DLDataType> out_dtype;
105
106 static void RegisterReflection();
107 TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.Conv2DTransposeAttrs", Conv2DTransposeAttrs,
108 AttrsNode);
109}; // struct Conv2DTransposeAttrs
110
113 ffi::Array<int64_t> strides;
114 ffi::Array<int64_t> padding;
115 ffi::Array<int64_t> output_padding;
116 ffi::Array<int64_t> dilation;
118 ffi::String data_layout;
119 ffi::String kernel_layout;
120 ffi::String out_layout;
121 ffi::Optional<DLDataType> out_dtype;
122
123 static void RegisterReflection();
124 TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.Conv3DTransposeAttrs", Conv3DTransposeAttrs,
125 AttrsNode);
126}; // struct Conv3DTransposeAttrs
127
129struct Pool1DAttrs : public AttrsNode {
130 ffi::Array<int64_t> pool_size;
131 ffi::Array<int64_t> strides;
132 ffi::Array<int64_t> padding;
133 ffi::Array<int64_t> dilation;
136 ffi::String layout;
137 ffi::String out_layout;
138
139 static void RegisterReflection();
141}; // struct Pool1dAttrs
142
144struct Pool2DAttrs : public AttrsNode {
145 ffi::Array<int64_t> pool_size;
146 ffi::Array<int64_t> strides;
147 ffi::Array<int64_t> padding;
148 ffi::Array<int64_t> dilation;
151 ffi::String layout;
152 ffi::String out_layout;
153
154 static void RegisterReflection();
156}; // struct Pool2dAttrs
157
159struct Pool3DAttrs : public AttrsNode {
160 ffi::Array<int64_t> pool_size;
161 ffi::Array<int64_t> strides;
162 ffi::Array<int64_t> padding;
163 ffi::Array<int64_t> dilation;
166 ffi::String layout;
167 ffi::String out_layout;
168
169 static void RegisterReflection();
171}; // struct Pool3dAttrs
172
175 ffi::Optional<ffi::Array<int64_t>> output_size;
176 ffi::String layout;
177 ffi::String out_layout;
178
179 static void RegisterReflection();
180 TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.AdaptivePool1DAttrs", AdaptivePool1DAttrs,
181 AttrsNode);
182}; // struct AdaptivePool1DAttrs
183
186 ffi::Optional<ffi::Array<int64_t>> output_size;
187 ffi::String layout;
188 ffi::String out_layout;
189
190 static void RegisterReflection();
191 TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.AdaptivePool2DAttrs", AdaptivePool2DAttrs,
192 AttrsNode);
193}; // struct AdaptivePool2DAttrs
194
197 ffi::Optional<ffi::Array<int64_t>> output_size;
198 ffi::String layout;
199 ffi::String out_layout;
200
201 static void RegisterReflection();
202 TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.AdaptivePool3DAttrs", AdaptivePool3DAttrs,
203 AttrsNode);
204}; // struct AdaptivePool3DAttrs
205
207struct SoftmaxAttrs : public AttrsNode {
208 int axis;
209
210 static void RegisterReflection();
212};
213
215struct LeakyReluAttrs : public AttrsNode {
216 double alpha;
217
218 static void RegisterReflection();
220};
221
223struct SoftplusAttrs : public AttrsNode {
224 double beta;
225 double threshold;
226
227 static void RegisterReflection();
229};
230
232struct PReluAttrs : public AttrsNode {
233 int axis;
234
235 static void RegisterReflection();
237};
238
240struct BatchNormAttrs : public AttrsNode {
241 int axis;
242 double epsilon;
243 bool center;
244 bool scale;
245 double momentum;
247
248 static void RegisterReflection();
250}; // struct BatchNormAttrs
251
253struct LayerNormAttrs : public AttrsNode {
254 ffi::Array<int64_t> axes;
255 double epsilon;
256 bool center;
257 bool scale;
258
259 static void RegisterReflection();
261}; // struct LayerNormAttrs
262
264struct GroupNormAttrs : public AttrsNode {
267 ffi::Array<int64_t> axes;
268 double epsilon;
269 bool center;
270 bool scale;
271
272 static void RegisterReflection();
274}; // struct GroupNormAttrs
275
279 ffi::Array<int64_t> axes;
280 double epsilon;
281 bool center;
282 bool scale;
283
284 static void RegisterReflection();
286}; // struct InstanceNormAttrs
287
289struct RMSNormAttrs : public AttrsNode {
290 ffi::Array<int64_t> axes;
291 double epsilon;
292
293 static void RegisterReflection();
295}; // struct RMSNormAttrs
296
298struct NLLLossAttrs : public AttrsNode {
299 ffi::String reduction;
301
302 static void RegisterReflection();
304}; // struct NLLLossAttrs
305
307struct DropoutAttrs : public AttrsNode {
308 double rate;
309
310 static void RegisterReflection();
312}; // struct DropoutAttrs
313
315struct AttentionAttrs : public AttrsNode {
316 ffi::Optional<FloatImm> scale;
317 ffi::Optional<ffi::String> causal_mask;
318 ffi::Optional<IntImm> window_size;
319
320 static void RegisterReflection();
322}; // struct AttentionAttrs
323
325struct PadAttrs : public AttrsNode {
326 ffi::Array<int64_t> pad_width;
327 double pad_value = 0.0;
328 tvm::ffi::String pad_mode;
329
330 static void RegisterReflection();
332};
333
337
338 static void RegisterReflection();
340};
341
342} // namespace relax
343} // namespace tvm
344
345#endif // TVM_RELAX_OP_NN_H_
Base class of all attribute class.
Definition attrs.h:50
An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
Definition attr.h:23
Attributes for 1d adaptive pool operator.
Definition nn.h:174
ffi::String out_layout
Definition nn.h:177
ffi::Optional< ffi::Array< int64_t > > output_size
Definition nn.h:175
ffi::String layout
Definition nn.h:176
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.AdaptivePool1DAttrs", AdaptivePool1DAttrs, AttrsNode)
Attributes for 2d adaptive pool operator.
Definition nn.h:185
ffi::Optional< ffi::Array< int64_t > > output_size
Definition nn.h:186
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.AdaptivePool2DAttrs", AdaptivePool2DAttrs, AttrsNode)
ffi::String out_layout
Definition nn.h:188
ffi::String layout
Definition nn.h:187
Attributes for 3d adaptive pool operator.
Definition nn.h:196
ffi::Optional< ffi::Array< int64_t > > output_size
Definition nn.h:197
ffi::String layout
Definition nn.h:198
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.AdaptivePool3DAttrs", AdaptivePool3DAttrs, AttrsNode)
ffi::String out_layout
Definition nn.h:199
Attributes used in Attention operator.
Definition nn.h:315
ffi::Optional< IntImm > window_size
Definition nn.h:318
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.AttentionAttrs", AttentionAttrs, AttrsNode)
ffi::Optional< FloatImm > scale
Definition nn.h:316
ffi::Optional< ffi::String > causal_mask
Definition nn.h:317
static void RegisterReflection()
Attributes used in batch_norm operator.
Definition nn.h:240
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.BatchNormAttrs", BatchNormAttrs, AttrsNode)
bool training
Definition nn.h:246
bool scale
Definition nn.h:244
static void RegisterReflection()
double epsilon
Definition nn.h:242
int axis
Definition nn.h:241
double momentum
Definition nn.h:245
bool center
Definition nn.h:243
Attributes used in Conv1d operator.
Definition nn.h:33
ffi::String out_layout
Definition nn.h:40
ffi::Array< int64_t > strides
Definition nn.h:34
ffi::Array< int64_t > dilation
Definition nn.h:36
int groups
Definition nn.h:37
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.Conv1DAttrs", Conv1DAttrs, AttrsNode)
ffi::Optional< DLDataType > out_dtype
Definition nn.h:41
ffi::String data_layout
Definition nn.h:38
static void RegisterReflection()
ffi::Array< int64_t > padding
Definition nn.h:35
ffi::String kernel_layout
Definition nn.h:39
Attributes used in Conv1DTranspose operator.
Definition nn.h:78
ffi::String data_layout
Definition nn.h:84
ffi::Array< int64_t > dilation
Definition nn.h:82
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.Conv1DTransposeAttrs", Conv1DTransposeAttrs, AttrsNode)
ffi::Optional< DLDataType > out_dtype
Definition nn.h:87
ffi::Array< int64_t > output_padding
Definition nn.h:81
ffi::String out_layout
Definition nn.h:86
ffi::Array< int64_t > strides
Definition nn.h:79
ffi::Array< int64_t > padding
Definition nn.h:80
int groups
Definition nn.h:83
ffi::String kernel_layout
Definition nn.h:85
Attributes used in Conv2d operator.
Definition nn.h:48
ffi::String out_layout
Definition nn.h:55
ffi::Array< int64_t > strides
Definition nn.h:49
ffi::Array< int64_t > dilation
Definition nn.h:51
ffi::String kernel_layout
Definition nn.h:54
static void RegisterReflection()
ffi::Optional< DLDataType > out_dtype
Definition nn.h:56
int groups
Definition nn.h:52
ffi::String data_layout
Definition nn.h:53
ffi::Array< int64_t > padding
Definition nn.h:50
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.Conv2DAttrs", Conv2DAttrs, AttrsNode)
Attributes used in Conv2d operator.
Definition nn.h:95
ffi::String kernel_layout
Definition nn.h:102
ffi::Optional< DLDataType > out_dtype
Definition nn.h:104
ffi::Array< int64_t > dilation
Definition nn.h:99
ffi::String data_layout
Definition nn.h:101
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.Conv2DTransposeAttrs", Conv2DTransposeAttrs, AttrsNode)
ffi::Array< int64_t > padding
Definition nn.h:97
int groups
Definition nn.h:100
ffi::Array< int64_t > strides
Definition nn.h:96
ffi::Array< int64_t > output_padding
Definition nn.h:98
ffi::String out_layout
Definition nn.h:103
Attributes used in Conv3d operator.
Definition nn.h:63
ffi::String kernel_layout
Definition nn.h:69
ffi::String out_layout
Definition nn.h:70
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.Conv3DAttrs", Conv3DAttrs, AttrsNode)
ffi::Array< int64_t > strides
Definition nn.h:64
static void RegisterReflection()
ffi::Array< int64_t > dilation
Definition nn.h:66
ffi::Optional< DLDataType > out_dtype
Definition nn.h:71
ffi::String data_layout
Definition nn.h:68
ffi::Array< int64_t > padding
Definition nn.h:65
int groups
Definition nn.h:67
Attributes used in Conv3dTranspose operator.
Definition nn.h:112
ffi::String out_layout
Definition nn.h:120
ffi::Array< int64_t > padding
Definition nn.h:114
ffi::Array< int64_t > strides
Definition nn.h:113
ffi::Array< int64_t > dilation
Definition nn.h:116
int groups
Definition nn.h:117
ffi::String data_layout
Definition nn.h:118
ffi::String kernel_layout
Definition nn.h:119
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.Conv3DTransposeAttrs", Conv3DTransposeAttrs, AttrsNode)
ffi::Array< int64_t > output_padding
Definition nn.h:115
ffi::Optional< DLDataType > out_dtype
Definition nn.h:121
Attributes used in dropout operator.
Definition nn.h:307
double rate
Definition nn.h:308
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.DropoutAttrs", DropoutAttrs, AttrsNode)
static void RegisterReflection()
Attributes used in group_norm operator.
Definition nn.h:264
ffi::Array< int64_t > axes
Definition nn.h:267
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.GroupNormAttrs", GroupNormAttrs, AttrsNode)
int num_groups
Definition nn.h:265
int channel_axis
Definition nn.h:266
double epsilon
Definition nn.h:268
bool center
Definition nn.h:269
static void RegisterReflection()
bool scale
Definition nn.h:270
Attributes used in instance_norm operator.
Definition nn.h:277
bool center
Definition nn.h:281
double epsilon
Definition nn.h:280
bool scale
Definition nn.h:282
ffi::Array< int64_t > axes
Definition nn.h:279
int channel_axis
Definition nn.h:278
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.InstanceNormAttrs", InstanceNormAttrs, AttrsNode)
Attributes used in layer_norm operator.
Definition nn.h:253
bool scale
Definition nn.h:257
static void RegisterReflection()
bool center
Definition nn.h:256
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.LayerNormAttrs", LayerNormAttrs, AttrsNode)
ffi::Array< int64_t > axes
Definition nn.h:254
double epsilon
Definition nn.h:255
Attributes used in softmax operators.
Definition nn.h:215
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.LeakyReluAttrs", LeakyReluAttrs, AttrsNode)
static void RegisterReflection()
double alpha
Definition nn.h:216
Attributes used in nll_loss operator.
Definition nn.h:298
static void RegisterReflection()
ffi::String reduction
Definition nn.h:299
int ignore_index
Definition nn.h:300
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.NLLLossAttrs", NLLLossAttrs, AttrsNode)
Attributes used in PReLU operator.
Definition nn.h:232
static void RegisterReflection()
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.PReluAttrs", PReluAttrs, AttrsNode)
int axis
Definition nn.h:233
Attributes used for the padding operator.
Definition nn.h:325
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.PadAttrs", PadAttrs, AttrsNode)
tvm::ffi::String pad_mode
Definition nn.h:328
ffi::Array< int64_t > pad_width
Definition nn.h:326
double pad_value
Definition nn.h:327
static void RegisterReflection()
Attributes used for the pixel shuffle operator.
Definition nn.h:335
int upscale_factor
Definition nn.h:336
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.PixelShuffleAttrs", PixelShuffleAttrs, AttrsNode)
Attributes used in max_pool1d and avg_pool1d operator.
Definition nn.h:129
ffi::Array< int64_t > strides
Definition nn.h:131
ffi::Array< int64_t > dilation
Definition nn.h:133
static void RegisterReflection()
ffi::Array< int64_t > pool_size
Definition nn.h:130
ffi::String layout
Definition nn.h:136
ffi::Array< int64_t > padding
Definition nn.h:132
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.Pool1DAttrs", Pool1DAttrs, AttrsNode)
bool count_include_pad
Definition nn.h:135
ffi::String out_layout
Definition nn.h:137
bool ceil_mode
Definition nn.h:134
Attributes used in max_pool2d and avg_pool2d operator.
Definition nn.h:144
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.Pool2DAttrs", Pool2DAttrs, AttrsNode)
ffi::Array< int64_t > pool_size
Definition nn.h:145
static void RegisterReflection()
bool count_include_pad
Definition nn.h:150
ffi::Array< int64_t > dilation
Definition nn.h:148
ffi::String out_layout
Definition nn.h:152
ffi::Array< int64_t > padding
Definition nn.h:147
bool ceil_mode
Definition nn.h:149
ffi::Array< int64_t > strides
Definition nn.h:146
ffi::String layout
Definition nn.h:151
Attributes used in max_pool3d and avg_pool3d operator.
Definition nn.h:159
ffi::Array< int64_t > strides
Definition nn.h:161
bool ceil_mode
Definition nn.h:164
ffi::String out_layout
Definition nn.h:167
ffi::String layout
Definition nn.h:166
static void RegisterReflection()
bool count_include_pad
Definition nn.h:165
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.Pool3DAttrs", Pool3DAttrs, AttrsNode)
ffi::Array< int64_t > dilation
Definition nn.h:163
ffi::Array< int64_t > padding
Definition nn.h:162
ffi::Array< int64_t > pool_size
Definition nn.h:160
Attributes used in rms_norm operator.
Definition nn.h:289
ffi::Array< int64_t > axes
Definition nn.h:290
double epsilon
Definition nn.h:291
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.RMSNormAttrs", RMSNormAttrs, AttrsNode)
static void RegisterReflection()
Attributes used in softmax operators.
Definition nn.h:207
int axis
Definition nn.h:208
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.SoftmaxAttrs", SoftmaxAttrs, AttrsNode)
static void RegisterReflection()
Attributes used in softplus operators.
Definition nn.h:223
double threshold
Definition nn.h:225
double beta
Definition nn.h:224
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("relax.attrs.SoftplusAttrs", SoftplusAttrs, AttrsNode)
static void RegisterReflection()