捷徑

MultiLabelSoftMarginLoss

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

建立一個標準,該標準基於最大熵,優化輸入 xx 和目標 yy 之間的一對多 (one-versus-all) 多標籤損失,大小為 (N,C)(N, C)。對於小批量 (minibatch) 中的每個樣本

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。 否則,它會被視為全部為 1。

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

  • reduce (bool, optional) – 已棄用 (請參閱 reduction)。 預設情況下,根據 size_average,損失會在每個小批次的觀察值上取平均值或總和。 當 reduceFalse 時,會改為傳回每個批次元素的損失,並忽略 size_average。 預設值:True

  • reduction (str, optional) – 指定要套用至輸出的縮減: '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 的完整開發人員文件

檢視文件

教學課程

取得針對初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並取得問題解答

檢視資源