关于ResNet代码中的一点疑惑

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

DeepTec

2018-11-26

老师,您好 ResNet 这段代码里 假如进行降采样过程时,步长为(2,2)将图像大小变为原来一半,但conv1 中pading 为same 不就是补零使输入图像和输出图像大小一致嘛?麻烦老师帮我解答一下嘛?非常感谢

def residual_block(x, output_channel):
""“residual connection implementation”""
input_channel = x.get_shape().as_list()[-1]
if input_channel * 2 == output_channel:
increase_dim = True
strides = (2, 2)
elif input_channel == output_channel:
increase_dim = False
strides = (1, 1)
else:
raise Exception(“input channel can’t match output channel”)
conv1 = tf.layers.conv2d(x,
output_channel,
(3,3),
strides = strides,
padding = ‘same’,
activation = tf.nn.relu,
name = ‘conv1’)

写回答

2回答

CrazyCat岩

2018-12-03

padding:"valid" 表示不够卷积核大小的块就丢弃,"same"表示不够卷积核大小的块就补0。老师在视频里说过,因为实验数据时32*32,是可以除尽的,所以不存在数据丢失问题,因此same或valid无所谓。

0
0

慕仰3701486

2018-11-26

这个same参数补零补多少是根据卷积核的大小来决定的,比如一个nxn的卷积核,被卷积的特征图的上下左右需要补不超过n/2的最大整数层的零,比如3x3的卷积核被卷积的特征地图上下左右需要各补1层零,当卷积步长为1x1时,特征图尺寸不发生变化,当步长为2x2时特征图为原来的1/2

0
0

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

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

2617 学习 · 935 问题

查看课程