torch.nn.functional.kl_div#
- torch.nn.functional.kl_div(input, target, size_average=None, reduce=None, reduction='mean', log_target=False)[原始碼]#
計算 KL 散度損失。
有關詳細資訊,請參閱
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_average和reduce正在被棄用,在此期間,指定這兩個引數中的任何一個都將覆蓋reduction。警告
reduction='mean'不返回真正的 KL 散度值,請使用reduction='batchmean',它符合 KL 的數學定義。