Расчет размеров Keras Conv2D при заполнении = то же - PullRequest
0 голосов
/ 08 мая 2018

Просто пытаюсь использовать Keras, но меня немного смущает функция Conv2D при использовании padding = same. Интересно, может ли кто-нибудь помочь мне выяснить, как устанавливается значение p (padding), когда padding = "same"?

Вот пример кода:

# 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) / stepde) + 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 вычисляет здесь значение заполнения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...