• 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
名称
最后提交
最后更新
.github 正在载入提交数据...
data 正在载入提交数据...
models 正在载入提交数据...
utils 正在载入提交数据...
weights 正在载入提交数据...
.dockerignore 正在载入提交数据...
.gitattributes 正在载入提交数据...
.gitignore 正在载入提交数据...
Dockerfile 正在载入提交数据...
LICENSE 正在载入提交数据...
README.md 正在载入提交数据...
detect.py 正在载入提交数据...
hubconf.py 正在载入提交数据...
requirements.txt 正在载入提交数据...
test.py 正在载入提交数据...
train.py 正在载入提交数据...
tutorial.ipynb 正在载入提交数据...