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

Слой Conv3D

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

Синтаксис

tf.keras.layers.Conv3D( filters, kernel_size, strides=(1, 1, 1), padding="valid", data_format=None, dilation_rate=(1, 1, 1), groups=1, activation=None, use_bias=True, kernel_initializer="glorot_uniform", bias_initializer="zeros", kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None, **kwargs )

Пример

Давайте создадим слой Conv3D с 8 фильтрами и ядром размера 3×3×3 и применим его к входному тензору формы (1, 4, 4, 4, 1):

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.Conv3D(filters=8, kernel_size=(3, 3, 3)) t = tf.constant([[[[[1.0], [2.0], [3.0], [4.0]], [[5.0], [6.0], [7.0], [8.0]], [[9.0], [10.0], [11.0], [12.0]], [[13.0], [14.0], [15.0], [16.0]]]]]) res = layer(t) print(res.shape)

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

(1, 2, 2, 2, 8)

Пример

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

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.Conv3D(filters=4, kernel_size=(2, 2, 2), strides=(2, 2, 2)) t = tf.constant([[[[[1.0], [2.0], [3.0], [4.0]], [[5.0], [6.0], [7.0], [8.0]], [[9.0], [10.0], [11.0], [12.0]], [[13.0], [14.0], [15.0], [16.0]]]]]) res = layer(t) print(res.shape)

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

(1, 2, 2, 2, 4)

Пример

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

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.Conv3D( filters=2, kernel_size=(3, 3, 3), padding="same", activation="relu" ) t = tf.constant([[[[[1.0], [2.0], [3.0], [4.0]], [[5.0], [6.0], [7.0], [8.0]], [[9.0], [10.0], [11.0], [12.0]], [[13.0], [14.0], [15.0], [16.0]]]]]) res = layer(t) print(res.shape)

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

(1, 4, 4, 4, 2)

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

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