函数输入:
- input:需要进行max操作的Tensor类变量
- dim:需要进行max的维度(被固定的维度)
- max:Tensor类变量,用于存储返回结果
- max_indices:Tensor类变量,用于存储返回结果的索引
- keepdim=False:返回值与原Tensor的size是否一致
一、一维Tensor
一维情况较为简单,返回数组最大值,也可以添加参数dim,添加后返回结果会多包含一个索引值。
In[3]: temp = torch.tensor([1,2,3,4,5])
In[4]: torch.max(temp)
Out[4]: tensor(5)
In[5]: torch.max(temp,dim=0)
Out[5]:
torch.return_types.max(
values=tensor(5),
indices=tensor(4))
二、多维Tensor
2.1 不使用dim参数(默认情况)
多维Tensor在不使用dim参数情况下,将默认返回所有数值中的最大值,且不包含索引。
In[8]: temp = torch.tensor([[1,2,3,4,5],[6,7,3,4,5]])
In[9]: temp.max()
Out[9]: tensor(7)
2.2 使用dim参数
给出dim参数的情况下,首先固定dim维度值\(x_ i \),遍历除dim之外的维度(\( [j,k,…] \)),获取\( x_i \)对应位置下的最大值\( [x_i,x_{max_j},x_{max_k}…] \),并按照该方式遍历dim维度,得到一个与dim维度元素数量相同的一维数组。并返回最大值索引除dim维度外的其他维度索引值。
In[8]: temp = torch.tensor([[1,2,3,4,5],[6,7,3,4,5]])
In[10]: temp.max(dim=1)
Out[10]:
torch.return_types.max(
values=tensor([5, 7]),
indices=tensor([4, 1]))
例如上述代码:二维情况下dim=1,先取第二维数值为0,遍历第一维获得索引序列:[0, 0], [0 , 1], [0, 2], [0, 3], [0, 4],其中最大值位于[0, 4],其值为5,故返回结果的第一个值为5,索引为4。再取第二维数值为1,同样过程获得索引序列[1, 0], [1 , 1], [1, 2], [1, 3], [1, 4],其中最大值位于[1, 1],其值为7,故返回结果的第一个值为7,索引为1。