zoukankan      html  css  js  c++  java
  • tensor的统计属性

    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

  • 相关阅读:
    一些概念理解(持续更新)
    python练习题
    linux常用命令
    数据库索引的一点学习(待更新)
    sql注入的一点学习(待更新)
    python 选择排序的实现
    python 冒泡排序的实现
    1--初始配置
    0--HttpUrlConnection 基础知识
    1--HTTP基础知识
  • 原文地址:https://www.cnblogs.com/Jason66661010/p/13602392.html
Copyright © 2011-2022 走看看