Keras Layers

Интерактивные анимации для курса по CNN. Нажмите на слой, чтобы открыть визуализацию.

Свёртка
Conv2D — padding="valid"
keras.layers.Conv2D / padding="valid"
Скользящее окно без дополнения нулями. Размер выхода меньше входа. Тепловая карта показывает неравный вклад пикселей.
Conv2D — padding="same"
keras.layers.Conv2D / padding="same"
Нулевое дополнение по краям. Выход сохраняет пространственный размер входа. Тепловая карта вкладов пикселей.
Пулинг
MaxPooling2D
keras.layers.MaxPooling2D
Выбирает максимальное значение в каждом окне. Уменьшает пространственный размер карты признаков.
AveragePooling2D
keras.layers.AveragePooling2D
Вычисляет среднее значение в каждом окне. Уменьшает пространственный размер карты признаков.
GlobalAveragePooling2D
keras.layers.GlobalAveragePooling2D
Одно среднее значение на канал по всей пространственной карте. Используется в ResNet, MobileNet, EfficientNet вместо Flatten + Dense.
Увеличение размерности
UpSampling2D
keras.layers.UpSampling2D
Повторяет каждый пиксель в блок заданного размера. Без обучаемых параметров.
Conv2DTranspose
keras.layers.Conv2DTranspose
Обучаемый апсэмплинг: каждый пиксель масштабирует ядро, вклады суммируются в выходной тензор большего размера.
Приведение к одномерному вектору
Flatten
keras.layers.Flatten
Преобразование многомерного тензора в одномерный. Порядок обхода — построчный (row-major).
Flatten — RGB-изображение
keras.layers.Flatten / channels_last
Три канала (R, G, B) разворачиваются позиция за позицией: для каждой точки (h, w) последовательно идут все каналы — не канал за каналом.