YimianDai / open-aff

code and trained models for "Attentional Feature Fusion"
729 stars 95 forks source link

一些问题请教一下 #1

Closed qdd1234 closed 3 years ago

qdd1234 commented 4 years ago

1.您的论文中关于在FPN中应用AFF代码是哪个部分,我没找到 2.Global + Local方式您是在哪个分支上增加globalpooling的,还是两个分支任意哪个都可以? 麻烦您能帮我解答一下,谢谢

YimianDai commented 4 years ago

谢谢。

目前 FPN 的代码还没有上传,主要是我最近几天又把代码重构了一遍,想把重构后的代码上传。一则,目前的代码写得有点挫;二则目前的代码没用什么 trick,我想看看用了一些 trick 后,较浅的 ResNet、ResNeXt 网络性能能到什么样。

我目前已经把 CIFAR-100 的实验跑好了,可以在现有的基础上提高一个百分点以上,最高的模型准确率可以到 91.8%。ImageNet 比较耗时,还在跑。大概 3 天后我会把图像分类的 新的代码 和 训练好的模型 上传 覆盖现在老的代码。FPN 的代码同理,我会重新跑后再上传,顺利的话大概 1 周后(等 ImageNet 跑完 GPU 空出来,三天后才能跑完 iAFF-ResNet/ResNeXt,而 AFF-ResNet/ResNeXt 会快一点,大概还需要 3 - 4 天时间),很不好意思。

加了 globalpooling 的就是 Global 分支,没加就是 local,两者的区别只在于 pooling 的 scale。globalpooling 的 pooling scale 是 HxW 特征图大小,local 的就是 1 x 1 point-wise.

FelixZhang7 commented 4 years ago

@YimianDai 作者您好,我想问一下您的方法有没有在速度上和加了SE,SK模块之类的resnet网络进行比较呢?

YimianDai commented 4 years ago

@YimianDai 作者您好,我想问一下您的方法有没有在速度上和加了 SE,SK 模块之类的 resnet 网络进行比较呢?

速度上肯定会比 SE、SK 慢,因为 SE、SK 用的 Global Channel Attention 只要用 PWConv 对 GlobalAVGPooling 后大小为 1x1 的点做一次就好,而 MS-CAM 中的 Point-wise Conv 要对整个 H x W 的特征图做。虽然这点计算量相对整个 Residual Block 本身的卷积比例不高(具体比例如下图所示),但比起 SE、SK 这种几乎没有计算开销的还是会慢上不少。

image

我没有在论文里强调这点,因为这个本身是我论文的一个不足,扬长避短嘛。但相比添加 local channel attention 分支带来的性能提升,我感觉这点计算时间上的 trade-off 还是值得的。如果需要的话,我后面会添加一个 Flops 的比较,但 AFF 会比较吃亏就是了。

mcmingchang commented 4 years ago

你好,考虑推出pytorch版本吗

YimianDai commented 4 years ago

你好,考虑推出 pytorch 版本吗

我有转向 PyTorch 的计划,毕竟 MXNet 用得人太少了。但一则最近我工作以外的事情太多了,二则我也不是很熟悉 PyTorch,所以我自己的计划是等到今年过年的时候,趁那段时间一边熟悉下 PyTorch 一边把代码重写下。

jzw0707 commented 4 years ago

作者您好,Attentional Feature Fusion是非常好的工作,对于我后续的工作和研究非常有帮助和启发,但是无奈对于MXNet不是很了解,期望您在闲暇之余推出pytorch版本,非常感谢。

YimianDai commented 4 years ago

作者您好,Attentional Feature Fusion 是非常好的工作,对于我后续的工作和研究非常有帮助和启发,但是无奈对于 MXNet 不是很了解,期望您在闲暇之余推出 pytorch 版本,非常感谢。

谢谢!等我忙完目前毕业论文的修改,我就开始着手弄这个。