只是尝试使用Keras但是当使用padding = same时我对Conv2D函数有点困惑。我想知道是否有人可以帮我弄清楚填充=“相同”时如何设置p(填充)值?
这是一个代码示例:
# X.shape = (3, 2, 2, 2) at this point
X = Conv2D(filters=4, kernel_size=(2, 2), strides = (1, 1), padding = 'same',
name = 'apply_conv_2',
kernel_initializer = glorot_uniform())(X)
X = BatchNormalization(axis = 3, name = 'apply_bn_2')(X)
X = Activation('relu')(X)
# X.shape = (3, 2, 2, 4) at this point
您应该将尺寸读作(nr_samples,height,width,nr_channels)
如果padding =“same”,则高度和宽度将保持不变。但是我有点困惑,在计算尺寸时,p值取这个值。
例如,尺寸高度应计算为:
height_next = ROUND_DOWN(((height_prev + 2xpadding - kernel_size)/ stride)+ 1)
height_next = height_prev = 2。 如上所示,kernel_size = 2以上。并且步幅= 1。
所以.. 2 = ROUND_DOWN(((2 + 2xpadding - 2)/ 1)+ 1)
如果填充为2,则结果为5,不等于2。 如果填充为1,则结果为3,不等于2。 如果填充为0,则结果为1,不等于2.
我认为填充需要是一个整数值。
Keras如何计算填充值?