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 imes|B| ∣A−B∣<=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])))
上一篇:
通过多线程提高代码的执行效率例子