torch.nn.functional.kl_div¶
- torch.nn.functional.kl_div(input, target, size_average=None, reduce=None, reduction='mean', log_target=False)[源代码]¶
计算KL散度损失。
详情请参见
KLDivLoss。- Parameters
输入 (张量) – 以对数概率表示的任意形状的张量。
目标 (张量) – 与输入形状相同的张量。请参阅
log_target以了解目标的解释。size_average (布尔值, 可选) – 已弃用(参见
reduction)。默认情况下, 损失在批次中的每个损失元素上进行平均。请注意,对于某些损失,每个样本可能有多个元素。如果字段size_average设置为False,则损失将改为对每个小批次进行求和。当 reduce 为False时忽略。默认值:Truereduce (bool, 可选) – 已弃用(参见
reduction)。默认情况下,损失会根据size_average的设置在每个小批次中对观测值进行平均或求和。当reduce为False时,返回每个批次元素的损失,并忽略size_average。默认值:Truereduction (str, 可选) – 指定应用于输出的reduction方式:
'none'|'batchmean'|'sum'|'mean'.'none': 不进行reduction'batchmean': 输出的和将除以batchsize'sum': 输出将被求和'mean': 输出将除以输出中的元素数量 默认值:'mean'log_target (bool) – 一个标志,指示是否在日志空间中传递
target。 建议将某些分布(如softmax) 在日志空间中传递,以避免由于显式log引起的数值问题。 默认值:False
- Return type
注意
size_average和reduce正在被弃用, 与此同时,指定这两个参数中的任何一个都将覆盖reduction。警告
reduction='mean'不会返回真实的KL散度值,请使用reduction='batchmean',这与KL数学定义一致。