pytorch-张量-张量的计算-比较大小

张量计算

张量的计算内容主要包括:张量之间的大小比较,张量的基本运算,如元素之间的运算和矩阵之间的运算等,张量与统计相关的运算,如排序,最大值,最小值,最大值的位置等内容。

1,比较大小:

对于 t o r c h . a l l c l o s e ( ) torch.allclose() torch.allclose()函数,比较的是两个元素是否接近,比较A和B是否接近的公式为:
∣ A − B ∣ < = a t o l + r t o l × ∣ B ∣ |A-B|<=atol+rtol\times|B| AB<=atol+rtol×B

import torch

# 比较两个数是否接近
a = torch.tensor([10.0])
b = torch.tensor([10.1])
print(torch.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False))
print(torch.allclose(a, b, rtol=0.1, atol=0.01, equal_nan=False))
# 在不同的判断条件下,得出的结果也是不同的

# 如果equal_nan=True,那么缺失值可以判断为接近
a = torch.tensor(float("nan"))
print(torch.allclose(a, a, equal_nan=False))
print(torch.allclose(a, a, equal_nan=True))


a = torch.tensor([1, 2, 3, 4, 5, 6])
b = torch.arange(1, 7)
c = torch.unsqueeze(b, dim=0)
# torch.eq()函数用来判断两个元素是否相等
print(torch.eq(a, b))
print(torch.eq(a, c))
# torch.equal()函数可以判断两个张量是否具有相同的形状和元素
print(torch.equal(a, b))
print(torch.equal(a, c))

# torch.ge()函数是逐元素比较是否大于等于(>=)
print(torch.ge(a, b))
print(torch.ge(a, c))
# torch.gt()函数是逐元素比较大于
print(torch.gt(a, b))
print(torch.gt(a, c))
# torch.le()函数是逐元素比较是否小于等于(<=)
print(torch.le(a, b))
print(torch.le(a, c))
# torch.lt()函数是逐元素比较大于
print(torch.lt(a, b))
print(torch.lt(a, c))
# torch.ne()函数是逐元素比较不等于
print(torch.ne(a, b))
print(torch.ne(a, c))
# torch.isnan()函数用来判断是否为缺失值
# 缺失值是值:NULL,也包括表示数值确实的特殊数值(如,在系统中用-999来表示的数值不存在)
print(torch.isnan(torch.tensor([0, 1, float("nan"), 2])))

猜你喜欢

转载自blog.csdn.net/weixin_45955630/article/details/111668135