下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

negate

功能说明

此参数用于判断输入参数是否为False,若为False,则返回结果为True;否则,返回结果为False。

此接口一般用作条件判断语句if_scope、elif_scope的判断条件(cond)。

函数原型

negate(cond)

参数说明

参数名称

输入/输出

含义

cond

输入

传入一个参数,支持InputScalar,立即数(int,float), Expr,Scalar,bool类型。

其中:
  • Scalar、InputScalar类型的参数会自动转换为表达式,例如若参数名称为a,则转换为:a != 0。
  • 如果Expr为数值表达式,则会自动判断是否!=0,例如参数为scalar // 2,则转换为 scalar // 2 !=0
须知:

Expr中支持如下运算符:

  • 比较运算符:>,<,!=,==,>=,<=
  • 算术运算符:+,-,*,/,//,%
  • 位运算符:&,|,<<,>>

可以用支持的运算符组成复杂表达式,但是不支持比较运算符的连用,例如,若想表达n>1,且n<4:

  • 不支持如下表达方式

    1 < n < 4

  • 可以使用如下表达方式

    tik.all((1 < n) , (n < 4))

支持的型号

Atlas 200/300/500 推理产品

Atlas 训练系列产品

Atlas推理系列产品AI Core

Atlas推理系列产品Vector Core

Atlas A2训练系列产品/Atlas 800I A2推理产品

Atlas 200/500 A2推理产品

注意事项

输入为Scalar或Expr时,注意不支持如下数据类型:

Atlas 200/300/500 推理产品,Scalar和Expr中的scalar不支持float16或float32类型。

Atlas 训练系列产品,Scalar和Expr中的scalar不支持float16类型。

Atlas推理系列产品AI Core,Scalar和Expr中的scalar不支持float16类型。

Atlas推理系列产品Vector Core,Scalar和Expr中的scalar不支持float16类型。

Atlas A2训练系列产品/Atlas 800I A2推理产品,Scalar和Expr中的scalar不支持float16类型。

Atlas 200/500 A2推理产品,Scalar和Expr中的scalar不支持float16类型。

返回值

返回TIK表达式。

例如:tik.negate(scalar > 1)

返回:(scalar<=1)

调用示例

# negate 输入参数为True, 则结果为False,不会进入if_scope分支
tik_instance = tik.Tik()
data_A= tik_instance.Tensor(shape=(128,), name="data_A", scope=tik.scope_gm, dtype="int32")
data_A_ub = tik_instance.Tensor(shape=(128,), name="data_A_ub", scope=tik.scope_ubuf, dtype="int32")
bool_B = True
tik_instance.vec_dup(64, data_A_ub, 1, 1, 8)
with tik_instance.if_scope(tik.negate(bool_B)):    
    tik_instance.data_move(data_A, data_A_ub, 0, 1, 128 // 16, 0, 0)
tik_instance.BuildCCE(kernel_name, inputs=[], outputs=[data_A])

# negate 输入参数为False,则结果为True,进入if_scope分支
tik_instance = tik.Tik()
data_A= tik_instance.Tensor(shape=(128,), name="data_A", scope=tik.scope_gm, dtype="int32")
data_A_ub = tik_instance.Tensor(shape=(128,), name="data_A_ub", scope=tik.scope_ubuf, dtype="int32")
bool_B = False
tik_instance.vec_dup(64, data_A_ub, 1, 1, 8)
with tik_instance.if_scope(tik.negate(bool_B)):       
    tik_instance.data_move(data_A, data_A_ub, 0, 1, 128 // 16, 0, 0)
tik_instance.BuildCCE(kernel_name, inputs=[], outputs=[data_A])

两次返回结果分别如下:
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词