評價此頁

torch.nanmedian#

torch.nanmedian(input) Tensor#

返回 input 中值的中位數,忽略 NaN 值。

input 中沒有 NaN 值時,此函式與 torch.median() 相同。當 input 包含一個或多個 NaN 值時,torch.median() 總是會返回 NaN,而此函式將返回 input 中非 NaN 元素的 median。如果 input 中的所有元素都是 NaN,它也將返回 NaN

引數

input (Tensor) – 輸入張量。

示例

>>> a = torch.tensor([1, float('nan'), 3, 2])
>>> a.median()
tensor(nan)
>>> a.nanmedian()
tensor(2.)
torch.nanmedian(input, dim=-1, keepdim=False, *, out=None)

返回一個命名元組 (values, indices),其中 values 包含 inputdim 維度上每行的 median,忽略 NaN 值;indices 包含在 dim 維度上找到的 median 值的索引。

當減少的行中沒有 NaN 值時,此函式與 torch.median() 相同。當減少的行包含一個或多個 NaN 值時,torch.median() 會始終將其減少為 NaN,而此函式會將其減少為非 NaN 元素的 median。如果減少的行中的所有元素都是 NaN,它也將被減少為 NaN

引數
  • input (Tensor) – 輸入張量。

  • dim (int, optional) – 要約簡的維度。如果為 None,則約簡所有維度。

  • keepdim (bool, optional) – 輸出張量是否保留 dim。預設為 False

關鍵字引數

out ((Tensor, Tensor), optional) – 第一個張量將填充 median 值,第二個張量(必須是 long 型別)將填充 inputdim 維度上的索引。

示例

>>> a = torch.tensor([[2, 3, 1], [float('nan'), 1, float('nan')]])
>>> a
tensor([[2., 3., 1.],
        [nan, 1., nan]])
>>> a.median(0)
torch.return_types.median(values=tensor([nan, 1., nan]), indices=tensor([1, 1, 1]))
>>> a.nanmedian(0)
torch.return_types.nanmedian(values=tensor([2., 1., 1.]), indices=tensor([0, 1, 0]))