relay_op.rst 10 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
..  Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

..    http://www.apache.org/licenses/LICENSE-2.0

..  Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

18 19 20 21
Relay Core Tensor Operators
===========================

This page contains the list of core tensor operator primitives pre-defined in tvm.relay.
22 23 24
The core tensor operator primitives cover typical workloads in deep learning.
They can represent workloads in front-end frameworks and provide basic building blocks for optimization.
Since deep learning is a fast evolving field, it is possible to have operators that are not in here.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43


.. note::

   This document will directly list the function signature of
   these operators in the python frontend.


Overview of Operators
---------------------
**Level 1: Basic Operators**

This level enables fully connected multi-layer perceptron.

.. autosummary::
   :nosignatures:

   tvm.relay.log
   tvm.relay.sqrt
44
   tvm.relay.rsqrt
45
   tvm.relay.exp
46
   tvm.relay.sigmoid
47
   tvm.relay.add
48 49 50 51 52
   tvm.relay.subtract
   tvm.relay.multiply
   tvm.relay.divide
   tvm.relay.mod
   tvm.relay.tanh
53 54 55 56
   tvm.relay.concatenate
   tvm.relay.expand_dims
   tvm.relay.nn.softmax
   tvm.relay.nn.log_softmax
雾雨魔理沙 committed
57
   tvm.relay.nn.relu
58 59
   tvm.relay.nn.dropout
   tvm.relay.nn.batch_norm
60 61
   tvm.relay.nn.bias_add

62 63 64 65 66 67 68 69 70

**Level 2: Convolutions**

This level enables typical convnet models.

.. autosummary::
   :nosignatures:

   tvm.relay.nn.conv2d
71
   tvm.relay.nn.conv2d_transpose
72
   tvm.relay.nn.dense
73
   tvm.relay.nn.max_pool2d
74
   tvm.relay.nn.max_pool3d
75
   tvm.relay.nn.avg_pool2d
76
   tvm.relay.nn.avg_pool3d
77 78 79
   tvm.relay.nn.global_max_pool2d
   tvm.relay.nn.global_avg_pool2d
   tvm.relay.nn.upsampling
80
   tvm.relay.nn.upsampling3d
81
   tvm.relay.nn.batch_flatten
82
   tvm.relay.nn.pad
83 84
   tvm.relay.nn.lrn
   tvm.relay.nn.l2_normalize
85 86
   tvm.relay.nn.contrib_conv2d_winograd_without_weight_transform
   tvm.relay.nn.contrib_conv2d_winograd_weight_transform
87 88 89 90


**Level 3: Additional Math And Transform Operators**

91 92
This level enables additional math and transform operators.

93 94 95
.. autosummary::
   :nosignatures:

96
   tvm.relay.nn.leaky_relu
Siju committed
97
   tvm.relay.nn.prelu
98
   tvm.relay.reshape
Siju committed
99
   tvm.relay.reshape_like
100 101
   tvm.relay.copy
   tvm.relay.transpose
102
   tvm.relay.squeeze
103 104
   tvm.relay.floor
   tvm.relay.ceil
105
   tvm.relay.sign
106
   tvm.relay.trunc
107
   tvm.relay.clip
108 109 110
   tvm.relay.round
   tvm.relay.abs
   tvm.relay.negative
Siva committed
111
   tvm.relay.take
112 113 114 115
   tvm.relay.zeros
   tvm.relay.zeros_like
   tvm.relay.ones
   tvm.relay.ones_like
116
   tvm.relay.gather_nd
117 118
   tvm.relay.full
   tvm.relay.full_like
119
   tvm.relay.cast
120
   tvm.relay.reinterpret
Siva committed
121
   tvm.relay.split
122
   tvm.relay.arange
123
   tvm.relay.stack
124 125
   tvm.relay.repeat
   tvm.relay.tile
126
   tvm.relay.reverse
127

雾雨魔理沙 committed
128

129 130
**Level 4: Broadcast and Reductions**

131 132 133
.. autosummary::
   :nosignatures:

134
   tvm.relay.right_shift
135
   tvm.relay.left_shift
136 137 138 139 140 141
   tvm.relay.equal
   tvm.relay.not_equal
   tvm.relay.greater
   tvm.relay.greater_equal
   tvm.relay.less
   tvm.relay.less_equal
142
   tvm.relay.all
143
   tvm.relay.any
144 145 146
   tvm.relay.logical_and
   tvm.relay.logical_or
   tvm.relay.logical_not
147
   tvm.relay.maximum
148
   tvm.relay.minimum
149
   tvm.relay.power
Zhi committed
150
   tvm.relay.where
151 152
   tvm.relay.argmax
   tvm.relay.argmin
153 154 155 156
   tvm.relay.sum
   tvm.relay.max
   tvm.relay.min
   tvm.relay.mean
