[torch 参数更多]torch.nn.CrossEntropyLoss¶
torch.nn.CrossEntropyLoss¶
torch.nn.CrossEntropyLoss(weight=None,
size_average=None,
ignore_index=- 100,
reduce=None,
reduction='mean',
label_smoothing=0.0)
paddle.nn.CrossEntropyLoss¶
paddle.nn.CrossEntropyLoss(weight=None,
ignore_index=-100,
reduction='mean',
soft_label=False,
axis=-1,
name=None)
其中 Pytorch 相比 Paddle 支持更多其他参数,具体如下:
参数映射¶
| PyTorch | PaddlePaddle | 备注 | | ————- | ———— | —————————————————— | | weight | weight | 表示每个类别的权重。 | | size_average | - | PyTorch 已弃用,Paddle 无此参数,需要转写。| | ignore_index | ignore_index | 表示忽略的一个标签值。 | | reduce | - | PyTorch 已弃用, Paddle 无此参数,需要转写。 | | reduction | reduction | 表示应用于输出结果的计算方式。 | | label_smoothing | - | 指定计算损失时的平滑量,Paddle 无此功能,暂无转写方式。 | | - | soft_label | 指明 label 是否为软标签,Pytorch 无此参数,Paddle 保持默认即可。 | | - | axis | 进行 softmax 计算的维度索引,Pytorch 无此参数,Paddle 保持默认即可。 |
转写示例¶
size_average¶
size_average 为 True
# Pytorch 写法
torch.nn.CrossEntropyLoss(weight=w, size_average=True)
# Paddle 写法
paddle.nn.CrossEntropyLoss(weight=w, reduction='mean')
size_average 为 False
# Pytorch 写法
torch.nn.CrossEntropyLoss(weight=w, size_average=False)
# Paddle 写法
paddle.nn.CrossEntropyLoss(weight=w, reduction='sum')
reduce¶
reduce 为 True
# Pytorch 写法
torch.nn.CrossEntropyLoss(weight=w, reduce=True)
# Paddle 写法
paddle.nn.CrossEntropyLoss(weight=w, reduction='mean')
reduce 为 False
# Pytorch 写法
torch.nn.CrossEntropyLoss(weight=w, reduce=False)
# Paddle 写法
paddle.nn.CrossEntropyLoss(weight=w, reduction='none')
reduction¶
reduction 为’none’
# Pytorch 写法
torch.nn.CrossEntropyLoss(weight=w, reduction='none')
# Paddle 写法
paddle.nn.CrossEntropyLoss(weight=w, reduction='none')
reduction 为’mean’
# Pytorch 写法
torch.nn.CrossEntropyLoss(weight=w, reduction='mean')
# Paddle 写法
paddle.nn.CrossEntropyLoss(weight=w, reduction='mean')
reduction 为’sum’
# Pytorch 写法
torch.nn.CrossEntropyLoss(weight=w, reduction='sum')
# Paddle 写法
paddle.nn.CrossEntropyLoss(weight=w, reduction='sum')