常见的统计属性:norm(范数),mean(均值), sum(求和),prod(累乘),max(最大值),min(最小值),argmin(最小值位置),argmax(最大值位置),kthvalue(求第k个小的值的位置),topk(求前k个大的值)
norm-p
.norm(1)一范数,所有元素绝对值求和
.norm(2)二范数,所有元素绝对值的平方和,再开根
.norm(n,dim=d)指定维度上的范数,取哪个维度那个维度会被消掉。
import torch
a=torch.full([8],1)
b=a.view(2,4)
c=a.view(2,2,2)
print(b)
print(c)
print(a.norm(1),b.norm(1),c.norm(1))
print(a.norm(2),b.norm(2),c.norm(2))
print(b.norm(1,dim=1))
print(b.norm(2,dim=1))
print(c.norm(1,dim=1))
print(c.norm(2,dim=1))
.argmax和.argmin返回打平后的索引
.argmax(dim=1)返回指定维度最大值索引
.max(dim=d)产生两个结果,最大值和最大值所在位置。
使用keepdim可以使结果与原数据保持维度一致。
import torch
a=torch.randn(4,10)
print(a)
print(a.max(dim=1))
print(a.argmax(dim=1))
print(a.max(dim=1,keepdim=True))
print(a.argmax(dim=1,keepdim=True))
top-k,取值最大的前k个值同时返回索引
.kthvalue(k,dim=d)取第d个维度上,第k个小的值(只能取小),同时返回索引。
1、>,>=,<,<=,!=,==
返回的类型时bytetensor不再是floattensor
2、torch.eq(a,b)判断对应位置每个元素是否相等,等为1不等为0,torch.equal(a,b)判断a,b是否完全一样,返回true或false。
import torch
a=torch.randn(4,10)
print(a>0)
print(torch.gt(a,0))#大于0
print(a!=0)#不等于0
b=torch.ones(2,3)
c=torch.randn(2,3)
print(torch.eq(b,c))
print(torch.eq(b,b))
print(torch.equal(b,b))