torch.logical_and()方法

本文详细介绍了PyTorch中的torch.logical_and()函数,该函数用于计算张量元素间的逻辑AND。当输入张量的元素为非零时,视为True,零则视为False。通过示例展示了不带out参数和带out参数的用法,以及如何处理二维张量和其他逻辑运算组合。同时,文章提供了不同数据类型的输出结果,帮助理解其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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]])

输出结果:
在这里插入图片描述
用于笔记记录
本人水平有限 如有错误欢迎指正交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值