快捷方式

MultiLabelSoftMarginLoss

class torch.nn.MultiLabelSoftMarginLoss(weight=None, size_average=None, reduce=None, reduction='mean')[source][source]

建立一個準則,基於最大熵最佳化多標籤一對多損失,損失計算在形狀為 xx 的輸入和形狀為 (N,C)(N, C) 的目標 yy 之間。對於迷你批處理中的每個樣本,計算公式如下:

loss(x,y)=1Ciy[i]log((1+exp(x[i]))1)+(1y[i])log(exp(x[i])(1+exp(x[i])))loss(x, y) = - \frac{1}{C} * \sum_i y[i] * \log((1 + \exp(-x[i]))^{-1}) + (1-y[i]) * \log\left(\frac{\exp(-x[i])}{(1 + \exp(-x[i]))}\right)

其中 i{0,  ,  x.nElement()1}i \in \left\{0, \; \cdots , \; \text{x.nElement}() - 1\right\},且 y[i]{0,  1}y[i] \in \left\{0, \; 1\right\}

引數
  • weight (Tensor, optional) – 給定每個類別的手動重新縮放權重。如果給定,它必須是形狀為 C 的 Tensor。否則,將被視為全為一。

  • size_average (bool, optional) – 已棄用(參見 reduction)。預設情況下,損失按批次中的每個損失元素進行平均。請注意,對於某些損失,每個樣本有多個元素。如果欄位 size_average 設定為 False,則損失將改為對每個迷你批次進行求和。當 reduceFalse 時忽略。預設值: True

  • reduce (bool, optional) – 已棄用(參見 reduction)。預設情況下,根據 size_average 對每個迷你批次的觀測值進行平均或求和。當 reduceFalse 時,改為返回每個批次元素的損失,並忽略 size_average。預設值: True

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

形狀
  • 輸入:(N,C)(N, C),其中 N 是批處理大小,C 是類別數量。

  • 目標:(N,C)(N, C),標籤目標必須與輸入的形狀相同。

  • 輸出:標量。如果 reduction'none',則形狀為 (N)(N)

文件

訪問 PyTorch 全面開發者文件

檢視文件

教程

獲取針對初學者和高階開發者的深入教程

檢視教程

資源

查詢開發資源並獲取問題解答

檢視資源