0

只是尝试使用 Keras,但在使用 padding=same 时我对 Conv2D 函数有点困惑。我想知道是否有人可以帮助我弄清楚当 padding="same" 时如何设置 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)

如果padding为2,则结果为5,不等于2。如果padding为1,则result为3,不等于2。如果padding为0,则result为1,不等于2 .

我假设填充需要是一个整数值。

Keras 在这里如何计算填充值?

4

0 回答 0