Я читал этот урок по сверточным авто кодировщикам Keras и понял, что не получаю размер (8, 4, 4) после этих слоев в моем расчете - размер изображений должен упасть до 3 уже после второй сверточный слой, так как шаг большой. Так как же получить это измерение? Или кто-нибудь может объяснить процесс вычисления?
Я также запутался в том, как «одинаковые» отступы выполняются в этой ситуации, так как они всегда упоминают «когда для шага = 1 одинаковое заполнение будет сохранять одинаковое измерение». Я полностью понимаю это. Но что происходит, когда шаг не 1? сколько нулей я получу на каждой стороне? Я знаю уравнение расчета для размеров, floor ((h + 2p - k) // s + 1), но что такое p в этом случае?
Спасибо
input_img = Input(shape=(1, 28, 28))
x = Convolution2D(16, 3, 3, activation='relu', border_mode='same')(input_img)
x = MaxPooling2D((2, 2), border_mode='same')(x)
x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(x)
x = MaxPooling2D((2, 2), border_mode='same')(x)
x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(x)
encoded = MaxPooling2D((2, 2), border_mode='same')(x)
# at this point the representation is (8, 4, 4) i.e. 128-dimensional