torch.median
- torch.median(input) → Tensor
-
返回
input
中值的中位数。注意
当
input
张量的元素数量为偶数时,中位数不唯一。此时会返回两个中位数中的较小值。若要计算这两个中位数的平均值,请使用torch.quantile()
并设置q=0.5
。警告
此函数生成的(sub)梯度是确定性的,而
median(dim=0)
则不然。- 参数
-
input (Tensor) – 需要输入的张量。
示例:
>>> 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
上的索引。默认情况下,
dim
表示input
张量的最后一个维度。如果
keepdim
是True
,则输出张量与输入张量的大小相同,只是在dim
维度上其大小为 1。否则,dim
将被挤压(参见torch.squeeze()
),导致输出张量比输入张量少一个维度。注意
当
input
张量在维度dim
上的元素数量为偶数时,中位数不唯一。此时会返回两个中位数中的较小值。若要计算这两个中位数的平均值,请使用torch.quantile()
并设置q=0.5
。警告
indices
不一定包含每个中位数值的第一次出现位置,除非该值是唯一的。具体的实现细节因设备而异。通常情况下,在 CPU 和 GPU 上运行时不要期待得到相同的结果。同样地,也不要期望梯度是确定性的。示例:
>>> a = torch.randn(4, 5) >>> a tensor([[ 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=tensor([-0.3982, 0.2270, 0.2488, 0.4742]), indices=tensor([1, 4, 4, 3]))