I am wondering why loss_masks and in particular focal_loss only works with segmentation and not bbox prediction?
This is quite unexpected as focal loss can help class imbalance for bbox prediction too.
Is there a reason why focal loss was not implemented for bbox?
And what was the alternative to focal loss? is it eos_coef?
if args.masks:
model = DETRsegm(model, freeze_detr=(args.frozen_weights is not None))
matcher = build_matcher(args)
weight_dict = {'loss_ce': 1, 'loss_bbox': args.bbox_loss_coef}
weight_dict['loss_giou'] = args.giou_loss_coef
if args.masks:
weight_dict["loss_mask"] = args.mask_loss_coef
weight_dict["loss_dice"] = args.dice_loss_coef
TODO this is a hack
if args.aux_loss:
aux_weight_dict = {}
for i in range(args.dec_layers - 1):
aux_weight_dict.update({k + f'_{i}': v for k, v in weight_dict.items()})
weight_dict.update(aux_weight_dict)
losses = ['labels', 'boxes', 'cardinality']
if args.masks:
losses += ["masks"]
criterion = SetCriterion(num_classes, matcher=matcher, weight_dict=weight_dict,
eos_coef=args.eos_coef, losses=losses)
what if I want to do masks without segmentation, just bbox. I tried masks with bbox data but it did not work
I am wondering why loss_masks and in particular focal_loss only works with segmentation and not bbox prediction?
This is quite unexpected as focal loss can help class imbalance for bbox prediction too. Is there a reason why focal loss was not implemented for bbox? And what was the alternative to focal loss? is it eos_coef?
if args.masks: model = DETRsegm(model, freeze_detr=(args.frozen_weights is not None)) matcher = build_matcher(args) weight_dict = {'loss_ce': 1, 'loss_bbox': args.bbox_loss_coef} weight_dict['loss_giou'] = args.giou_loss_coef if args.masks: weight_dict["loss_mask"] = args.mask_loss_coef weight_dict["loss_dice"] = args.dice_loss_coef
TODO this is a hack
what if I want to do masks without segmentation, just bbox. I tried masks with bbox data but it did not work