本文整理匯總了Python中maskrcnn_benchmark.layers.SigmoidFocalLoss方法的典型用法代碼示例。如果您正苦於以下問題:Python layers.SigmoidFocalLoss方法的具體用法?Python layers.SigmoidFocalLoss怎麽用?Python layers.SigmoidFocalLoss使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類maskrcnn_benchmark.layers
的用法示例。
在下文中一共展示了layers.SigmoidFocalLoss方法的11個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: make_retinanet_loss_evaluator
# 需要導入模塊: from maskrcnn_benchmark import layers [as 別名]
# 或者: from maskrcnn_benchmark.layers import SigmoidFocalLoss [as 別名]
def make_retinanet_loss_evaluator(cfg, box_coder):
matcher = Matcher(
cfg.MODEL.RETINANET.FG_IOU_THRESHOLD,
cfg.MODEL.RETINANET.BG_IOU_THRESHOLD,
allow_low_quality_matches=True,
)
sigmoid_focal_loss = SigmoidFocalLoss(
cfg.MODEL.RETINANET.LOSS_GAMMA,
cfg.MODEL.RETINANET.LOSS_ALPHA
)
loss_evaluator = RetinaNetLossComputation(
matcher,
box_coder,
generate_retinanet_labels,
sigmoid_focal_loss,
bbox_reg_beta = cfg.MODEL.RETINANET.BBOX_REG_BETA,
regress_norm = cfg.MODEL.RETINANET.BBOX_REG_WEIGHT,
)
return loss_evaluator
示例2: make_retinanet_loss_evaluator
# 需要導入模塊: from maskrcnn_benchmark import layers [as 別名]
# 或者: from maskrcnn_benchmark.layers import SigmoidFocalLoss [as 別名]
def make_retinanet_loss_evaluator(cfg, box_coder):
matcher = Matcher(
cfg.MODEL.RETINANET.FG_IOU_THRESHOLD,
cfg.MODEL.RETINANET.BG_IOU_THRESHOLD,
allow_low_quality_matches=True,
)
sigmoid_focal_loss = SigmoidFocalLoss(
cfg.MODEL.RETINANET.LOSS_GAMMA,
cfg.MODEL.RETINANET.LOSS_ALPHA
)
scheme = "free" if cfg.MODEL.SAMPLING_FREE_ON else "focalloss"
loss_evaluator = eval("RetinaNetLossComputation" + scheme.capitalize())(
matcher,
box_coder,
generate_retinanet_labels,
sigmoid_focal_loss,
bbox_reg_beta = cfg.MODEL.RETINANET.BBOX_REG_BETA,
regress_norm = cfg.MODEL.RETINANET.BBOX_REG_WEIGHT,
)
return loss_evaluator
示例3: __init__
# 需要導入模塊: from maskrcnn_benchmark import layers [as 別名]
# 或者: from maskrcnn_benchmark.layers import SigmoidFocalLoss [as 別名]
def __init__(self, cfg, proposal_matcher, box_coder):
"""
Arguments:
proposal_matcher (Matcher)
box_coder (BoxCoder)
"""
# self.target_preparator = target_preparator
self.proposal_matcher = proposal_matcher
self.box_coder = box_coder
self.num_classes = cfg.RETINANET.NUM_CLASSES -1
self.box_cls_loss_func = SigmoidFocalLoss(
self.num_classes,
cfg.RETINANET.LOSS_GAMMA,
cfg.RETINANET.LOSS_ALPHA
)
self.regression_loss = SmoothL1Loss(
beta=cfg.RETINANET.BBOX_REG_BETA
)
示例4: __init__
# 需要導入模塊: from maskrcnn_benchmark import layers [as 別名]
# 或者: from maskrcnn_benchmark.layers import SigmoidFocalLoss [as 別名]
def __init__(self, cfg, proposal_matcher, box_coder):
"""
Arguments:
proposal_matcher (Matcher)
box_coder (BoxCoder)
"""
# self.target_preparator = target_preparator
self.proposal_matcher = proposal_matcher
self.box_coder = box_coder
self.num_classes = cfg.RETINANET.NUM_CLASSES -1
self.box_cls_loss_func = SigmoidFocalLoss(
self.num_classes,
cfg.RETINANET.LOSS_GAMMA,
cfg.RETINANET.LOSS_ALPHA
)
if cfg.RETINANET.SELFADJUST_SMOOTH_L1:
self.regression_loss = AdjustSmoothL1Loss(
4,
beta=cfg.RETINANET.BBOX_REG_BETA
)
else:
self.regression_loss = SmoothL1Loss(
beta=cfg.RETINANET.BBOX_REG_BETA
)
示例5: __init__
# 需要導入模塊: from maskrcnn_benchmark import layers [as 別名]
# 或者: from maskrcnn_benchmark.layers import SigmoidFocalLoss [as 別名]
def __init__(self, cfg, proposal_matcher, box_coder):
"""
Arguments:
proposal_matcher (Matcher)
a tensor of size N containing the index of the gt element m the
matches to prediction n. If there is no match, a negative value is returned
box_coder (BoxCoder)
"""
self.proposal_matcher = proposal_matcher
self.box_coder = box_coder
self.num_classes = cfg.MODEL.RETINANET.NUM_CLASSES -1
self.box_cls_loss_func = SigmoidFocalLoss(
cfg.MODEL.RETINANET.LOSS_GAMMA,
cfg.MODEL.RETINANET.LOSS_ALPHA
)
self.bbox_reg_weight = cfg.MODEL.RETINANET.BBOX_REG_WEIGHT
self.bbox_reg_beta = cfg.MODEL.RETINANET.BBOX_REG_BETA
self.weight = cfg.MODEL.PANOPTIC.DET_WEIGHT
示例6: make_retinanet_loss_evaluator
# 需要導入模塊: from maskrcnn_benchmark import layers [as 別名]
# 或者: from maskrcnn_benchmark.layers import SigmoidFocalLoss [as 別名]
def make_retinanet_loss_evaluator(cfg, box_coder):
matcher = Matcher(
cfg.MODEL.RETINANET.FG_IOU_THRESHOLD,
cfg.MODEL.RETINANET.BG_IOU_THRESHOLD,
allow_low_quality_matches=True,
)
sigmoid_focal_loss = SigmoidFocalLoss(
cfg.MODEL.RETINANET.LOSS_GAMMA,
cfg.MODEL.RETINANET.LOSS_ALPHA
)
loss_evaluator = RetinaNetLossComputation(
matcher,
box_coder,
generate_retinanet_labels,
sigmoid_focal_loss,
bbox_reg_beta=cfg.MODEL.RETINANET.BBOX_REG_BETA,
regress_norm=cfg.MODEL.RETINANET.BBOX_REG_WEIGHT,
)
return loss_evaluator
示例7: prepare_targets
# 需要導入模塊: from maskrcnn_benchmark import layers [as 別名]
# 或者: from maskrcnn_benchmark.layers import SigmoidFocalLoss [as 別名]
def prepare_targets(self, anchors, targets):
labels = []
regression_targets = []
for anchors_per_image, targets_per_image in zip(anchors, targets):
matched_targets = self.match_targets_to_anchors(
anchors_per_image, targets_per_image
)
matched_idxs = matched_targets.get_field("matched_idxs")
labels_per_image = matched_targets.get_field("labels").clone()
# Background (negative examples)
bg_indices = matched_idxs == Matcher.BELOW_LOW_THRESHOLD
labels_per_image[bg_indices] = 0
# discard indices that are between thresholds
# -1 will be ignored in SigmoidFocalLoss
inds_to_discard = matched_idxs == Matcher.BETWEEN_THRESHOLDS
labels_per_image[inds_to_discard] = -1
labels_per_image = labels_per_image.to(dtype=torch.float32)
# compute regression targets
regression_targets_per_image = self.box_coder.encode(
matched_targets.bbox, anchors_per_image.bbox
)
labels.append(labels_per_image)
regression_targets.append(regression_targets_per_image)
return labels, regression_targets
示例8: prepare_targets
# 需要導入模塊: from maskrcnn_benchmark import layers [as 別名]
# 或者: from maskrcnn_benchmark.layers import SigmoidFocalLoss [as 別名]
def prepare_targets(self, anchors, targets):
labels = []
regression_targets = []
for anchors_per_image, targets_per_image in zip(anchors, targets):
if len(targets_per_image) <= 0:
device = anchors_per_image.bbox.device
dummy_labels = torch.zeros(len(anchors_per_image),
dtype=torch.float32,
device=device)
dummy_regression = torch.zeros((len(anchors_per_image), 4),
dtype=torch.float32,
device=device)
labels.append(dummy_labels)
regression_targets.append(dummy_regression)
continue
matched_targets = self.match_targets_to_anchors(
anchors_per_image, targets_per_image
)
matched_idxs = matched_targets.get_field("matched_idxs")
labels_per_image = matched_targets.get_field("labels").clone()
# Background (negative examples)
bg_indices = matched_idxs == Matcher.BELOW_LOW_THRESHOLD
labels_per_image[bg_indices] = 0
# discard indices that are between thresholds
# -1 will be ignored in SigmoidFocalLoss
inds_to_discard = matched_idxs == Matcher.BETWEEN_THRESHOLDS
labels_per_image[inds_to_discard] = -1
labels_per_image = labels_per_image.to(dtype=torch.float32)
# compute regression targets
regression_targets_per_image = self.box_coder.encode(
matched_targets.bbox, anchors_per_image.bbox
)
labels.append(labels_per_image)
regression_targets.append(regression_targets_per_image)
return labels, regression_targets
示例9: __init__
# 需要導入模塊: from maskrcnn_benchmark import layers [as 別名]
# 或者: from maskrcnn_benchmark.layers import SigmoidFocalLoss [as 別名]
def __init__(self, cfg):
self.cls_loss_func = SigmoidFocalLoss(
cfg.MODEL.RETINANET.LOSS_GAMMA,
cfg.MODEL.RETINANET.LOSS_ALPHA
)
# we make use of IOU Loss for bounding boxes regression,
# but we found that L1 in log scale can yield a similar performance
self.bbox_reg_loss_func = IOULoss()
self.reg_weights_loss_func = nn.BCEWithLogitsLoss()
示例10: __init__
# 需要導入模塊: from maskrcnn_benchmark import layers [as 別名]
# 或者: from maskrcnn_benchmark.layers import SigmoidFocalLoss [as 別名]
def __init__(self, cfg):
# self.cls_loss_func = SigmoidFocalLoss(
# cfg.MODEL.LOC.LOSS_GAMMA,
# cfg.MODEL.LOC.LOSS_ALPHA
# )
cls_loss_name = cfg.MODEL.LOC.CLS_LOSS
self.cls_divide_pos_num = True
if cls_loss_name == 'fixed_focal_loss':
self.cls_loss_func = FixSigmoidFocalLoss(
cfg.MODEL.LOC.LOSS_GAMMA,
cfg.MODEL.LOC.LOSS_ALPHA
)
elif cls_loss_name == 'L2':
self.cls_loss_func = L2LossWithLogit()
elif cls_loss_name == 'GHMC':
self.cls_loss_func = GHMC(bins=cfg.MODEL.LOC.LOSS_GHMC_BINS,
alpha=cfg.MODEL.LOC.LOSS_GHMC_ALPHA,
momentum=cfg.MODEL.LOC.LOSS_GHMC_MOMENTUM)
self.cls_divide_pos_num = False
# we make use of IOU Loss for bounding boxes regression,
# but we found that L1 in log scale can yield a similar performance
self.box_reg_loss_func = IOULoss()
if cfg.MODEL.LOC.TARGET_GENERATOR == 'fcos' and cfg.MODEL.LOC.FCOS_CENTERNESS:
self.centerness_loss_func = nn.BCEWithLogitsLoss()
self.prepare_targets = build_target_generator(cfg)
self.cls_loss_weight = cfg.MODEL.LOC.CLS_WEIGHT
self.centerness_weight_reg = cfg.MODEL.LOC.TARGET_GENERATOR == 'fcos' and cfg.MODEL.LOC.FCOS_CENTERNESS_WEIGHT_REG
self.debug_vis_labels = cfg.MODEL.LOC.DEBUG.VIS_LABELS
self.cls_divide_pos_sum = cfg.MODEL.LOC.DIVIDE_POS_SUM
if self.cls_divide_pos_sum:
self.cls_divide_pos_num = False
示例11: __init__
# 需要導入模塊: from maskrcnn_benchmark import layers [as 別名]
# 或者: from maskrcnn_benchmark.layers import SigmoidFocalLoss [as 別名]
def __init__(self, cfg):
self.cls_loss_func = SigmoidFocalLoss(
cfg.MODEL.FCOS.LOSS_GAMMA,
cfg.MODEL.FCOS.LOSS_ALPHA
)
# we make use of IOU Loss for bounding boxes regression,
# but we found that L1 in log scale can yield a similar performance
self.box_reg_loss_func = IOULoss()
self.centerness_loss_func = nn.BCEWithLogitsLoss()
self.cascade_area_th = cfg.MODEL.FCOS.CASCADE_AREA_TH
self.vis_labels = cfg.MODEL.FCOS.DEBUG.VIS_LABELS
self.no_match_gt_count = {pos_area: 0 for pos_area in self.cascade_area_th}