pytorch(6)Tensor统计

# 一、Tensor统计

  • norm   范数   mormalize是正则化
a=torch.full([8],1)
b=a.view(2,4)
c=a.view(2,2,2)

b
Out[6]: 
tensor([[1., 1., 1., 1.],
        [1., 1., 1., 1.]])
c
Out[7]: 
tensor([[[1., 1.],
         [1., 1.]],
        [[1., 1.],
         [1., 1.]]])

a.norm(1),b.norm(1),c.norm(1)#1范数,绝对值求和
Out[8]: (tensor(8.), tensor(8.), tensor(8.))

a.norm(2),b.norm(2),c.norm(2)#2范数,平方和开根号
Out[10]: (tensor(2.8284), tensor(2.8284), tensor(2.8284))

b.norm(1,dim=1)#给定维度
Out[11]: tensor([4., 4.])

c.norm(1,dim=1)
Out[12]: 
tensor([[2., 2.],
        [2., 2.]])

c.norm(1,dim=2)
Out[13]: 
tensor([[2., 2.],
        [2., 2.]])

给定维度的范数计算:例如b,尺寸[2,4],dim=1维度上元素做1范数,[1+1+1+1,1+1+1+1]→[4,4]

  • mean sum
  • prod   累乘
  • max min argmin argmax 最大值位置 首先把tensor打平,再给索引   如果不想打平,就必须给定在某个维度求最值
a=torch.rand(4,8)

a
Out[15]: 
tensor([[0.1623, 0.6655, 0.1087, 0.1964, 0.0107, 0.0726, 0.6888, 0.2992],
        [0.4385, 0.5422, 0.6995, 0.5982, 0.8123, 0.0262, 0.1726, 0.2951],
        [0.8082, 0.7044, 0.3842, 0.4944, 0.3141, 0.6634, 0.2168, 0.1553],
        [0.2807, 0.8313, 0.8486, 0.2009, 0.3630, 0.3601, 0.7365, 0.2035]])

a.argmax()
Out[17]: tensor(26)

a.argmax(dim=1)
Out[18]: tensor([6, 4, 0, 2])

  • dim    keepdim  得到的tensor  dim和原来的一样
a.max(dim=1)
Out[19]: (tensor([0.6888, 0.8123, 0.8082, 0.8486]), tensor([6, 4, 0, 2]))

a.max(dim=1,keepdim=True)
Out[20]: 
(tensor([[0.6888],
         [0.8123],
         [0.8082],
         [0.8486]]), tensor([[6],
         [4],
         [0],
         [2]]))
  • kthvalue  topk
a.topk(3,dim=1)  #top 3
Out[21]: 
(tensor([[0.6888, 0.6655, 0.2992],
         [0.8123, 0.6995, 0.5982],
         [0.8082, 0.7044, 0.6634],
         [0.8486, 0.8313, 0.7365]]), tensor([[6, 1, 7],
         [4, 2, 3],
         [0, 1, 5],
         [2, 1, 6]]))

a.topk(3,dim=1,largest=False)
Out[23]: 
(tensor([[0.0107, 0.0726, 0.1087],
         [0.0262, 0.1726, 0.2951],
         [0.1553, 0.2168, 0.3141],
         [0.2009, 0.2035, 0.2807]]), tensor([[4, 5, 2],
         [5, 6, 7],
         [7, 6, 4],
         [3, 7, 0]]))

a.kthvalue(8,dim=1)#第8小  只能设置为小,默认为小
Out[24]: (tensor([0.6888, 0.8123, 0.8082, 0.8486]), tensor([6, 4, 0, 2]))
  • compare:  > >= < <= != ==  torch.eq(a,b)   返回一个tensor,元素为0或1,
  • torch.eq(a,b)返回True 或 False
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值