Torch.max()作用简述

文章介绍了在PyTorch中使用torch.max()函数计算张量在不同维度上的最大值及其对应索引的方法,展示了如何处理多维张量并压缩维度以获得结果。
摘要由CSDN通过智能技术生成

计算目标张量的目标维度的最大值,返回两个张量,第一个values为计算后的最大值,第二个indices为次最大值的索引

函数参数

torch.max(input, dim, max=None, max_indices=None) -> (Tensor, LongTensor)

input 为需要进行操作的张量,dim进行操作的维度数

有一下两种写法

testInupt = torch.tensor([
                  [
                   [1,22,3,4,5],
                   [2,3,44,5,6],
                   [3,4,5,66,7],
                   [4,5,6,7,88],
                  ],
                  [
                   [11,2,3,4,5],
                   [2,33,4,5,6],
                   [3,4,54,6,7],
                   [4,5,6,77,8],
                  ],
                 ])

torch.max(testInupt,0)

testInupt.max(0)

 以上文代码为例,一个[2,4,5]的张量,分别进行0,1,2维的最大值

print("a.max(0):",a.max(0))

——————————————————

a.max(0): torch.return_types.max(
values=tensor([ [11, 22,  3,  4,  5],
                          [ 2, 33, 44,  5,  6],
                          [ 3,  4, 54, 66,  7],
                          [ 4,  5,  6, 77, 88] ]),
indices=tensor([ [1, 0, 0, 0, 0],
                          [0, 1, 0, 0, 0],
                          [0, 0, 1, 0, 0],
                          [0, 0, 0, 1, 0] ]))

对0维进行求最大值,那么0维度就会合并为一个并消失,会对两个[4,5]的张量进行逐个比对并取最大值,最后去掉为1的0维度,变成一个[4,5]的张量, 如,[11,22,3,4,5]中11取自第一个张量,22取自第二个张量,于是在索引中就是[0,1,0,0,0]

print("a.max(1):",a.max(1))

___________________________________________

a.max(1): torch.return_types.max(
values=tensor([ [ 4, 22, 44, 66, 88],
                          [11, 33, 54, 77,  8] ]),
indices=tensor([ [3, 0, 1, 2, 3],
                           [0, 1, 2, 3, 3] ]))

 对1维进行求最大值,同理的1维将被合并成一个值为1的维度并被压缩掉,最后变成一个[2,5]的张量,也就是说4个1维的张量将互相逐个比对元素并合并,比如[ 4, 22, 44, 66, 88]中,4来自第4个1维张量,22来自第1个,44来自第二个,66来自第3个,88来自第4个,所以对应的索引张量为3, 0, 1, 2, 3]

 print("a.max(2):",a.max(2))

——————————————————————————————————

a.max(2): torch.return_types.max(
values=tensor([  [22, 44, 66, 88],
                           [11, 33, 54, 77]  ]),
indices=tensor([  [1, 2, 3, 4],
                            [0, 1, 2, 3]  ]))

对2维张量求最大值,那么也就是最后变成一个[2,4]的形状 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值