tensor的統計屬性
阿新 • • 發佈:2020-09-02
tensor的統計屬性
目錄
morm範數
檢視範數
範數1:所有元素的絕對值的求和
範數2:所有元素的絕對值的平方和的開方
例子1:
a = torch.full([8],1)
b = a.view(2,4)
c = a.view(2,2,2)
a.norm(1),b.norm(1),c.norm(1)
#都是tensor(8)
a.norm(2),b.norm(2),c.norm(2)
#都是tensor(2.8284) 根號8
例子2:在指定的維數上面進行norm的檢視
a = torch.full([8],1)
b = a.view(2,4)
c = a.view(2,2,2)
b.norm(1,dim=1)
#tensor([4,4]) 一共兩行 按行取
常見統計屬性
max():矩陣中的最大值以及相應的index
min():矩陣中的最小值以及相應的index
mean():平均值
prod():累乘
sum():求和
argmax():返回最大值的index
argmin():返回最小值的index
argmax與argmin不帶引數的話,會將矩陣先打平之後再尋找最值的index,這樣找到的index一定只是一維的,而不是打平之前的index
argmax(dim=1)來指定進行比較的方向
a = torch.randn(4,10)
a.argmax(dim=1)
#[3,8,6,4]
dim、keepdim引數
dim引數:指定操作的相應位置在哪維
keepdim:在比較後保持維度,不刪除這一維
例子:
a = torch.rand(4,10) print(a.max(dim=1)) torch.return_types.max( values=tensor([0.9857, 0.8758, 0.5322, 0.9021]), #這裡的value的shape:【4】dim=1 indices=tensor([5, 5, 4, 2])) print(a.max(dim=1,keepdim=True)) torch.return_types.max( values=tensor([[0.9857], #這裡的value的shape是【4,1】 dim=2 [0.8758], [0.5322], [0.9021]]), indices=tensor([[5], [5], [4], [2]]))
topk kthvalue函式
topk函式與max其實是一樣的,只不過topk返回的是前幾大的資料
例子:
a = torch.rand(4,10)
print(a.topk(3,dim=1))#返回前三大的資料
torch.return_types.topk(
values=tensor([[0.8964, 0.8960, 0.8854],
[0.9808, 0.8285, 0.7648],
[0.9556, 0.7625, 0.7507],
[0.8583, 0.6822, 0.6390]]),
indices=tensor([[2, 8, 0],
[2, 9, 5],
[8, 6, 2],
[3, 5, 4]]))
而預設選擇最小的方法:
a.topk(3,dim=1,largest=False
)
kthvalue函式:返回第幾小的元素
例子:
a = torch.rand(4,10)
print(a.kthvalue(8,dim=1))
torch.return_types.kthvalue(
values=tensor([0.9058, 0.6853, 0.4763, 0.8167]),
indices=tensor([1, 0, 7, 3]))
compare比較運算
對tensor中的所有資料進行比較,返回同樣shape的ByteTensor
例子:
a:[4,10]
a>0
返回shape【4,10】的tensor
注意torch.eq(a,b)函式與torch.equal(a,b)的區別:
torch.eq(a,b):返回各個元素的比較(與原來的shape一樣)
torch.equal(a,b):返回true或者false