关于padded_x函数细节的疑惑

来源:4-4 VGG-ResNet实战(1)

next_n

2019-01-16

老师您好,这一小节我有以下两个问题:
1.整除问题。
例如当 input_channel = 7,output_channel = 14时,即 input_channel // 2 = 3,此时,pad后的通道数本应为14 , 但是按照老师的代码,前后都pad了3个0通道,pad后的总通道数为7+32 = 13,这里是不是可能有细节上的错误?
2.pad方式问题。
我们这里的目的是让经过跳跃连接的输出与通过卷积后的输出通道数进行匹配,那么这里是否可以采用1
1 的卷积核(卷积核数目为 output_channel )进行卷积操作呢?如果可以,效果是不是会更好一些呢?

写回答

1回答

正十七

2019-01-20

同学你好,从你的问题里可以看出你看得很仔细。赞。

第一个问题,我在使用的时候一般会把初始通道数目设为偶数,这样这个问题就不存在了,如果是奇数,确实会有你说的这个问题。可以通过把第二个[input_channel // 2, input_channel // 2] 改为 [input_channel // 2, output_channel - input_channel - input_channel // 2] 来解决。

第二个问题,使用一个卷积再加过来也是可以的,但是这样就违背了residual block的初衷了,有点类似inception block了,inception block是多分支再拼接,你的改法就变成了多分支再加起来了。你可以试试这个方法,但我觉得可能提升很有限。

祝学习愉快。

1
1
next_n
问题二我尝试了一下,在训练次数较低时,准确率会有所提高,不过老师说得更有道理,受教了!
2019-01-21
共1条回复

深度学习之神经网络(CNN/RNN/GAN)算法原理+实战

深度学习算法工程师必学,深入理解深度学习核心算法CNN RNN GAN

2617 学习 · 935 问题

查看课程