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()]))。如果
keepdim為True,則輸出張量的大小與input相同,但dim指定的維度大小為 1。否則,dim會被壓縮(詳見torch.squeeze()),導致輸出張量的維度比輸入少 1(或len(dim))個。- 引數
input (Tensor) – 輸入張量,浮點或複數型別
dim (int 或 int 的 tuple,可選) – 要歸約的維度或維度。如果為
None,則歸約所有維度。keepdim (bool) – 輸出張量是否保留
dim指定的維度。
- 關鍵字引數
dtype (
torch.dtype, 可選) – 返回張量所需的資料型別。如果指定,輸入張量在執行操作之前會轉換為dtype型別。這有助於防止資料型別溢位。預設值:None。out (Tensor, 可選) – 輸出張量。
另請參閱
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)