評價此頁

torch.nn.functional.kl_div#

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

計算 KL 散度損失。

參考 - Kullback-Leibler 散度損失

有關詳細資訊,請參閱 KLDivLoss

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

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

  • size_average (bool, optional) – 已棄用(請參閱 reduction)。

  • reduce (bool, optional) – 已棄用(請參閱 reduction)。

  • reduction (str, optional) – 指定應用於輸出的歸約方式:'none' | 'batchmean' | 'sum' | 'mean''none':不應用任何歸約。'batchmean':輸出的總和除以 batchsize。'sum':對輸出求和。'mean':輸出除以輸出中的元素數量。 預設為:'mean'

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

返回型別

張量

注意

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

警告

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