torch.logical_and()计算给定输入张量的元素逻辑 AND。零被视为False,非零被视为 True
官方文档说明: https://pytorch.org/docs/stable/generated/torch.logical_and.html#torch.logical_and
torch.logical_and(input, other, *, out=None) →返回张量
- input(张量) – 输入张量
- other(张量) – 用于计算 AND 的张量
- out (张量,可选)– 输出张量
具体例子: 输入两个tensor类型的变量input和other对应的位置进行求与操作,如果是张量内部数字类型,非0转化为True, 0转化为False
1.不带out参数类型
import torch
# 不带out参数类型
a = torch.tensor([True, False, True])
b = torch.tensor([True, False, False])
print(torch.logical_and(a, b))
# tensor([ True, False, False])
a = torch.tensor([0, 1, 10, 0], dtype=torch.int8) # 非0 True, 0 False
b = torch.tensor([4, 0, 1, 0], dtype=torch.int8) # 非0 True, 0 False
print(torch.logical_and(a, b))
输出结果:
2.带out参数类型
输出多一个后缀
import torch
# 带out参数类型
a = torch.tensor([0, 1, 10, 0], dtype=torch.int8)
b = torch.tensor([4, 0, 1, 0], dtype=torch.int8)
print(torch.logical_and(a, b, out=torch.empty(4, dtype=torch.bool))) # 返回boolean类型
# tensor([False, False, True, False])
print(torch.logical_and(a, b, out=torch.empty(4, dtype=torch.int))) # 返回int32类型
# tensor([0, 0, 1, 0], dtype=torch.int32)
print(torch.logical_and(a, b, out=torch.empty(4, dtype=torch.double))) # 返回double类型
# tensor([0., 0., 1., 0.], dtype=torch.float64)
输出结果:
3.二维和其他例子
import torch
# 其他例子
a = torch.tensor([0, 1, 3, 2, 2])
b = torch.tensor([1, 1, 0, 1, 2])
print(a == b) # tensor([False, True, False, False, True])
print(b != 2) # tensor([ True, True, True, True, False])
print(torch.logical_and(a==b, b != 2))
# tensor([False, True, False, False, False])
print("=" * 100)
# 其他例子
a = torch.tensor([[0, 1, 3, 2, 2],
[0, 3, 1, 0, 2]])
b = torch.tensor([[1, 1, 0, 1, 2],
[1, 1, 2, 0, 2]])
print(torch.logical_and(a, b))
# tensor([[False, True, False, True, True],
# [False, True, True, False, True]])
输出结果:
用于笔记记录
本人水平有限 如有错误欢迎指正交流