def forward(self, pred, target, reduction='none'):
        """forward function, based on fvcore.
        Args:
            pred (Tensor): prediction tensor
            target (Tensor): target tensor, pred.shape must be the same as target.shape
            reduction (str): the way to reduce loss, one of (none, sum, mean)
        """
        assert reduction in ('none', 'sum', 'mean')
        target = target.detach()
        if self.beta < 1e-5:
            loss = paddle.abs(pred - target)
        else:
            n = paddle.abs(pred - target)
            cond = n < self.beta
            loss = paddle.where(cond, 0.5 * n ** 2 / self.beta, n - 0.5 * self.beta)
        if reduction == 'mean':
            loss = loss.mean() if loss.size > 0 else 0.0 * loss.sum()
        elif reduction == 'sum':
            loss = loss.sum()
        return loss * self.loss_weight
forward function, based on fvcore.
        Args:
            pred (Tensor): prediction tensor
            target (Tensor): target tensor, pred.shape must be the same as target.shape
            reduction (str): the way to reduce loss, one of (none, sum, mean)
        
ppdet/modeling/losses/smooth_l1_loss.py