L1範式
就是将向量中所有元素的絕對值相加求和
以上是對a、b、c三個向量求L1範式,都是8
L2範式
L2是所有元素平方和然後再開根号
還可以在向量的指定維度求範式,需要知道的是,在向量的哪個維度取範式,那麼求出來的範式的維度就是原始向量消掉所取維度後的向量維度。
B的shape為(2,4)
對b在1維度上求範式,那麼也就是b的維度為消掉原始b在1維度上的4,那麼它的維度就是(2)
最大值man、最小值min、均值mean,累乘prod,求和sum,最大值索引argmax
求最小值索引argmin
如果argmax和argmin沒有參數,那麼它會求将一個向量拉伸開,也就是拉成dim=0之後求下标
如果要是想讓向量不伸展開,那麼我們可以再指定維度上求最大最小的索引
a. argmin(dim=0)這個表示再dim=0的維度上求最小值得索引
如圖所示,求dim=1維度上的最大值,因為a得維度為(4,5)所以求最大值之後dim為1了,keepdim=True的意思就是說要保持維度,如上所示求最大值之後的dim仍為2
取最大或者最小的幾個值
a.topk(2,dim=1)表示求a在dim=1維度上最大的兩個值
b. topk(1,dim=1)表示求a在dim=1維度上最大的一個值
如果要是想要求最小的幾個值可以
a.topk(2,dim=1,largest=False)
直接求第幾個(從1開始)最小的值
如果不keepdim,那麼輸出的維度為[4]
比較>,>=,<,<=,!=,==會對向量的每個元素進行判斷比較
Torch.equal(a,b)等價于torch.equal(a,b)
會對a,b向量的每一個維度進行比較,相等則返回1,不等返回0
tensor的操作x = torch.randn(4, 3,1)
print(x)
max_value, max_idx = torch.max(x, dim=2)#我們約定0為第一維度,1為第二維度,2為第三維度
#print(max_value)
sum_x = torch.sum(x, dim=2)
print(sum_x)
歸并操作此類操作會使輸出形狀小于輸入形狀,并可以沿着某一維度進行指定操作
以上大多數函數都有一個參數dim,用來指定這些操作是在哪個維度上執行的。關于dim(對應于Numpy中的axis)的解釋衆說紛纭,這裡提供一個簡單的記憶方式:
假設輸入的形狀是(m, n, k)
· 如果指定dim=0,輸出的形狀就是(1, n, k)或者(n, k)
· 如果指定dim=1,輸出的形狀就是(m, 1, k)或者(m, k)
· 如果指定dim=2,輸出的形狀就是(m, n, 1)或者(m, n)
size中是否有"1",取決于參數keepdim,keepdim=True會保留維度1。注意,以上隻是經驗總結,并非所有函數都符合這種形狀變化方式,如cumsum。
逐元素比較操作
· t.max(tensor):返回tensor中最大的一個數
· t.max(tensor,dim):指定維上最大的數,返回tensor和下标
· t.max(tensor1, tensor2): 比較兩個tensor相比較大的元素
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!