Kак поменяется размер изображения по свёрточной сети
Архитектура сверточной сети:
model = Sequential()
model.add(Conv2D(32, (3, 3), padding='same', activation='relu', input_shap e=(28, 28, 1)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(10, activation='softmax'))
Как поменяется размер изображения? Гуглила - не понимаю параметр Conv2D(32,(3,3)) как соотносится с (28,28,1)?
Ответы (2 шт):
А не пробовали читать документацию? :)
tf.keras.layers.Conv2D(
filters,
kernel_size,
- filters: Integer, the dimensionality of the output space (i.e. the number of output filters in the convolution).
- kernel_size: An integer or tuple/list of 2 integers, specifying the height and width of the 2D convolution window. Can be a single integer to specify the same value for all spatial dimensions.
Т.е. в вашем случае в этом слое будет 32 фильтра с размером ядра свёртки 3x3. В общем-то это никак не соотносится с размером входных данных, да и не должно соотноситься.
Отдельно вот про kernel ссылка, но вам точно надо почитать что-нибудь про 2D convolution.
в 14 раз уменьшится. В примере было получено изображение, которое в 14 раз меньше нашего исходного изображения. Размер итогового изображения будет варьироваться в зависимости от выбора размера прямоугольной сетки и размера шага. За уменьшение отвечает слой MaxPooling. Подробно https://habr.com/ru/post/454986/