1:求范数norm(int)/norm(int,dim)当只有一个参数时表示求几范数,当有两个参数时第二个表示在哪一个索引维度求范数。
[注]在那个维度进行求范数时,哪个维度消失。例如图中shape为[2,2,2]的c在第0维度求范数则其shape变为[2,2]
[注]较难理解因此进行详细刨析对于如下类型的tensorD:
D=tensor([[[a1,a2],
[a3,a4]],
[[b1,b2],
[b3,b4]]])
int:D.norm(2,dim=0)
out:tensor([[(a1*a1+b1*b1)**1/2,(a2*a2+b2*b2)**1/2],
[(a3*a3+b3*b3)**1/2,(a4*a4+b4*b4)**1/2]])
int:D.norm(2,dim=0).shape
out:tensor([2,2])
int:D.norm(2,dim=1)
out:tensor([[(a1*a1+a3*a3)**1/2,(a2*a2+a4*a4)**1/2],
[(b1*b1+b3*b3)**1/2,(b2*b2+b4*b4)**1/2]])
int:D.norm(2,dim=1).shape
out:tensor([2,2])
int:D.norm(2,dim=2)
out:tensor([[(a1*a1+a2*a2)**1/2,(a3*a3+a4*a4)**1/2],
[(b1*b1+b2*b2)**1/2,(b3*b3+b4*b4)**1/2]])
int:D.norm(2,dim=2).shape
out:tensor([2,2])
2:mean求均值/sum/min/max/prod数乘/argmax最大索引/argmin表示最小索引
【注】这些函数都会将tensor转换成1维的tensor,然后进行运算
【注】:如上图如果需要在指定维度计算最值,可以添加索引维度参数。
【注】当min()添加dim参数时,返回两个值。一个为满足条件的元素tensor,一个为满足条件的索引tensor
[注]由于以上的几种函数会进行销维,故如果要保持与原来的维度相同,则可以使用keepdim参数。其值为true、false
3:topk() 求前k大 or kthvalue()求第k大
[注]topk(k,dim,target)参数k为前k个top,dim为需要满足条件的维度,target=true表示求最大,=false表示求最小
其返回值为包括两个tensor,分别为元素(值)tensor和索引tensor.
[注]kthvalue(k,dim)参数k表示满足条件的第k个,dim为需要满足条件的维度
其返回值包括两个tensor,分别为元素(值)tensor,一个为索引tensor。如果需要于原来的tensor的shape保持一致,可以使用
keepdim参数。