def decode_landm(pre, priors, variances):
    """
    Decode landm from predictions using priors to undo
    the encoding we did for offset regression at train time.

    Args:
        pre (`torch.FloatTensor`):
            landm predictions for loc layers, Shape: [num_priors,10].
        priors (`torch.FloatTensor`):
            Prior boxes in center-offset form. Shape: [num_priors,4].
        variances (`list[float]`):
            Variances of priorboxes.
    Return:
        (`torch.FloatTensor`)
            decoded landm predictions.
    """
    landms = torch.cat((priors[:, :2] + pre[:, :2] * variances[0] * priors[:, 2:],
                        priors[:, :2] + pre[:, 2:4] * variances[0] * priors[:, 2:],
                        priors[:, :2] + pre[:, 4:6] * variances[0] * priors[:, 2:],
                        priors[:, :2] + pre[:, 6:8] * variances[0] * priors[:, 2:],
                        priors[:, :2] + pre[:, 8:10] * variances[0] * priors[:, 2:],
                        ), dim=1)
    return landms
Decode landm from predictions using priors to undo
the encoding we did for offset regression at train time.

Args:
pre (`torch.FloatTensor`):
landm predictions for loc layers, Shape: [num_priors,10].
priors (`torch.FloatTensor`):
Prior boxes in center-offset form. Shape: [num_priors,4].
variances (`list[float]`):
Variances of priorboxes.
Return:
(`torch.FloatTensor`)
decoded landm predictions.
towhee/models/retina_face/utils.py