评价此页

torch.nanmean#

torch.nanmean(input, dim=None, keepdim=False, *, dtype=None, out=None) Tensor#

计算指定维度上所有非 NaN 元素的平均值。输入必须是浮点型或复数型。

input 张量中没有 NaN 值时,此函数与 torch.mean() 相同。在存在 NaN 的情况下,torch.mean() 会将 NaN 传播到输出,而 torch.nanmean() 则会忽略 NaN 值(torch.nanmean(a) 等同于 torch.mean(a[~a.isnan()]))。

如果 keepdimTrue,则输出张量的大小与 input 相同,只有在 dim 维度上大小为 1。否则,dim 将被挤压(参见 torch.squeeze()),导致输出张量维度减少 1(或 len(dim))个。

参数
  • input (Tensor) – 输入张量,必须是浮点型或复数型

  • dim (inttuple of ints, optional) – 要规约的维度或维度。如果为 None,则规约所有维度。

  • keepdim (bool, optional) – 输出张量是否保留 dim。默认为 False

关键字参数
  • dtype (torch.dtype, 可选) – 返回张量的期望数据类型。如果指定,则在执行操作之前将输入张量转换为 dtype。这对于防止数据类型溢出很有用。默认为 None。

  • out (Tensor, optional) – 输出张量。

另请参阅

torch.mean() 计算平均值,会传播 NaN

示例

>>> x = torch.tensor([[torch.nan, 1, 2], [1, 2, 3]])
>>> x.mean()
tensor(nan)
>>> x.nanmean()
tensor(1.8000)
>>> x.mean(dim=0)
tensor([   nan, 1.5000, 2.5000])
>>> x.nanmean(dim=0)
tensor([1.0000, 1.5000, 2.5000])

# If all elements in the reduced dimensions are NaN then the result is NaN
>>> torch.tensor([torch.nan]).nanmean()
tensor(nan)