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