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

Класс MaxPooling3D

Класс MaxPooling3D применяется к трехмерным данным, например, к видеопоследовательностям или объемным изображениям. Слой разбивает входной тензор на окна заданного размера и выбирает максимальное значение в каждом окне. Первым параметром передается размер пулинг-окна pool_size, вторым - шаг смещения окна strides. Также можно указать тип заполнения границ padding и тип данных dtype.

Синтаксис

tf.keras.layers.MaxPooling3D( pool_size=(2, 2, 2), strides=None, padding="valid", data_format=None, dtype=None )

Пример

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

import tensorflow as tf t = tf.constant([[[[1], [2], [3], [4]], [[5], [6], [7], [8]], [[9], [10], [11], [12]], [[13], [14], [15], [16]]], [[[17], [18], [19], [20]], [[21], [22], [23], [24]], [[25], [26], [27], [28]], [[29], [30], [31], [32]]], [[[33], [34], [35], [36]], [[37], [38], [39], [40]], [[41], [42], [43], [44]], [[45], [46], [47], [48]]], [[[49], [50], [51], [52]], [[53], [54], [55], [56]], [[57], [58], [59], [60]], [[61], [62], [63], [64]]]]) layer = tf.keras.layers.MaxPooling3D(pool_size=(2, 2, 2)) res = layer(t) print(res.shape) print(res)

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

(1, 2, 2, 2, 1) tf.Tensor( [[[[[ 6.] [ 8.]] [[14.] [16.]]] [[[38.] [40.]] [[46.] [48.]]]]], shape=(1, 2, 2, 2, 1), dtype=float32)

Пример

Давайте применим слой MaxPooling3D с шагом 2 на 2 на 2 и заполнением границ same:

<+python+> import tensorflow as tf t = tf.constant([[[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9]]]]) layer = tf.keras.layers.MaxPooling3D( pool_size=(2, 2, 2), strides=(2, 2, 2), padding="same" ) res = layer(t) print(res.shape) print(res) <-python+>

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

(1, 2, 2, 2, 1) tf.Tensor( [[[[[5.] [6.]] [[8.] [9.]]] [[[5.] [6.]] [[8.] [9.]]]]], shape=(1, 2, 2, 2, 1), dtype=float32)

Пример

Давайте создадим модель с входным слоем Input, слоем Conv3D и слоем MaxPooling3D для обработки объемных данных:

import tensorflow as tf model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(8, 8, 8, 1)), tf.keras.layers.Conv3D(2, kernel_size=(3, 3, 3), activation="relu"), tf.keras.layers.MaxPooling3D(pool_size=(2, 2, 2)) ]) print(model.input_shape) print(model.output_shape)

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

(None, 8, 8, 8, 1) (None, 3, 3, 3, 2)

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

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