快捷方式

torch.nn.functional.kl_div

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

計算 KL 散度損失。

參考 - Kullback-Leibler 散度損失

詳情請參閱 KLDivLoss

引數
  • input (Tensor) – 形狀任意的對數機率張量。

  • target (Tensor) – 形狀與 input 相同的張量。關於 target 的解釋,請參閱 log_target

  • size_average (bool, 可選) – 已棄用(請參閱 reduction)。預設情況下,損失會在 batch 中的每個損失元素上平均。請注意,對於某些損失,每個樣本有多個元素。如果將 size_average 欄位設定為 False,則改為對每個 mini-batch 的損失求和。當 reduce 為 False 時,忽略此引數。預設值:True

  • reduce (bool, 可選) – 已棄用(請參閱 reduction)。預設情況下,根據 size_average 對每個 mini-batch 的觀測值進行平均或求和。當 reduceFalse 時,返回每個 batch 元素的損失,並忽略 size_average。預設值:True

  • reduction (str, 可選) – 指定應用於輸出的歸約方式:'none' | 'batchmean' | 'sum' | 'mean''none':不應用歸約。'batchmean':輸出的總和將除以 batch 大小。'sum':對輸出求和。'mean':輸出將除以輸出中的元素數量。預設值:'mean'

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

返回型別

Tensor

注意

size_averagereduce 正在棄用中,在此期間,指定這兩個引數中的任何一個將覆蓋 reduction

警告

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

文件

查閱 PyTorch 全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得解答

檢視資源