torch.max()/Tensor类变量.max()

函数输入:

  • 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。

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用 * 标注