torch.max#
- torch.max(input, *, out=None) Tensor#
返回
input张量中所有元素的最大值。注意
max/min和amax/amin之间的区别在于amax/amin支持在多个维度上进行归约,amax/amin不返回索引。
当有多个输入元素具有相同的最小或最大值时,
amax/amin会在这些值之间均匀分配梯度。- 对于
max/min 如果对所有维度进行归约(未指定 dim),则梯度会在相等的
max/min值之间均匀分配。如果在一指定的轴上进行归约,则只传播到索引的元素。
示例
>>> a = torch.randn(1, 3) >>> a tensor([[ 0.6763, 0.7445, -2.2369]]) >>> torch.max(a) tensor(0.7445)
- torch.max(input, dim, keepdim=False, *, out=None)
返回一个命名元组
(values, indices),其中values是给定维度dim下input张量每行的最大值。而indices是找到的每个最大值的索引位置(argmax)。如果
keepdim为True,则输出张量的大小与input相同,只是在dim维度上大小为 1。否则,dim会被压缩(参见torch.squeeze()),导致输出张量的维度比input少 1。注意
如果在一个缩减行中有多个最大值,则返回第一个最大值的索引。
- 参数
- 关键字参数
out (tuple, optional) – 包含两个输出张量(max, max_indices)的结果元组
示例
>>> a = torch.randn(4, 4) >>> a tensor([[-1.2360, -0.2942, -0.1222, 0.8475], [ 1.1949, -1.1127, -2.2379, -0.6702], [ 1.5717, -0.9207, 0.1297, -1.8768], [-0.6172, 1.0036, -0.6060, -0.2432]]) >>> torch.max(a, 1) torch.return_types.max(values=tensor([0.8475, 1.1949, 1.5717, 1.0036]), indices=tensor([3, 0, 0, 1])) >>> a = torch.tensor([[1.0, 2.0], [3.0, 4.0]]) >>> a.max(dim=1, keepdim=True) torch.return_types.max( values=tensor([[2.], [4.]]), indices=tensor([[1], [1]])) >>> a.max(dim=1, keepdim=False) torch.return_types.max( values=tensor([2., 4.]), indices=tensor([1, 1]))
- torch.max(input, other, *, out=None) Tensor
参见
torch.maximum()。