Safemotion Lib
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Attributes | List of all members
fastreid.layers.circle_softmax.CircleSoftmax Class Reference
Inheritance diagram for fastreid.layers.circle_softmax.CircleSoftmax:

Public Member Functions

 __init__ (self, cfg, in_feat, num_classes)
 
 forward (self, features, targets)
 
 extra_repr (self)
 

Public Attributes

 in_feat
 
 s
 
 m
 
 weight
 

Protected Attributes

 _num_classes
 

Detailed Description

Definition at line 15 of file circle_softmax.py.

Constructor & Destructor Documentation

◆ __init__()

fastreid.layers.circle_softmax.CircleSoftmax.__init__ ( self,
cfg,
in_feat,
num_classes )

Definition at line 16 of file circle_softmax.py.

16 def __init__(self, cfg, in_feat, num_classes):
17 super().__init__()
18 self.in_feat = in_feat
19 self._num_classes = num_classes
20 self.s = cfg.MODEL.HEADS.SCALE
21 self.m = cfg.MODEL.HEADS.MARGIN
22
23 self.weight = Parameter(torch.Tensor(num_classes, in_feat))
24 nn.init.kaiming_uniform_(self.weight, a=math.sqrt(5))
25

Member Function Documentation

◆ extra_repr()

fastreid.layers.circle_softmax.CircleSoftmax.extra_repr ( self)

Definition at line 42 of file circle_softmax.py.

42 def extra_repr(self):
43 return 'in_features={}, num_classes={}, scale={}, margin={}'.format(
44 self.in_feat, self._num_classes, self.s, self.m
45 )

◆ forward()

fastreid.layers.circle_softmax.CircleSoftmax.forward ( self,
features,
targets )

Definition at line 26 of file circle_softmax.py.

26 def forward(self, features, targets):
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.)
30 delta_p = 1 - self.m
31 delta_n = self.m
32
33 s_p = self.s * alpha_p * (sim_mat - delta_p)
34 s_n = self.s * alpha_n * (sim_mat - delta_n)
35
36 targets = F.one_hot(targets, num_classes=self._num_classes)
37
38 pred_class_logits = targets * s_p + (1.0 - targets) * s_n
39
40 return pred_class_logits
41

Member Data Documentation

◆ _num_classes

fastreid.layers.circle_softmax.CircleSoftmax._num_classes
protected

Definition at line 19 of file circle_softmax.py.

◆ in_feat

fastreid.layers.circle_softmax.CircleSoftmax.in_feat

Definition at line 18 of file circle_softmax.py.

◆ m

fastreid.layers.circle_softmax.CircleSoftmax.m

Definition at line 21 of file circle_softmax.py.

◆ s

fastreid.layers.circle_softmax.CircleSoftmax.s

Definition at line 20 of file circle_softmax.py.

◆ weight

fastreid.layers.circle_softmax.CircleSoftmax.weight

Definition at line 23 of file circle_softmax.py.


The documentation for this class was generated from the following file: