快速鍵

torch.nn.functional.kl_div

torch.nn.functional.kl_div(input, target, size_average=None, reduce=None, reduction='mean', log_target=False)[原始碼][原始碼]

計算 KL 散度損失 (KL Divergence loss)。

請參考 - Kullback-Leibler 散度損失

詳細資訊請參考 KLDivLoss

參數
  • input (Tensor) – 以 log-probabilities 表示,形狀任意的 Tensor。

  • target (Tensor) – 與 input 形狀相同的 Tensor。 請參考 log_target 以了解 target 的解讀方式。

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

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

  • reduction (str, optional) – 指定要套用至輸出的縮減方式:'none' | 'batchmean' | 'sum' | 'mean''none':不套用縮減;'batchmean':輸出的總和將除以 batchsize;'sum':輸出將被加總;'mean':輸出將除以輸出中的元素數量。 預設值:'mean'

  • log_target (bool) – 一個旗標,指示 target 是否在 log 空間中傳遞。 建議在 log 空間中傳遞某些分佈(例如 softmax),以避免由顯式 log 引起的數值問題。 預設值:False

傳回類型

Tensor

注意

size_averagereduce 正在逐步棄用,同時,指定這兩個參數中的任何一個都將覆寫 reduction

警告

reduction = 'mean' 不會傳回真正的 kl 散度值,請使用 reduction = 'batchmean',這與 KL 數學定義一致。

文件

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

檢視文件

教學

取得適合初學者和進階開發人員的深入教學

檢視教學

資源

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

檢視資源