torch.median#
- torch.median(input) Tensor#
返回
input中值的中位數。注意
當
input張量包含偶數個元素時,中位數不是唯一的。在這種情況下,將返回兩個中位數中較低的一個。要計算兩個中位數的平均值,請改用q=0.5的torch.quantile()。警告
此函式產生確定性的(子)梯度,與
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,則輸出張量的大小與input相同,除了在dim維度上,它們的大小為 1。否則,dim將被擠壓(參見torch.squeeze()),導致輸出張量比input少一個維度。注意
當
input張量在dim維度上包含偶數個元素時,中位數不是唯一的。在這種情況下,將返回兩個中位數中較低的一個。要計算input中兩個中位數的平均值,請改用q=0.5的torch.quantile()。警告
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]))