Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add QFocalLoss() #1482

Merged
merged 2 commits into from
Nov 25, 2020
Merged

Add QFocalLoss() #1482

merged 2 commits into from
Nov 25, 2020

Commits on Nov 25, 2020

  1. Update loss.py

    implement the quality focal loss which is a more general case of focal loss
    more detail in https://arxiv.org/abs/2006.04388 
    
    In the obj loss (or the case cls loss with label smooth), the targets is no long barely be 0 or 1 (can be 0.7), in this case, the normal focal loss is not work accurately
    quality focal loss in behave the same as focal loss when the target is equal to 0 or 1, and work accurately when targets in (0, 1)
    
    example:
    
    targets:
    tensor([[0.6225, 0.0000, 0.0000],
            [0.9000, 0.0000, 0.0000],
            [1.0000, 0.0000, 0.0000]])
    ___________________________
    pred_prob:
    tensor([[0.6225, 0.2689, 0.1192],
            [0.7773, 0.5000, 0.2227],
            [0.8176, 0.8808, 0.1978]])
    ____________________________
    focal_loss
    tensor([[0.0937, 0.0328, 0.0039],
            [0.0166, 0.1838, 0.0199],
            [0.0039, 1.3186, 0.0145]])
    ______________
    qfocal_loss
    tensor([[7.5373e-08, 3.2768e-02, 3.9179e-03],
            [4.8601e-03, 1.8380e-01, 1.9857e-02],
            [3.9233e-03, 1.3186e+00, 1.4545e-02]])
     
    we can see that targets[0][0] = 0.6255 is almost the same as pred_prob[0][0] = 0.6225, 
    the targets[1][0] = 0.9 is greater then pred_prob[1][0] = 0.7773 by 0.1227
    however, the focal loss[0][0] = 0.0937 larger then focal loss[1][0] = 0.0166 (which against the purpose of focal loss)
    
    for the quality focal loss , it implement the case of targets not equal to 0 or 1
    yxNONG authored and glenn-jocher committed Nov 25, 2020
    Configuration menu
    Copy the full SHA
    25239e1 View commit details
    Browse the repository at this point in the history
  2. Update loss.py

    yxNONG authored and glenn-jocher committed Nov 25, 2020
    Configuration menu
    Copy the full SHA
    93120f2 View commit details
    Browse the repository at this point in the history