評價此頁

torch.nn.functional.binary_cross_entropy_with_logits#

torch.nn.functional.binary_cross_entropy_with_logits(input, target, weight=None, size_average=None, reduce=None, reduction='mean', pos_weight=None)[原始碼]#

計算目標值和輸入 Logits 之間的二元交叉熵。

有關詳細資訊,請參閱 BCEWithLogitsLoss

引數
  • input (Tensor) – 任意形狀的張量,包含未歸一化的分數(通常稱為 Logits)。

  • target (Tensor) – 與 input 形狀相同的張量,值在 0 和 1 之間。

  • weight (Tensor, optional) – 如果提供,則為手動重縮放權重,它會被重複以匹配輸入張量的形狀。

  • size_average (bool, optional) – 已棄用(請參閱 reduction)。

  • reduce (bool, optional) – 已棄用(請參閱 reduction)。

  • reduction (str, optional) – 指定要應用於輸出的規約:'none' | 'mean' | 'sum''none':不應用規約;'mean':輸出的總和將除以輸出中的元素數量;'sum':將對輸出求和。注意:size_averagereduce 正在被棄用,在此期間,指定這兩個引數中的任何一個都將覆蓋 reduction。預設值:'mean'

  • pos_weight (Tensor, optional) – 正樣本的權重,將與目標張量廣播。必須是一個在類別維度上大小等於類別數量的張量。請密切注意 PyTorch 的廣播語義,以實現期望的操作。對於大小為 [B, C, H, W] 的目標(其中 B 是批次大小),大小為 [B, C, H, W] 的 pos_weight 將為批次中的每個元素應用不同的 pos_weight,或者大小為 [C, H, W] 的 pos_weight 將為批次中的所有元素應用相同的 pos_weight。要為 2D 多類目標 [C, H, W] 沿所有空間維度應用相同的正權重,請使用:[C, 1, 1]。預設值:None

返回型別

張量

示例

>>> input = torch.randn(3, requires_grad=True)
>>> target = torch.empty(3).random_(2)
>>> loss = F.binary_cross_entropy_with_logits(input, target)
>>> loss.backward()