快捷方式

HingeEmbeddingLoss

class torch.nn.HingeEmbeddingLoss(margin=1.0, size_average=None, reduce=None, reduction='mean')[原始碼][原始碼]

根據輸入張量 xx 和標籤張量 yy (包含 1 或 -1) 來計算損失。這通常用於衡量兩個輸入是否相似或相異,例如使用 L1 成對距離作為 xx,並且通常用於學習非線性嵌入或半監督學習。

小批量中第 nn 個樣本的損失函數為

ln={xn,if  yn=1,max{0,marginxn},if  yn=1,l_n = \begin{cases} x_n, & \text{if}\; y_n = 1,\\ \max \{0, margin - x_n\}, & \text{if}\; y_n = -1, \end{cases}

總損失函數為

(x,y)={mean(L),if reduction=‘mean’;sum(L),if reduction=‘sum’.\ell(x, y) = \begin{cases} \operatorname{mean}(L), & \text{if reduction} = \text{`mean';}\\ \operatorname{sum}(L), & \text{if reduction} = \text{`sum'.} \end{cases}

其中 L={l1,,lN}L = \{l_1,\dots,l_N\}^\top

參數
  • margin (float, optional) – 預設值為 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'

形狀
  • 輸入: ()(*),其中 * 代表任意數量的維度。 總和運算會對所有元素進行運算。

  • 目標: ()(*),與輸入形狀相同

  • 輸出:純量。 如果 reduction'none',則與輸入形狀相同

文件

取得 PyTorch 的完整開發人員文件

查看文件

教學

取得適用於初學者和高級開發人員的深入教學課程

查看教學課程

資源

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

查看資源