[torch 参数更多 ]torch.nn.SmoothL1Loss

torch.nn.SmoothL1Loss

torch.nn.SmoothL1Loss(size_average=None,
                      reduce=None,
                      reduction='mean',
                      beta=1.0)

paddle.nn.SmoothL1Loss

paddle.nn.SmoothL1Loss(reduction='mean',
                       delta=1.0,
                       is_huber=True,
                       name=None)

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

参数映射

PyTorch PaddlePaddle 备注
size_average - PyTorch 已弃用, Paddle 无此参数,需要转写。
reduce - PyTorch 已弃用, Paddle 无此参数,需要转写。
reduction reduction 表示应用于输出结果的计算方式。
beta delta SmoothL1Loss 损失的阈值参数,beta 不为 1.0 时 Paddle 不支持,暂无转写方式。
- is_huber 控制 huber_loss 与 smooth_l1_loss 的开关,Paddle 需设置为 False 。

转写示例

size_average

# Paddle 写法
torch.nn.SmoothL1Loss(size_average=True)

# Paddle 写法
paddle.nn.SmoothL1Loss(reduction='mean')

size_average

size_average 为 True

# PyTorch 写法
torch.nn.SmoothL1Loss(size_average=True)

# Paddle 写法
paddle.nn.SmoothL1Loss(reduction='mean')

size_average 为 False

# PyTorch 写法
torch.nn.SmoothL1Loss(size_average=False)

# Paddle 写法
paddle.nn.SmoothL1Loss(reduction='sum')

reduce

reduce 为 True

# PyTorch 写法
torch.nn.SmoothL1Loss(reduce=True)

# Paddle 写法
paddle.nn.SmoothL1Loss(reduction='mean')

reduce 为 False

# PyTorch 写法
torch.nn.SmoothL1Loss(reduce=False)

# Paddle 写法
paddle.nn.SmoothL1Loss(reduction='none')

reduction

reduction 为'none'

# PyTorch 写法
torch.nn.SmoothL1Loss(reduction='none')

# Paddle 写法
paddle.nn.SmoothL1Loss(reduction='none')

reduction 为'mean'

# PyTorch 写法
torch.nn.SmoothL1Loss(reduction='mean')

# Paddle 写法
paddle.nn.SmoothL1Loss(reduction='mean')

reduction 为'sum'

# PyTorch 写法
torch.nn.SmoothL1Loss(reduction='sum')

# Paddle 写法
paddle.nn.SmoothL1Loss(reduction='sum')

beta

# PyTorch 的 beta 参数转化为 delta 参数
beta=0.8

# PyTorch 写法
torch.nn.SmoothL1Loss(beta=beta)

# Paddle 写法
paddle.nn.SmoothL1Loss(delta=beta, is_huber=False)