• yxNONG's avatar
    Add QFocalLoss() (#1482) · b3ceffb5
    yxNONG 提交于
    * 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
    
    * Update loss.py
    b3ceffb5
名称
最后提交
最后更新
..
google_app_engine 正在载入提交数据...
__init__.py 正在载入提交数据...
activations.py 正在载入提交数据...
autoanchor.py 正在载入提交数据...
datasets.py 正在载入提交数据...
general.py 正在载入提交数据...
google_utils.py 正在载入提交数据...
loss.py 正在载入提交数据...
metrics.py 正在载入提交数据...
plots.py 正在载入提交数据...
torch_utils.py 正在载入提交数据...