当前位置:   article > 正文

tvm的常见op

tvm的常见op


1、relay.op.transpose

relay.op.transpose函数接受一个输入张量(或称为输入数组)和一个表示维度排列的参数。它返回一个新的张量,该张量是输入张量按照指定的维度排列进行转置后得到的结果

tvm.relay.op.transpose(data, axes)
# data是输入张量,
# axes是一个整数列表,用于指定转置后的维度排列顺序。

  • 1
  • 2
  • 3
  • 4

2、relay.op.reshape

op.reshape是一个用于执行张量重塑(reshape)操作的操作符。它允许你改变张量的形状,而不改变其数据元素的数量。

tvm.relay.op.reshape(data, newshape)
# data是输入张量,newshape是一个整数元组,表示目标形状
  • 1
  • 2

3、relay.op.strided_slice

op.strided_slice是一个用于执行张量切片操作的操作符。它允许你通过指定起始索引、终止索引和步长来提取输入张量的子集。

tvm.relay.op.strided_slice(data, begin, end, strides)
# data是输入张量,
# begin是一个整数列表,表示每个维度的起始索引;
# end是一个整数列表,表示每个维度的终止索引;
# strides是一个整数列表,表示每个维度的步长。
  • 1
  • 2
  • 3
  • 4
  • 5

4、relay.op.const

op.const是一个用于创建常量张量的操作符。它允许你创建一个固定值的张量,该张量在计算图中的值保持不变。

tvm.relay.op.const(value, dtype, shape)
# value是常量值,
# dtype是张量的数据类型,
# shape是一个整数元组,表示常量张量的形状。
  • 1
  • 2
  • 3
  • 4

5、relay.op.multiply

op.multiply是一个执行元素级乘法操作的操作符。它允许你对两个输入张量进行逐元素的乘法运算。

tvm.relay.op.multiply(x, y)
# x和y是两个输入张量。
  • 1
  • 2

6、relay.op.max

op.max是一个执行元素级最大值操作的操作符。它允许你对两个或多个输入张量进行逐元素的最大值比较。

tvm.relay.op.max(x, y, ...)
# 其中,x、y等是输入张量
  • 1
  • 2

7、relay.op.sigmoid

op.sigmoid是一个执行Sigmoid函数操作的操作符。Sigmoid函数是一种常用的激活函数,将输入值映射到介于0和1之间的输出值。

tvm.relay.op.sigmoid(x)
  • 1
[[0.5        0.7310586  0.11920292]
 [0.95257413 0.01798621 0.9933072 ]]
  • 1
  • 2

在这个例子中,输入张量x是一个形状为(2, 3)的张量,包含了一些随机的数值。通过op.sigmoid操作,每个元素都经过Sigmoid函数计算,将其映射到介于0和1之间的范围。

8、relay.op.softmax

op.nn.softmax是一个执行Softmax函数操作的操作符。Softmax函数是一种常用的激活函数,它将输入向量的每个元素转化为介于0和1之间的概率值,并确保所有概率值之和为1。

tvm.relay.op.nn.softmax(x, axis)
# x是输入张量,axis是指定Softmax操作应用的轴。
  • 1
  • 2

9、relay.op.concatenate

op.concatenate是一个执行张量连接操作的操作符。它允许将多个输入张量沿指定的轴进行连接,生成一个新的张量。

tvm.relay.op.concatenate([x1, x2, ...], axis)
# x1、x2等是输入张量,axis是指定连接操作应用的轴。
  • 1
  • 2

10、relay.op.subtract

op.subtract是用于执行张量减法操作的操作符。它接受两个输入张量,将它们的对应元素进行减法运算,并返回一个新的张量作为输出。

tvm.relay.op.subtract(x, y)
  • 1

op.cast是一个用于执行张量类型转换的操作符。它允许将输入张量转换为指定的数据类型,并返回一个新的张量作为输出。

11、relay.op.cast

tvm.relay.op.cast(x, dtype)
# x是输入张量,dtype是目标数据类型
  • 1
  • 2

12、tvm.op.vision.non_max_suppression

op.vision.non_max_suppression是一个用于执行非最大值抑制(Non-Maximum Suppression,NMS)操作的操作符。NMS常用于目标检测任务中,用于筛选检测结果中的重叠框,保留最具代表性的框。

tvm.relay.op.vision.non_max_suppression(
                                        data, 
                                        valid_count, 
                                        max_output_size,
                                        iou_threshold, 
                                        force_suppress)
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

data:输入张量,包含了一组检测框的坐标信息,形状为 (batch_size, num_anchors, 6),其中最后一维表示 (x1, y1, x2, y2, score, class_id)。
valid_count:输入张量,包含了每个样本中有效的检测框数量,形状为 (batch_size,)。
max_output_size:整数,指定最大输出的框数。
iou_threshold:浮点数,指定重叠框的 IoU(Intersection over Union)阈值,用于判断框是否重叠。
force_suppress:布尔值,指定是否强制对重叠框进行抑制。

13、relay.op.expand_dims

op.expand_dims是一个用于在指定轴上扩展维度的操作符。它允许在输入张量的指定位置插入一个新的维度,并返回一个新的张量作为输出。

tvm.relay.op.expand_dims(x, axis, num_newaxis)
  • 1

x是输入张量.
axis是指定要插入维度的位置,
num_newaxis是要插入的新维度数量。

14、relay.op.topk

op.topk是一个用于计算张量中最大(或最小)的k个元素及其对应索引的操作符。它可以用于获取张量中的最大值或最小值,并返回它们的值和索引

tvm.topk(data, k, axis, ret_type)
  • 1

data:输入张量,可以是TVM的Tensor对象或TVM的tir.Var对象。
k:要获取的最大(或最小)元素的数量。
axis:指定在哪个轴上进行操作,可以是整数或元组。如果是整数,则表示在指定轴上执行操作;如果是元组,则表示在多个轴上执行操作。
ret_type:指定返回的结果类型,可以是字符串 “max” 或 “min”。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/498533
推荐阅读
相关标签
  

闽ICP备14008679号