cfzd / FcaNet

FcaNet: Frequency Channel Attention Networks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

请问一下这个模块在分割的时候如何设置dct_h和dct_w?

nnoyuwan opened this issue · comments

输入要经过下采样和上采样,输入图片也就需要缩小和放大好几次,那我是不是要在__init__就把input size传进去,有什么办法能实时获取输入大小吗?

我有尝试在forward函数里获取x的大小,但后面训练很慢,我就意识到dct应该需要在搭建网络时预生成。

commented

@nnoyuwan
我们在检测的模型中考虑到了这个问题,其实这个大小只是一个“参考大小”,并不一定是要和输入一样的。具体的代码可以看这个地方:

FcaNet/model/layer.py

Lines 54 to 55 in aa5fb63

if h != self.dct_h or w != self.dct_w:
x_pooled = torch.nn.functional.adaptive_avg_pool2d(x, (self.dct_h, self.dct_w))

如果输入大小和DCT大小不一样的话,我们会先做个resize然后在提取DCT频谱,而且resize只对应提取频谱,不会对输入特征造成任何影响。

其实也有个简单的办法,你可以把所有的dct_w和dct_h统统都设置为7,不用考虑输入大小的问题。