• l1,l2,soomthl1


    def smooth_l1_loss_modify(predict, target, mask, sigma=3):
        # predict: bx2x96x128
        # target : bx2x96x128
        # mask   : bx2x96x128
        num_object = mask.sum().item() / mask.size(1)
        sigma2 = sigma * sigma
        diff = predict[mask] - target[mask]
        diff_abs = diff.abs()
        near = (diff_abs < 1 / sigma2).float()
        far = 1 - near
        return (near * 0.5 * sigma2 * torch.pow(diff, 2) + far * (diff_abs - 0.5 / sigma2)).sum() / num_object
        
    def l2_loss_modify(predict, target, mask):
        # predict: bx2x96x128
        # target : bx2x96x128
        # mask   : bx2x96x128
        num_object = mask.sum().item() / mask.size(1)
        if num_object == 0 : num_object = 1
        masked_predict = predict[mask]
        masked_target = target[mask]
        return torch.pow(masked_predict - masked_target, 2).sum() / num_object
    
    def l1_loss_modify(predict, target, mask):
        # predict: bx2x96x128
        # target : bx2x96x128
        # mask   : bx2x96x128
        num_object = mask.sum().item() / mask.size(1)
        if num_object == 0 : num_object = 1
        masked_predict = predict[mask]
        masked_target = target[mask]
        return torch.abs(masked_predict - masked_target).sum() / num_object
  • 相关阅读:
    第三周作业
    第二周作业
    第一周作业附加
    第三次结构部分作业
    第二次作业
    最后一周作业
    第14,15周作业
    第七周作业
    第六周作业
    第四周作业
  • 原文地址:https://www.cnblogs.com/xiaoruirui/p/16851858.html
Copyright © 2020-2023  润新知