czczup/ViT-Adapter

关于segmentation和detection的BEiT实现略有不同的问题

LiJiahang617 opened this issue · 2 comments

作者您好:
您的工作非常优秀,我正在使用这个仓库进行二次开发。
但是我发现您的segmentation部分的BeiT实现和detection的BeiT实现有区别,在Attention类中,detection使用了窗口注意力,但是segmentation好像没有,您当时为什么要这样设计呢?是和task-specific有关吗?或者是有什么参考来源吗?我想研究学习一下,希望您能抽空回答一下我,再次感谢您的优秀工作!

您好,因为检测任务用窗口注意力对性能的影响不大,几乎可以忽略(大约就差0.x个点),而且检测的分辨率比较高(800x1333往上),跑全局注意力比较困难;

分割任务受窗口注意力的影响会大一点,然后分辨率比检测低一些(例如512x512,最大到896x896),资源消耗还算可以接受,所以就跑了全局注意力

感谢您的回答,现在我明白了原因。另外有一点疑问是我在复现您的Cityscapes数据集上的结果时,按照您的预训练权重进行训练,但是无法载入您的[Mapillary]权重,在载入时会报错:Attention中的relative position bias的size错误,但是使用您的另一个beitv2-l的权重的时候却可以载入,因此想请问您是不是在cityscapes数据集上的实验时对网络参数进行了修改,比如对rel-pos-bias的使用等

Screenshot from 2024-01-17 16-33-14

Screenshot from 2024-01-17 16-42-39
s/103312600/820b9b38-900d-4ee5-a249-e25f2e242788)