tvm的常见op


1、relay.op.transpose

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

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

2、relay.op.reshape

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

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

3、relay.op.strided_slice

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

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

4、relay.op.const

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

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

5、relay.op.multiply

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

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

6、relay.op.max

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

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

7、relay.op.sigmoid

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

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

在这个例子中,输入张量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操作应用的轴。

9、relay.op.concatenate

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

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

10、relay.op.subtract

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

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

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

11、relay.op.cast

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

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)
    

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)

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

14、relay.op.topk

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

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值