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

请问关于retinanet,fcos的gfocal实现 #26

Closed
Logicino opened this issue Apr 12, 2022 · 5 comments
Closed

请问关于retinanet,fcos的gfocal实现 #26

Logicino opened this issue Apr 12, 2022 · 5 comments

Comments

@Logicino
Copy link

您好!
我注意到LD项目中,config中的gfl文件夹里有复现相关不同网络使用generalized focal loss的代码
我理解的generalized focal loss的改进是在 1.分类分支使用了joint的quality focal loss 2.回归分支采用了general distribution+distribution focal loss,后者的核心是采用概率分布改进了边框拟合方式。
我看到项目中代码,例如gfl_r50_fpn_1x_coco这些,是在loss_cls中使用了quality focal loss,在loss_dfl中使用了distribution focal loss,这很容易理解。
但是,例如retina_gfl_r101_2x,fcos_gfl_r50_center这些配置中,对loss_cls还是使用了focalloss,在loss_bbox使用了GIoUloss(我理解的是quality focal loss中采用IoU label代替one-hot label的意思),不知道distribution focal loss是怎么体现的呢?其中,retinanet(retina_gfl_r101_2x)采用的好像还是deltaxywhbboxcoder?
非常感谢!

@HikariTJU
Copy link
Owner

HikariTJU commented Apr 12, 2022

  1. 在retina和fcos这几个上面只用了 general distribution,没有使用dfl和qfl
  2. retina的bbox_coder实际上没用到

@Logicino
Copy link
Author

  1. 在retina和fcos这几个上面只用了 general distribution,没有使用dfl和qfl
  2. retina的bbox_coder实际上没用到

感谢回复~!
可以理解为采用generalized distribution是loss_bbox=dict(type='GIoULoss')这个决定的吗?
另外,关于蒸馏实验,我之前采用您的方法做实验,确实对于同样使用ResNet+FPN的情况下,用ResNet101指导ResNet18有很大提高
但是这几天尝试了使用MobileNet作为student,用ResNet-101的结果作为teacher会有一些精度下降,不知道是不是蒸馏对网络结构有要求,即网络结构近似的效果会更好?
(但是我理解的蒸馏是将teacher网络的分类结果,这里是推演出的边框概率位置,作为指导学生的,所以感觉可能是没关系的?是不是应该往调整蒸馏学习的超参数方向试试呢?谢谢~!

@Zzh-tju
Copy link
Collaborator

Zzh-tju commented Apr 14, 2022

准确来说有三个超参值得考虑,一个是边界被离散化成概率分布的离散程度n (小区间的个数),gfocal是16,对于rotated RetinaNet我们发现8更好,因此n可能会有一定的影响,不过差别不会太大。

第二个是温度\tau,这影响着概率分布的软化程度。一般而言会在5~15这个范围比较好。

第三个是loss weight,这个可以调一调。

我建议是按照这个顺序逐一去确定。

@HikariTJU
Copy link
Owner

没做过mobilenet的实验,你可以用resnet18或者34做teacher试试

@Logicino
Copy link
Author

准确来说有三个超参值得考虑,一个是边界被离散化成概率分布的离散程度n (小区间的个数),gfocal是16,对于rotated RetinaNet我们发现8更好,因此n可能会有一定的影响,不过差别不会太大。

第二个是温度\tau,这影响着概率分布的软化程度。一般而言会在5~15这个范围比较好。

第三个是loss weight,这个可以调一调。

我建议是按照这个顺序逐一去确定。

谢谢您的回复!我这几天重新做了实验,发现teacher选择上也有一定影响
之前用res18做student的话,LD之后效果最好的是res50
mobile我试了还是res101效果最好,猜测可能因为res101下AP^S最高,补足了mobile的AP^S低的问题
我再按您的方法试一试~感谢!

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

3 participants