更新时间:2021-03-18 GMT+08:00
分享

vcmpsel

功能说明

tensor lhs中的元素和rhs按operation处的操作进行比较,operation处的操作包括eq、ne、lt、gt、le、ge,依次表示==、!=、<、>、<=、>=。如果表达式成立,返回slhs对应的值,否则返回srhs对应的值。

以下通过表达式的方式来解释各操作的含义,其中a表示lhs中的元素,b表示rhs中的元素,c表示slhs中的元素,d表示srhs中的元素,res表示结果tensor的元素,表达式如下:
  • lt: res = c (a < b) or d (a >= b)
  • gt: res = c (a > b) or d (a <= b)
  • le: res = c (a <= b) or d (a > b)
  • ge: res = c (a >= b) or d (a < b)
  • eq: res = c (a == b) or d (a != b)
  • ne: res = c (a != b) or d (a == b)
  • 如果rhs为None,tensor lhs中的元素会与float数2.0进行比较。
  • 如果slhs为None,表达式成立时,返回lhs对应的值。
  • 如果srhs为None并且rhs类型为tensor,表达式不成立时,返回rhs对应的值。

如果srhs为None并且rhs类型为scalar,表达式不成立时,返回float数0.0。

您可以在ATC安装目录下的“python/site-packages/te/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。

约束说明

所有参数的数据类型需要一致。

昇腾310 AI处理器:支持的数据类型有float16

函数原型

te.lang.cce.vcmpsel(lhs,rhs=None,operation='lt', slhs=None, srhs=None)

参数说明

  • lhs:进行比较操作的左操作数,tvm.tensor类型。
  • rhs:进行比较操作的右操作数,tvm.tensor 或者 scalar类型,默认为None。
  • slhs:比较表达式成立时返回的值,tvm.tensor或者 scalar类型,默认为None。
  • srhs:比较表达式不成立时返回的值,tvm.tensor或者 scalar类型,默认为None。
  • operation : 操作类型,支持eq, ne, lt, gt, ge, le,默认为lt。

返回值

res_tensor:结果tensor ,tvm.tensor类型

调用示例

shape = (1024,1024)
input_dtype = "float16"
data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype)
data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) 
data3 = tvm.placeholder(shape, name="data3", dtype=input_dtype)
data4 = tvm.placeholder(shape, name="data4", dtype=input_dtype)
res = te.lang.cce.vcmpsel(data1, data2, 'gt', data3, data4)
分享:

    相关文档

    相关产品

close