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 工作原理
两个张量a
和b
被视为近似相等,如果以下条件对所有元素都成立:
|a - b| <= atol + rtol * |b|
1.3 举例
import torcha = 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 torcha = 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 torcha = 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 torcha = 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