-
Notifications
You must be signed in to change notification settings - Fork 72
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
Possibly Incorrect Loss Terms #22
Comments
@glenn-jocher refer to a comment in #20 (comment) |
|
@andy-yun @glenn-jocher I tested criterion of BCE and MSE on "conf". My experiment environment is mentioned below.
In my experiment, The BCE performance is better than MSE. BCE is better mAP performance than MSE, and in shell screenshot (see below), we know that BCE has some value in nPP, but MSE has still zero value on last yolo layer. Anyway, it does not converge to the author's performance.
I only run 5 epoch and I got 0.152mAP. I want to continue to train 64 batch, but I can not run because of memory error. |
@doobidoob May be Out of memory error occurs is caused by data augmentation when resizing 608*608 |
Try to use the latest code that changed loss term to bce loss. |
With 80 epoches, 45.9 mAP is obtained with latest code. |
Hello, thank you for your YOLOv3 repo. I noticed your loss term is different than the official YOLOv3 loss in at least two ways:
I think you should use BCELoss for
loss_cls
, as the YOLOv3 paper section 2.2 clearly states "During training we use binary cross-entropy loss for the class predictions."Why is MSELoss used in place of BCELoss for
loss_conf
? Did you make this choice yourself or did you see this in darknet?Why divide
loss_coord
by 2?https://github.com/andy-yun/pytorch-0.4-yolov3/blob/master/yolo_layer.py#L161-L164
The text was updated successfully, but these errors were encountered: