jiangxiluning / MASTER-TF

MASTER
MIT License
139 stars 44 forks source link

h被设置为1了? #6

Open Xujianzhong opened 4 years ago

Xujianzhong commented 4 years ago

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

jiangxiluning commented 4 years ago

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

Xujianzhong commented 4 years ago

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?

Xujianzhong commented 4 years ago

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

jiangxiluning commented 4 years ago

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

Xujianzhong commented 4 years ago

@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 commented 4 years ago

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

Xujianzhong commented 4 years ago

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