-
Notifications
You must be signed in to change notification settings - Fork 20
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
about loss implementation #36
Comments
total_effective_pred 和 total_targets 就是只包含正样本的哈 |
我是基于你的training-v2分支进行分析的, 另外根据你的code,通过debug分析,total_effective_pred 和 total_targets 应该包含的是(正样本+负样本),请你再确认下:
|
Ahh sorry.. 分类Loss肯定是要包含正负样本的,回归Loss只会包含正样本(负样本没办法回归)
所以这里 回归损失 并没有除以所有样本数,只除以了正样本数,因为:
如果你跟一下 total_t 和 和 total_gt,是只包含正样本的 |
smooth_l1_loss中的total_t, total_gt确实只包含正样本.这点没问题. 对于 我一开始和你认为一样,既然total_t, total_gt只包含了正样本,那么在计算smooth_l1_loss时,除以的就应该是(正样本)个数(100).但是昨天在发现,虽然total_t, total_gt只包含了正样本,但是在计算smooth_l1_loss时,除以的却是(正样本+负样本)个数(400). |
因为 smooth_l1_loss 的每个样本都含有4个值(坐标),所以最后
确实是个问题,感谢提出!会抽空修复这个问题。另外也非常欢迎提PR |
虽然结果一样,但我还是理解错了,也谢谢你的提醒. 另外对于master分支,其实不用改,本身就是:
我是基于training-v2这个分支分析时,才发现了这个权重4. |
@louis-she HI
在paper中,在计算loss时,有这样的描述:
换句话说,理论上,分类损失除以(正样本+负样本)个数,回归损失除以(正样本)个数,然后给分类损失乘以一个权重(4).
比如正样本个数是100,那么分类损失就是除以400,然后乘以4;回归损失就是除以100.
但在code中,在计算2个损失时,
此时,相当于分类损失和回归损失都除以了(正样本+负样本)个数,都是400.
那么再给分类损失乘以权重4是不是有问题啊??
The text was updated successfully, but these errors were encountered: