torch之学习笔记——统计操作

常见的统计操作:

Norm:求范数

Mean sum :均值,求和

Prod: 累乘

Max,min,argmin,argmax : 最大值,最小值,最大值,最小值的位置

Kthvalue, topk : 第几个位置的位置或者值,top几 的值或者位置。

 高阶统计操作:

Where 和 gather  :根据条件选取源头,和查表的操作。

1, norm 范数,统计tensor范数的值 

        注意:norm 和normalize不同,normalize指的是归一化,正则化。这个norm指的是vector norm 向量范数。但是在pytorh中就变成了matix norm 和vector norm 有一点区别:

 

         代码:

a = torch.full([8], 1)
b = a.view(2, 4)
c = a.view(2, 2, 2)
print(b)  # shape : [2,4]
print(c)
# 对tensor所有元素求一范数,就是所有元素和
print(a.norm(1),b.norm(1),c.norm(1))  # tensor(8.) tensor(8.) tensor(8.)
# 对tensor所有元素求二范数,就是所有元素平方和,开根号。
print(a.norm(2),b.norm(2),c.norm(2))  # tensor(2.8284) tensor(2.8284) tensor(2.8284)
# 对第一个维度上的元素进行一范数
print(b.norm(1,dim=1)) # b-shape: [2,4]  # tensor([4., 4.]) shape==>[2]
# 对第一个维度上的元素进行二范数
print(b.norm(2,dim=1)) # b-shape: [2,4]  # tensor([2., 2.]) shape==>[2]
# 对第0个维度上的元素进行一范数
print(c.norm(1,dim=0)) # c_shape : [2,2,2] # tensor([[2., 2.],[2., 2.]])  shape==>[2,2]
# 对第0个维度上的元素进行二范数
print(c.norm(2,dim=0)) # c_shape : [2,2,2] # tensor([[2., 2.],[2., 2.]])  shape==>[2,2]

 

 2, mean,sum, min , max , prod : 均值,求和,最小值,最大值,累乘

        注意:函数中()不加参数,表示对所有元素的统计操作。

注意 argmax /argmin 对所有元素操作,会先把tensor打平。

在维度的统计的例子:

 3, dim ,和keepdim在统计中的作用:

        Keepdim和统计之前的tensor保持相同的dim

a = torch.rand(4,10)
print(a)
# torch.return_types.max(values=tensor([0.9392, 0.8477, 0.8333, 0.7605]),
# indices=tensor([0, 0, 9, 7]))  # shape==>[4]
print(a.max(dim=1))
print(a.argmax(dim=1)) # tensor([0, 0, 9, 7]) # shape==>[4]

print(a.max(dim=1,keepdim=True)) # shape==>[4 ,1]
print(a.argmax(dim=1,keepdim=True)) # shape==>[4 ,1] (和统计之前的tensor保持相同的dim) 

4,top-k or k-th讲解:

        Topk :例子 (属于是max 的扩展,找到前K个最大/最小的元素)

        Kthvalue: 返回指定dim维度中第几小的元素(第几个元素,元素从小到大排。)

例子:

 5,其他统计操作:>,>=,<,<=,!=,==:

        注意:torch.eq(a.b)返回的是每一个元素是否相等

                Torch.equal(a,b)返回的是整个tensor比较的结果。

6,Where 和 gather  :根据条件选取源头,和查表的操作。

        1,where 根据条件:

                例子:

         2,Gather操作 收集操作:

                 例子:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值