157 158 159 160
   tvm.relay.variance
   tvm.relay.std
   tvm.relay.mean_variance
   tvm.relay.mean_std
161
   tvm.relay.prod
162
   tvm.relay.strided_slice
163
   tvm.relay.broadcast_to
164

雾雨魔理沙 committed
165

166 167
**Level 5: Vision/Image Operators**

168 169 170 171
.. autosummary::
   :nosignatures:

   tvm.relay.image.resize
172 173 174
   tvm.relay.vision.multibox_prior
   tvm.relay.vision.multibox_transform_loc
   tvm.relay.vision.nms
Siju committed
175
   tvm.relay.vision.yolo_reorg
176

177

178 179 180 181 182 183
**Level 6: Algorithm Operators**

.. autosummary::
   :nosignatures:

   tvm.relay.argsort
184
   tvm.relay.topk
185 186


187 188 189 190 191 192 193 194 195
**Level 10: Temporary Operators**

This level support backpropagation of broadcast operators. It is temporary.

.. autosummary::
   :nosignatures:

   tvm.relay.broadcast_to_like
   tvm.relay.collapse_sum_like
196
   tvm.relay.slice_like
197
   tvm.relay.shape_of
198
   tvm.relay.contrib.ndarray_size
199
   tvm.relay.layout_transform
200 201
   tvm.relay.device_copy
   tvm.relay.annotation.on_device
202
   tvm.relay.reverse_reshape
203
   tvm.relay.sequence_mask
204
   tvm.relay.nn.batch_matmul
205 206
   tvm.relay.contrib.adaptive_max_pool2d
   tvm.relay.contrib.adaptive_avg_pool2d
207
   tvm.relay.one_hot
208 209


210 211 212 213 214 215 216 217
**Level 11: Dialect Operators**

This level supports dialect operators.

.. autosummary::
   :nosignatures:

   tvm.relay.qnn.op.requantize
218
   tvm.relay.qnn.op.conv2d
219 220


221 222 223 224
Level 1 Definitions
-------------------
.. autofunction:: tvm.relay.log
.. autofunction:: tvm.relay.sqrt
225
.. autofunction:: tvm.relay.rsqrt
226
.. autofunction:: tvm.relay.exp
227
.. autofunction:: tvm.relay.sigmoid
228
.. autofunction:: tvm.relay.add
229 230 231
.. autofunction:: tvm.relay.subtract
.. autofunction:: tvm.relay.multiply
.. autofunction:: tvm.relay.divide
232
.. autofunction:: tvm.relay.floor_divide
233
.. autofunction:: tvm.relay.mod
234
.. autofunction:: tvm.relay.floor_mod
235 236
.. autofunction:: tvm.relay.tanh
.. autofunction:: tvm.relay.concatenate
237
.. autofunction:: tvm.relay.expand_dims
238
.. autofunction:: tvm.relay.nn.softmax
239
.. autofunction:: tvm.relay.nn.log_softmax
雾雨魔理沙 committed
240
.. autofunction:: tvm.relay.nn.relu
241 242 243
.. autofunction:: tvm.relay.nn.dropout
.. autofunction:: tvm.relay.nn.batch_norm
.. autofunction:: tvm.relay.nn.bias_add
244 245 246 247 248


Level 2 Definitions
-------------------
.. autofunction:: tvm.relay.nn.conv2d
249
.. autofunction:: tvm.relay.nn.conv2d_transpose
250
.. autofunction:: tvm.relay.nn.dense
251
.. autofunction:: tvm.relay.nn.max_pool2d
252
.. autofunction:: tvm.relay.nn.max_pool3d
253
.. autofunction:: tvm.relay.nn.avg_pool2d
254
.. autofunction:: tvm.relay.nn.avg_pool3d
255 256 257
.. autofunction:: tvm.relay.nn.global_max_pool2d
.. autofunction:: tvm.relay.nn.global_avg_pool2d
.. autofunction:: tvm.relay.nn.upsampling
258
.. autofunction:: tvm.relay.nn.upsampling3d
259
.. autofunction:: tvm.relay.nn.batch_flatten
260
.. autofunction:: tvm.relay.nn.pad
261 262
.. autofunction:: tvm.relay.nn.lrn
.. autofunction:: tvm.relay.nn.l2_normalize
263 264
.. autofunction:: tvm.relay.nn.contrib_conv2d_winograd_without_weight_transform
.. autofunction:: tvm.relay.nn.contrib_conv2d_winograd_weight_transform
265

