老师,4-6(1)中第四个分支max_pooling层的padding为什么不能设为same

来源:4-6 Inception-mobile_net(1)

慕尼黑6883914

2018-10-08

老师,4-6(1)中第四个分支max_pooling层的padding为什么还需要手动算呢,为什么不能通过padding参数来控制最后的输出大小
就是下面这段代码

max_pooling = tf.layers.max_pooling2d(x,
                                      (2, 2),
                                      (2, 2),
                                      name = 'max_pooling')
    
    max_pooling_shape = max_pooling.get_shape().as_list()[1:]
    input_shape = x.get_shape().as_list()[1:]
    width_padding = (input_shape[0] - max_pooling_shape[0]) // 2
    height_padding = (input_shape[1] - max_pooling_shape[1]) // 2

改成

max_pooling = tf.layers.max_pooling2d(x,
                                      (2, 2),
                                      (2, 2),
                                      name = 'max_pooling',
                                      padding='same')

可以么?

写回答

1回答

正十七

2018-10-13

不行,padding需要计算的原因是第四个分支经过了max_pooling导致输出变小了,但是其他几个分支并没有变小。而这几个分支是要按照通道合并起来的,所以我们要将变小的第四个分支再变回来。

相当于图像大小从[10, 10] 变为[5,5]后 再变为[10, 10]。

你在这里改了之后就没有再变回来的步骤了。

1
0

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

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

2617 学习 · 935 问题

查看课程