27 sim_mat = F.linear(F.normalize(features), F.normalize(self.
weight))
28 alpha_p = torch.clamp_min(-sim_mat.detach() + 1 + self.
m, min=0.)
29 alpha_n = torch.clamp_min(sim_mat.detach() + self.
m, min=0.)
33 s_p = self.
s * alpha_p * (sim_mat - delta_p)
34 s_n = self.
s * alpha_n * (sim_mat - delta_n)
36 targets = F.one_hot(targets, num_classes=self.
_num_classes)
38 pred_class_logits = targets * s_p + (1.0 - targets) * s_n
40 return pred_class_logits