Open kk-kaii opened 1 year ago
@kk-kaii 我的理解是已经做了的。
x4_3_up = F.upsample(x4_3, size=x3_2.size()[2:], mode='bilinear')
x4_3_up_map1 = self.conv_3(x4_3_up)
x3_2_map1 = self.conv_3(x3_2)
x4_3_up_map2 = self.conv_5(x4_3_up)
x3_2_map2 = self.conv_5(x3_2)
x4_3_2 = self.x4_x3_x2(abs(x4_3_up - x3_2)+abs(x4_3_up_map1-x3_2_map1)+abs(x4_3_up_map2-x3_2_map2) )
以这一段代码为例,map1和map2分别代表用conv3和conv5卷积后的结果。在最后的相加过程中分别有三次绝对值,对应1x1, 3x3, 5x5。
====================================
@kk-kaii @Xiaoqi-Zhao-DLUT
另外我也有些疑惑,麻烦作者或其他人帮忙解惑。
在最后一次MSU的过程,为什么要用到x5_dem_4
的操作。按照之前的操作不应该是对x5_4_3_2进行上采样得到x5_4_3_2_up吗,为什么这里突然变成了x5_dem_4,然后对其进行上采样。
代码如下:
x5_dem_4 = self.x5_dem_4(x5_4_3_2)
x5_dem_4_up = F.upsample(x5_dem_4, size=x4_3_2_1.size()[2:], mode='bilinear')
x5_dem_4_up_map1 = self.conv_3(x5_dem_4_up)
x4_3_2_1_map1 = self.conv_3(x4_3_2_1)
x5_dem_4_up_map2 = self.conv_5(x5_dem_4_up)
x4_3_2_1_map2 = self.conv_5(x4_3_2_1)
x5_4_3_2_1 = self.x5_x4_x3_x2_x1(
abs(x5_dem_4_up - x4_3_2_1)+abs(x5_dem_4_up_map1-x4_3_2_1_map1)+abs(x5_dem_4_up_map2-x4_3_2_1_map2) )
另外还有一个问题二。
在后面的level的add过程中,在代码中是没有加上每一层的维度变化后的结果,就是x5_dem_1
等等,但是论文图中是有连线的,不知道是图没有修改还是代码的问题。代码如下:
level4 = x5_4 # 根据论文fig.2,缺少x4_dem_1,以下类推
level3 = self.level3(x4_3 + x5_4_3)
level2 = self.level2(x3_2 + x4_3_2 + x5_4_3_2)
level1 = self.level1(x2_1 + x3_2_1 + x4_3_2_1 + x5_4_3_2_1)
您好 我看您论文中说的MSU单位是由一个1×1卷积加上一个3×3卷积再加上一个5×5卷积的总和再卷积得到的,但我看您提供的代码里,self.conv_3 = CNN1(64, 3, 1),self.conv_5 = CNN1(64, 5, 2),是3×3卷积和5×5卷积 后续相加的时候也没有1×1卷积 是怎么回事啊 或者是不是我理解错误呀 希望您能回复 谢谢