zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

paddlepaddle 10 支持任意维度数据的标签平滑LabelSmoothingCrossEntropyLoss实现

数据 实现 10 支持 标签 任意 平滑 维度
2023-09-14 09:01:36 时间

LabelSmoothingCrossEntropyLoss的理论部分不再累述,抄自己的博客一点意思都没有。请参考pytorch 10 支持ignore_index和class_weight的标签平滑LabelSmoothingCrossEntropyLoss实现_a486259的博客-CSDN博客

本来计划是效仿pytorch框架下实现支持ignore_index和class_weight的标签平滑方法的,无奈paddle中的paddle.where与paddle.nn.CrossEntropyLoss这两个函数功能存在缺陷,因此仅实现普通的标签平滑loss。虽然已实现ignore_index,但是未进行与CrossEntropyLoss的对比实验。虽然如此,但是支持任意维度的数据。

paddle2.2 paddle.where功能说明:

paddle.where(conditionxyname=None)

通过对paddle.where的源码和实际使用发现,paddle.where真的只是支持按照condition截取数据,无法像torch.where和numpy.where那样支持返回mask的index。同时,paddle.tensor不支持mask的取值方式。因此,无法通过对数据的截选实现ignore_index功能。

2022.