コード例 #1
0
 def loss(self, mask_pred, mask_targets, labels):
     loss = dict()
     if self.class_agnostic:
         loss_mask = mask_cross_entropy(mask_pred, mask_targets,
                                        torch.zeros_like(labels))
     else:
         loss_mask = mask_cross_entropy(mask_pred, mask_targets, labels)
     loss['loss_mask'] = loss_mask
     return loss
コード例 #2
0
 def loss(self, mask_pred, mask_targets, labels):
     loss = dict()
     if self.class_agnostic:
         loss_mask = mask_cross_entropy(mask_pred, mask_targets,
                                        torch.zeros_like(labels))
         #loss_mask2 = mask_volume_loss(mask_pred, mask_targets, torch.zeros_like(labels))
     else:
         loss_mask = mask_cross_entropy(mask_pred, mask_targets, labels)
         #loss_mask2 = mask_volume_loss(mask_pred, mask_targets, labels) * 100
     # print("loss:", (loss_mask.item(), loss_mask2.item()))
     # loss['loss_mask'] = loss_mask + loss_mask2
     loss['loss_mask'] = loss_mask
     return loss
コード例 #3
0
ファイル: fcn_mask_head.py プロジェクト: zyg11/AugFPN
    def loss_aux(self, mask_pred, mask_targets, labels, alpha=0.25):
        loss = dict()
        mask_pred_level0 = mask_pred[0::4,:]
        mask_pred_level1 = mask_pred[1::4,:]
        mask_pred_level2 = mask_pred[2::4,:]
        mask_pred_level3 = mask_pred[3::4,:]
   
        if self.class_agnostic:
            loss_mask_level0 = mask_cross_entropy(mask_pred_level0, mask_targets,
                                           torch.zeros_like(labels))
            loss_mask_level1 = mask_cross_entropy(mask_pred_level1, mask_targets,
                                           torch.zeros_like(labels))
            loss_mask_level2 = mask_cross_entropy(mask_pred_level2, mask_targets,
                                           torch.zeros_like(labels))
            loss_mask_level3 = mask_cross_entropy(mask_pred_level3, mask_targets,
                                           torch.zeros_like(labels))
        else:
            loss_mask_level0 = mask_cross_entropy(mask_pred_level0, mask_targets, labels)
            loss_mask_level1 = mask_cross_entropy(mask_pred_level1, mask_targets, labels)
            loss_mask_level2 = mask_cross_entropy(mask_pred_level2, mask_targets, labels)
            loss_mask_level3 = mask_cross_entropy(mask_pred_level3, mask_targets, labels)

        loss['loss_mask_level0'] = loss_mask_level0 * alpha
        loss['loss_mask_level1'] = loss_mask_level1 * alpha
        loss['loss_mask_level2'] = loss_mask_level2 * alpha
        loss['loss_mask_level3'] = loss_mask_level3 * alpha

        return loss
コード例 #4
0
 def loss(self, mask_pred, mask_targets, iou_pred, iou_targets, labels):
     loss = dict()
     if self.class_agnostic:
         loss_mask = mask_cross_entropy(mask_pred, mask_targets,
                                        torch.zeros_like(labels))
         iou_targets = self.mask_iou(mask_pred, mask_targets,
                                     torch.zeros_like(labels))
         # use smooth L1 loss instead of L2 loss.
         # iou_loss = smooth_l1_loss(iou_pred, iou_targets, reduction='mean')
     else:
         loss_mask = mask_cross_entropy(mask_pred, mask_targets, labels)
         iou_targets = self.mask_iou(mask_pred, mask_targets, labels)
         # iou_loss = smooth_l1_loss()
     loss_iou = smooth_l1_loss(iou_pred, iou_targets, labels)
     loss['loss_mask'] = loss_mask
     loss['loss_maskiou'] = loss_iou
     return loss
コード例 #5
0
 def loss(self, mask_pred, mask_targets, labels):
     loss = dict()
     loss_mask = mask_cross_entropy(mask_pred, mask_targets, labels)
     loss['loss_mask'] = loss_mask
     return loss