266 267
Level 3 Definitions
-------------------
268
.. autofunction:: tvm.relay.nn.leaky_relu
Siju committed
269
.. autofunction:: tvm.relay.nn.prelu
270 271 272 273 274
.. autofunction:: tvm.relay.reshape
.. autofunction:: tvm.relay.reshape_like
.. autofunction:: tvm.relay.copy
.. autofunction:: tvm.relay.transpose
.. autofunction:: tvm.relay.squeeze
275 276
.. autofunction:: tvm.relay.floor
.. autofunction:: tvm.relay.ceil
277
.. autofunction:: tvm.relay.sign
278
.. autofunction:: tvm.relay.trunc
279
.. autofunction:: tvm.relay.clip
280 281 282
.. autofunction:: tvm.relay.round
.. autofunction:: tvm.relay.abs
.. autofunction:: tvm.relay.negative
Siva committed
283
.. autofunction:: tvm.relay.take
284
.. autofunction:: tvm.relay.zeros
雾雨魔理沙 committed
285
.. autofunction:: tvm.relay.zeros_like
286
.. autofunction:: tvm.relay.ones
雾雨魔理沙 committed
287
.. autofunction:: tvm.relay.ones_like
288
.. autofunction:: tvm.relay.gather_nd
289 290 291
.. autofunction:: tvm.relay.full
.. autofunction:: tvm.relay.full_like
.. autofunction:: tvm.relay.cast
292
.. autofunction:: tvm.relay.reinterpret
Siva committed
293
.. autofunction:: tvm.relay.split
294
.. autofunction:: tvm.relay.arange
295
.. autofunction:: tvm.relay.stack
296 297
.. autofunction:: tvm.relay.repeat
.. autofunction:: tvm.relay.tile
298
.. autofunction:: tvm.relay.reverse
雾雨魔理沙 committed
299 300


301 302 303
Level 4 Definitions
-------------------
.. autofunction:: tvm.relay.right_shift
304
.. autofunction:: tvm.relay.left_shift
305 306 307 308 309 310
.. autofunction:: tvm.relay.equal
.. autofunction:: tvm.relay.not_equal
.. autofunction:: tvm.relay.greater
.. autofunction:: tvm.relay.greater_equal
.. autofunction:: tvm.relay.less
.. autofunction:: tvm.relay.less_equal
311
.. autofunction:: tvm.relay.all
312
.. autofunction:: tvm.relay.any
313 314 315
.. autofunction:: tvm.relay.logical_and
.. autofunction:: tvm.relay.logical_or
.. autofunction:: tvm.relay.logical_not
316 317
.. autofunction:: tvm.relay.maximum
.. autofunction:: tvm.relay.minimum
318
.. autofunction:: tvm.relay.power
Zhi committed
319
.. autofunction:: tvm.relay.where
320 321
.. autofunction:: tvm.relay.argmax
.. autofunction:: tvm.relay.argmin
322 323 324 325
.. autofunction:: tvm.relay.sum
.. autofunction:: tvm.relay.max
.. autofunction:: tvm.relay.min
.. autofunction:: tvm.relay.mean
326 327 328 329
.. autofunction:: tvm.relay.variance
.. autofunction:: tvm.relay.std
.. autofunction:: tvm.relay.mean_variance
.. autofunction:: tvm.relay.mean_std
330
.. autofunction:: tvm.relay.prod
331
.. autofunction:: tvm.relay.strided_slice
332
.. autofunction:: tvm.relay.broadcast_to
333

334

335 336 337
Level 5 Definitions
-------------------
.. autofunction:: tvm.relay.image.resize
338 339 340
.. autofunction:: tvm.relay.vision.multibox_prior
.. autofunction:: tvm.relay.vision.multibox_transform_loc
.. autofunction:: tvm.relay.vision.nms
Siju committed
341
.. autofunction:: tvm.relay.vision.yolo_reorg
342 343


344 345 346
Level 6 Definitions
-------------------
.. autofunction:: tvm.relay.argsort
347
.. autofunction:: tvm.relay.topk
348 349


350 351 352 353
Level 10 Definitions
--------------------
.. autofunction:: tvm.relay.broadcast_to_like
.. autofunction:: tvm.relay.collapse_sum_like
354
.. autofunction:: tvm.relay.slice_like
355
.. autofunction:: tvm.relay.shape_of
356
.. autofunction:: tvm.relay.contrib.ndarray_size
357 358
.. autofunction:: tvm.relay.layout_transform
.. autofunction:: tvm.relay.device_copy
359 360
.. autofunction:: tvm.relay.annotation.on_device
.. autofunction:: tvm.relay.reverse_reshape
361
.. autofunction:: tvm.relay.sequence_mask
362
.. autofunction:: tvm.relay.nn.batch_matmul
363 364
.. autofunction:: tvm.relay.contrib.adaptive_max_pool2d
.. autofunction:: tvm.relay.contrib.adaptive_avg_pool2d
365
.. autofunction:: tvm.relay.one_hot
366 367 368 369 370


Level 11 Definitions
--------------------
.. autofunction:: tvm.relay.qnn.op.requantize
371
.. autofunction:: tvm.relay.qnn.op.conv2d