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

请问论文中1/(w^2+h^2) 替换成1如何实现? #11

Open
KoapT opened this issue Oct 22, 2020 · 2 comments
Open

请问论文中1/(w^2+h^2) 替换成1如何实现? #11

KoapT opened this issue Oct 22, 2020 · 2 comments

Comments

@KoapT
Copy link

KoapT commented Oct 22, 2020

今天阅读您的论文,提到ciou loss中 v对h和w求偏导时的问题。
由于w和h可能会非常小,所以为避免梯度爆炸您将1/(w^2+h^2) 替换成了1。
请问这在pytorch、tf这类自动求导的框架中如何实现?
我看您的pytorch实现是增加了条件S:

S = (iou>0.5).float()
alpha= S*v/(1-iou+v)

是否能理解为,使用Iou>0.5这个条件,过滤掉了w和h很小的情况,从而1/(w^2+h^2) 不按照原论文替换为1?

@KoapT KoapT changed the title 请问 请问论文中1/(w^2+h^2) 替换成1如何实现? Oct 22, 2020
@Zzh-tju
Copy link
Owner

Zzh-tju commented Oct 22, 2020

因为我们发现在Pytorch中CIoU自动求导可以正常进行,限制在IoU>0.5是因为我们认为IoU<0.5长宽比不是那么重要。

@KoapT
Copy link
Author

KoapT commented Oct 22, 2020

因为我们发现在Pytorch中CIoU自动求导可以正常进行,限制在IoU>0.5是因为我们认为IoU<0.5长宽比不是那么重要。

好的。谢谢回复!
我在用tf1实现yolov4的时候,也在ciou loss的地方遇到了nan of inf的error, 不知道是不是您文中所说的问题导致。
我实现ciou的时候没有读paper,照着博客瞎写的,没有S的限制,也没有停止alpha的梯度。
还是该直接读paper的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants