def METHOD_NAME(self, logits, target):
    norm_target = target
    if self.target_dist_norm == "minmax":
        min_v = torch.min(target, 1, keepdim=True).values
        max_v = torch.max(target, 1, keepdim=True).values
        norm_target = (target - min_v) / (max_v - min_v + _EPSILON)
    target_dist = F.softmax(
        norm_target / self.temperature, dim=-1, dtype=torch.float32
    )
    model_dist = F.log_softmax(logits, dim=-1, dtype=torch.float32)
    loss = -(target_dist * model_dist - target_dist * target_dist.log()).sum()
    return loss