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
中找到的中位数的索引。默认情况下,
dim
是input
张量的最后一个维度。如果
keepdim
是True
,输出张量的大小与input
相同,除了在维度dim
上它们的大小为1。 否则,dim
会被压缩(参见torch.squeeze()
),导致输出张量的维度比input
少1。注意
对于在维度
dim
中具有偶数个元素的input
张量,中位数并不唯一。在这种情况下,返回两个中位数中较小的一个。要在input
中计算两个中位数的平均值,请使用torch.quantile()
并设置q=0.5
。警告
indices
不一定包含找到的每个中值的首次出现,除非它是唯一的。 具体的实现细节因设备而异。 通常情况下,不要期望在CPU和GPU上运行时得到相同的结果。 出于同样的原因,不要期望梯度是确定性的。- Parameters
- 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]))