РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
200 of 824 menu

Класс Conv2D

Класс Conv2D создает слой двумерной свертки. Такой слой применяется к двумерным данным, например, к изображениям, и извлекает из них локальные признаки. Первым параметром передается число фильтров filters, вторым - размер ядра свертки kernel_size. Также можно указать шаг свертки strides, тип дополнения padding и функцию активации activation.

Синтаксис

tf.keras.layers.Conv2D( filters, kernel_size, strides=(1, 1), padding="valid", activation=None )

Пример

Давайте создадим слой свертки с четырьмя фильтрами и ядром размера 3 на 3 и применим его к тензор�� изображения:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.Conv2D(filters=4, kernel_size=(3, 3)) t = tf.constant([[[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9]]]]) res = layer(t) print(res.shape)

Результат выполнения кода:

(1, 1, 1, 4)

Пример

Давайте создадим слой свертки с функцией активации relu и дополнением same, чтобы размер выхода совпадал с размером входа:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.Conv2D( filters=2, kernel_size=(3, 3), padding="same", activation="relu" ) t = tf.constant([[[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9]]]]) res = layer(t) print(res.shape)

Результат выполнения кода:

(1, 3, 3, 2)

Пример

Давайте создадим слой свертки с шагом 2 и применим его к тензору с тремя каналами:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.Conv2D( filters=8, kernel_size=(3, 3), strides=(2, 2) ) t = tf.constant([[[[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3]], [[4, 5, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6]], [[7, 8, 9], [1, 2, 3], [4, 5, 6], [7, 8, 9]], [[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3]]]]) res = layer(t) print(res.shape)

Результат выполнения кода:

(1, 1, 1, 8)

Пример

Давайте встроим слой свертки в последовательную модель и выведем сводку по ней:

import tensorflow as tf tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(4, 4, 1)), tf.keras.layers.Conv2D(filters=2, kernel_size=(3, 3)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(units=1) ]) model.summary() <-python+>

Результат выполнения кода:

"Model: \"sequential\""

Смотрите также

  • слой Conv1D,
    который создает одномерную свертку
  • слой Conv3D,
    который создает трехмерную свертку
  • слой Conv2DTranspose,
    который выполняет обратную свертку
  • слой MaxPooling2D,
    который выполняет двумерную субдискретизацию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить