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

h被设置为1了? #6

Open
Xujianzhong opened this issue Aug 20, 2020 · 7 comments
Open

h被设置为1了? #6

Xujianzhong opened this issue Aug 20, 2020 · 7 comments

Comments

@Xujianzhong
Copy link

@jiangxiluning 看代码,h被设置为1了。请问是在实际实践有什么trick?

@jiangxiluning
Copy link
Owner

@Xujianzhong 方便贴下代码链接么,我没有指定h为1。

@Xujianzhong
Copy link
Author

backbone:
gcb:
ratio: 0.0625
headers: 1
att_scale: True
fusion_type: 'channel_add' # channel_add channel_mul channel_concat
pooling_type: 'att'
layers:
- False
- True
- True
- True

headers被设置为1,还有一个疑问请教一下,为啥layers 的第一个被设置False?

@Xujianzhong
Copy link
Author

@jiangxiluning 你好,multi GC block在结构中放在Res block后面而不是放在里面,是为了减少计算复杂度?

@jiangxiluning
Copy link
Owner

@Xujianzhong 你说的是headers, 1是当前数据集下做的最好的超参设置,第一个 resnet block 不需要加 gc 是原论文中的实验结论,放在 resnet block 以后是能够将结合 low-level feature 和 high-level feature 一起计算attention,效果更好吧。

@Xujianzhong
Copy link
Author

@jiangxiluning 但是代码实现的时候,好像又放在Res的里面了?
def call(self, inputs, **kwargs):

    out = self.conv1(inputs)
    out = self.bn1(out)
    out = self.relu(out)

    out = self.conv2(out)
    out = self.bn2(out)


    out = self.gcb(out)
    out = out + self.downsample(inputs)

    out = self.relu(out)

论文的结构是Res block重复堆叠后再加multi GC block
image

@jiangxiluning
Copy link
Owner

哦,这里的实验实现是照搬原GCB的实现的,@Xujiangzhong, 我只是针对 GCB 放在 skip connection 之后做了一个讨论。

@Xujianzhong
Copy link
Author

@jiangxiluning 您好,方便加一下联系方式,交流沟通起来方便一些哈。qq 274543014

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

2 participants