torch.max(input, dim, keepdim=False, out=None) -> (Tensor, LongTensor)
按维度dim 返回最大值以及最大值的索引。
此时返回一个input的最大值。
例子: import torch logist = torch.tensor([[-0.1661, -0.3044]]) a = torch.max(logist) print('------a value: {}'.format(a)) 输出: ------a value: -0.16609999537467957dim = 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
