torch.max()语法、用法以及例子

it2026-08-27  6

torch.max()用法

torch.max(input, dim, keepdim=False, out=None) -> (Tensor, LongTensor)

按维度dim 返回最大值以及最大值的索引。

1.torch..max(input)

此时返回一个input的最大值。

例子: import torch logist = torch.tensor([[-0.1661, -0.3044]]) a = torch.max(logist) print('------a value: {}'.format(a)) 输出: ------a value: -0.16609999537467957

2.torch..max(input, dim)

dim = 0 表示按列求最大值,并返回最大值的索引 dim = 1 表示按行求最大值,并返回最大值的索引

例子:

import torch logist = torch.tensor([[-0.1661, -0.3044]]) a = torch.max(logist, 1) # a 中包含两个内容:现在最大值,然后是最大值的索引 print('------a value: {}'.format(a)) predict = torch.max(logist, 1)[0] # 返回一个tensor print('-----predict [0] : {}'.format(predict)) predict = torch.max(logist, 1)[1].cpu().numpy() # 返回一个数组 print('-----predict [1]: {}'.format(predict)) 输出: ------a value: torch.return_types.max( values=tensor([-0.1661]), indices=tensor([0])) -----predict [0] : tensor([-0.1661]) -----predict [1]: [0]

注意:当tensor是N*M,其中N和M大于1,返回的最大值是一个数组,索引是该维度下最大值的索引。比如0,1,2,这种数值。

例子:

import torch logist = torch.tensor([[-0.1661, -0.3044],[-0.2661, 0.4044]]) a = torch.max(logist, 1) # 按行取最大值,a 中包含两个内容:现在最大值,然后是最大值的索引 print('------a value: {}'.format(a)) predict = torch.max(logist, 1)[0] # 返回一个tensor print('-----predict [0] : {}'.format(predict)) predict = torch.max(logist, 1)[1].cpu().numpy() # 返回一个数组 print('-----predict [1]: {}'.format(predict)) 输出: ------a value: torch.return_types.max( values=tensor([-0.1661, 0.4044]), indices=tensor([0, 1])) -----predict [0] : tensor([-0.1661, 0.4044]) -----predict [1]: [0 1]

记住:

torch.max()[0], 只返回最大值的每个数

troch.max()[1], 只返回最大值的每个索引

torch.max()[1].data 只返回variable中的数据部分(去掉Variable containing:)

torch.max()[1].data.numpy() 把数据转化成numpy ndarry

torch.max()[1].data.numpy().squeeze() 把数据条目中维度为1 的删除掉

torch.max(tensor1,tensor2) element-wise 比较tensor1 和tensor2 中的元素,返回较大的那个值

参考:https://blog.csdn.net/weixin_43635550/article/details/100534904

 

 

 

 

最新回复(0)