pytorch笔记:allclose,isclose,eq,equal

1 allclose

1.1介绍

torch.allclose是一个PyTorch函数,用于检查两个张量是否在某个容忍度范围内近似相等

torch.allclose(input, other, rtol=1e-05, atol=1e-08, equal_nan=False)
  • input (Tensor) – 第一个输入张量
  • other (Tensor) – 第二个输入张量
  • rtol (float) – 相对容忍度
  • atol (float) – 绝对容忍度
  • equal_nan (bool) – 如果为True,将视NANs在两个张量中为相等,即使它们处于不同的位置。

返回:

  • (bool) - 如果两个张量在容忍度范围内是近似的,则返回True,否则返回False。

1.2 工作原理

两个张量ab被视为近似相等,如果以下条件对所有元素都成立:

|a - b| <= atol + rtol * |b|

1.3 举例

import torch

a = torch.tensor([1.0, 2.0, 3.0])
b = torch.tensor([1.0, 2.001, 3.0])

print(torch.allclose(a, b, rtol=1e-03))  
#True
print(torch.allclose(a, b, rtol=1e-05))
#False

2 isclose

torch.isclose函数与torch.allclose类似,但其主要区别是它返回一个布尔张量,这个张量表示输入张量中的每个元素是否与另一个张量中的对应元素接近

import torch

a = torch.tensor([1.0, 2.0, 3.0])
b = torch.tensor([1.0, 2.001, 3.0])

print(torch.isclose(a, b, rtol=1e-03))  
print(torch.isclose(a, b, rtol=1e-05))
'''
tensor([True, True, True])
tensor([ True, False,  True])
'''

3 eq

对两个输入张量进行元素级别的比较

返回一个与输入张量同形状的布尔张量。如果两个输入张量在某个位置上的值相等,则对应的输出张量位置为 True,否则为 False

import torch

a = torch.tensor([1, 2, 3])
b = torch.tensor([1, 0, 3])

print(torch.eq(a, b))
#tensor([ True, False,  True])

4 equal

检查两个张量是否有相同的大小和元素值

它返回一个布尔值:如果两个输入张量的大小和所有元素都相等,则返回 True;否则返回 False

import torch

a = torch.tensor([1, 2, 3])
b = torch.tensor([1, 2, 3])
c = torch.tensor([1, 0, 3])

print(torch.equal(a, b))  # 输出: True
print(torch.equal(a, c))  # 输出: False

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值