diff --git a/fastreid/config/defaults.py b/fastreid/config/defaults.py index 3d2bac0..7eb7b44 100644 --- a/fastreid/config/defaults.py +++ b/fastreid/config/defaults.py @@ -97,6 +97,11 @@ _C.MODEL.LOSSES.TRI.HARD_MINING = True _C.MODEL.LOSSES.TRI.USE_COSINE_DIST = False _C.MODEL.LOSSES.TRI.SCALE = 1.0 +# Circle Loss options +_C.MODEL.LOSSES.CIRCLE = CN() +_C.MODEL.LOSSES.CIRCLE.MARGIN = 0.25 +_C.MODEL.LOSSES.CIRCLE.SCALE = 128 + # Focal Loss options _C.MODEL.LOSSES.FL = CN() _C.MODEL.LOSSES.FL.ALPHA = 0.25 diff --git a/fastreid/modeling/losses/metric_loss.py b/fastreid/modeling/losses/metric_loss.py index 6719f49..950c807 100644 --- a/fastreid/modeling/losses/metric_loss.py +++ b/fastreid/modeling/losses/metric_loss.py @@ -164,10 +164,10 @@ class TripletLoss(object): class CircleLoss(object): def __init__(self, cfg): - self._scale = cfg.MODEL.LOSSES.SCALE_TRI + self._scale = cfg.MODEL.LOSSES.CIRCLE.SCALE - self.m = 0.25 - self.s = 128 + self.m = cfg.MODEL.LOSSES.CIRCLE.MARGIN + self.s = cfg.MODEL.LOSSES.CIRCLE.SCALE def __call__(self, _, global_features, targets): global_features = normalize(global_features, axis=-1)