Open Xujianzhong opened 4 years ago
@Xujianzhong 方便贴下代码链接么,我没有指定h为1。
backbone: gcb: ratio: 0.0625 headers: 1 att_scale: True fusion_type: 'channel_add' # channel_add channel_mul channel_concat pooling_type: 'att' layers:
headers被设置为1,还有一个疑问请教一下,为啥layers 的第一个被设置False?
@jiangxiluning 你好,multi GC block在结构中放在Res block后面而不是放在里面,是为了减少计算复杂度?
@Xujianzhong 你说的是headers, 1是当前数据集下做的最好的超参设置,第一个 resnet block 不需要加 gc 是原论文中的实验结论,放在 resnet block 以后是能够将结合 low-level feature 和 high-level feature 一起计算attention,效果更好吧。
@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
哦,这里的实验实现是照搬原GCB的实现的,@Xujiangzhong, 我只是针对 GCB 放在 skip connection 之后做了一个讨论。
@jiangxiluning 您好,方便加一下联系方式,交流沟通起来方便一些哈。qq 274543014
@jiangxiluning 看代码,h被设置为1了。请问是在实际实践有什么trick?