pypto.logical_and#
产品支持情况#
产品 |
是否支持 |
|---|---|
Ascend 950PR/Ascend 950DT |
√ |
Atlas A3 训练系列产品/Atlas A3 推理系列产品 |
√ |
Atlas A2 训练系列产品/Atlas A2 推理系列产品 |
√ |
功能说明#
对两个输入的Tensor行逐元素逻辑与(AND)运算。运算规则:
如果输入的Tensor为 bool 则 True and True -> True,其余情况皆为 False。
如果输入的Tensor数值,会自动转换成 True/False,0 为 False,非 0 为 True。
函数原型#
logical_and(input: Tensor, other: Tensor) -> Tensor
参数说明#
参数名 |
输入/输出 |
说明 |
|---|---|---|
input |
输入 |
源操作数。 |
other |
输入 |
源操作数。 |
返回值说明#
返回输出Tensor,Tensor的数据类型为DT_BOOL,形状为广播后的形状。
约束说明#
TileShape与input、other维度保持一致;
由于存在临时内存使用,TileShape大小有额外约束,假设TileShape为[a,b,c,d],那么a*b*c*d*sizeof(self) + a*b*c*d*sizeof(other) + a*b*c*d*sizeof(BOOL) + 1.1875KB<UB。
调用示例#
TileShape设置示例#
说明:调用该operation接口前,应通过set_vec_tile_shapes设置TileShape。
TileShape维度应和输出一致。
示例1:非广播场景,输入intput shape为[m, n],other为[m, n],输出为[m, n],TileShape设置为[m1, n1],则m1, n1分别用于切分m, n轴。
pypto.set_vec_tile_shapes(4, 16)
示例2:广播场景,输入intput shape为[m, n],other为[m, 1],输出为[m, n],TileShape设置为[m1, n1],则m1, n1分别用于切分m, n轴。
pypto.set_vec_tile_shapes(4, 16)
接口调用示例#
x = pypto.tensor([2], pypto.DT_BOOL)
y1 = pypto.tensor([2], pypto.DT_BOOL)
z1 = pypto.logical_and(x, y1)
# 支持广播
y2 = pypto.tensor([2,2], pypto.DT_BOOL)
z2 = pypto.logical_and(x, y2)
结果示例如下:
输入数据x: [True, False]
输入数据y1: [True, True]
输入数据y2: [[True, False], [False, True]]
输出数据z1: [True, False]
输出数据z2: [[True, False], [False, False]]