Pbihao / HDMNet

93 stars 9 forks source link

The code is inconsistent with the paper description #3

Closed zhangxuying1004 closed 1 year ago

zhangxuying1004 commented 1 year ago

作者您好,我对您的这篇论文很感兴趣,但是在阅读论文和代码的过程中,发现多处不一致的情况,特来向您请教,例如:

  1. Fig.3中的Correlation模块,您在Sec.3.3 的描述中说,使用cross-attention(scaled dot-product)进行查询特征和支持特征的匹配会导致overfitting和weak generalization,因此采用了cosine相似度量的方式,您在Fig3中也是这么展现的,但是您在model/Transformer.py的实现中,实际采用的还是cross-attention。
  2. Fig.3中的Correlation Distillation,您在Sec.3.3 中的公式(9)描述,使用的是相邻层次correlation间的蒸馏,但是您在model/HDMNet.py的实现中,实际使用的是支持图片的mask(teacher)到每个层次correlation的蒸馏。 此外,还有论文中还有描述不够清楚的地方,例如:
  3. 您实际上使用了BAM中base learner+meta learner的结构,但是在正文描述中,只在实现细节处提了一句以PSPNet作为base learner,方法一节中完全没有提及。
  4. 支持图片,支持mask和查询图片输入到预训练特征提取器中的操作,代码中的操作正文Sec3.2中没有提及。
  5. 模型的loss公式等。 我想知道:
  6. 您公布的代码是否为最新版本?如果不是,近期是否可以更新?
  7. 关于上面论文描述中我心存疑惑的几点内容,不知您是否可以解答呢? 谢谢。
Pbihao commented 1 year ago

首先感谢你对我们工作的兴趣和提问,本人重新检查了开源的代码和您提出的问题,发现并没有您所说的出现代码和论文不一致的情况,猜测可能是您在阅读代码的时候,出现了错误理解和细节缺漏,还望您仔细检查一下实现细节 1.我们重写了attention模块,为了方便沿用了crosa的名字但详细细节可见 MaskMultiheadAttention.py 文件,我们重写了函数 2.详细细节可见HDMNet.py文件中训练过程中loss函数的计算,每一次for循环我们都会更新weight_t,所以是相邻的层,至于最后一层使用label我们在paper中有提及 3.BAM不是我们论文的创新点,但是在实验章节,我们说明了使用了和bam中一样ensemble模块为了比较公平,并且在消融表格部分我们也比较了ensemble模块对于我们模型的影响,这里的ems就是bam

至于剩下的几个问题,不知道题主是否是刚刚接触few shot这个领域,因为我们在实现细节部分有说明,这些都是follow之前工作的setting,所以没有做补充说明,这些细节都可以在其经典fewshot的领域论文中找到,如果全部解释,会非常冗余也并没有必要。

最后再次感谢您的问题和兴趣,也希望能帮助到其他读者。