[torch 参数更多]torch.nn.functional.kl_div

torch.nn.functional.kl_div

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

paddle.nn.functional.kl_div

paddle.nn.functional.kl_div(input,
                label,
                reduction='mean',
                log_target=False)

其中 PyTorch 相比 Paddle 支持更多的参数,具体如下:

参数映射

PyTorch PaddlePaddle 备注
size_average - PyTorch 已弃用, Paddle 无此参数,需要转写。
reduce - PyTorch 已弃用, Paddle 无此参数,需要转写。
reduction reduction 表示对输出结果的计算方式。
log_target log_target 指定目标是否属于 log 空间。

转写示例

size_average:是否对损失进行平均或求和

# PyTorch 写法 (size_average 为‘True’时)
torch.nn.functional.kl_div(a, target, size_average=True)

# Paddle 写法
paddle.nn.functional.kl_div(logit=a, label=target,
    reduction='mean')

# PyTorch 写法 (size_average 为‘False’时)
torch.nn.functional.kl_div(a, target, size_average=False)

# Paddle 写法
paddle.nn.functional.kl_div(logit=a, label=target,
    reduction='sum')

reduce:是否对损失进行平均或求和

# PyTorch 写法 (reduce 为‘True’时)
torch.nn.functional.kl_div(a, target, reduce=True)

# Paddle 写法
paddle.nn.functional.kl_div(logit=a, label=target,
    reduction='mean')

# PyTorch 写法 (reduce 为‘False’时)
torch.nn.functional.kl_div(a, target, reduce=False)

# Paddle 写法
paddle.nn.functional.kl_div(logit=a, label=target,
    reduction='sum')

reduction:输出结果的计算方式

# PyTorch 写法 (reduction 为‘none’时)
torch.nn.functional.kl_div(a, target, reduction='none')

# Paddle 写法
paddle.nn.functional.kl_div(logit=a, label=target,
    reduction='none')

# PyTorch 写法 (reduction 为‘mean’时)
torch.nn.functional.kl_div(a, target, reduction='mean')

# Paddle 写法
paddle.nn.functional.kl_div(logit=a, label=target,
    reduction='mean')

# PyTorch 写法 (reduction 为‘sum’时)
torch.nn.functional.kl_div(a, target, reduction='sum')

# Paddle 写法
paddle.nn.functional.kl_div(logit=a, label=target,
    reduction='sum')