Shortcuts

torch.median

torch.median(input) 张量

返回input中值的中位数。

注意

对于元素数量为偶数的input张量,中位数并不唯一。在这种情况下,返回两个中位数中较小的一个。要计算两个中位数的平均值,请使用torch.quantile()并设置q=0.5

警告

median(dim=0)不同,此函数生成确定性(子)梯度

Parameters

输入 (张量) – 输入张量。

示例:

>>> a = torch.randn(1, 3)
>>> a
tensor([[ 1.5219, -1.5212,  0.2202]])
>>> torch.median(a)
tensor(0.2202)
torch.median(input, dim=-1, keepdim=False, *, out=None)

返回一个命名元组 (values, indices),其中 values 包含 input 在维度 dim 中每行的中位数,而 indices 包含在维度 dim 中找到的中位数的索引。

默认情况下,diminput 张量的最后一个维度。

如果 keepdimTrue,输出张量的大小与 input 相同,除了在维度 dim 上它们的大小为1。 否则,dim 会被压缩(参见 torch.squeeze()),导致输出张量的维度比 input 少1。

注意

对于在维度 dim 中具有偶数个元素的 input 张量,中位数并不唯一。在这种情况下,返回两个中位数中较小的一个。要在 input 中计算两个中位数的平均值,请使用 torch.quantile() 并设置 q=0.5

警告

indices 不一定包含找到的每个中值的首次出现,除非它是唯一的。 具体的实现细节因设备而异。 通常情况下,不要期望在CPU和GPU上运行时得到相同的结果。 出于同样的原因,不要期望梯度是确定性的。

Parameters
  • 输入 (张量) – 输入张量。

  • dim (int) – 要减少的维度。

  • keepdim (布尔值) – 输出张量是否保留dim

Keyword Arguments

out ((Tensor, Tensor), 可选) – 第一个张量将被填充中位数值,第二个张量(必须具有 dtype long)将填充它们在维度 dim 中的索引。

示例:

>>> a = torch.randn(4, 5)
>>> a
张量([[ 0.2505, -0.3982, -0.9948,  0.3518, -1.3131],
        [ 0.3180, -0.6993,  1.0436,  0.0438,  0.2270],
        [-0.2751,  0.7303,  0.2192,  0.3321,  0.2488],
        [ 1.0778, -1.9510,  0.7048,  0.4742, -0.7125]])
>>> torch.median(a, 1)
torch.return_types.median(values=张量([-0.3982,  0.2270,  0.2488,  0.4742]), indices=张量([1, 4, 4, 3]))