Класс MaxPooling1D
Класс MaxPooling1D выполняет операцию
максимального пулинга над временными рядами
(одномерными последовательностями). Слой
скользит окном заданного размера по временной
оси и выбирает максимальное значение в каждом
окне. Первым параметром передается размер
окна пулинга pool_size. Вторым
параметром можно передать шаг окна
strides. Третьим параметром задается
тип заполнения краев padding.
Синтаксис
tf.keras.layers.MaxPooling1D(
pool_size=2,
strides=None,
padding="valid",
data_format=None
)
Пример
Давайте создадим слой максимального пулинга
с окном 2 и применим его к тензору
размером 5 элементов:
import tensorflow as tf
t = tf.constant([[[1], [2], [3], [4], [5]]], dtype=tf.float32)
layer = tf.keras.layers.MaxPooling1D(pool_size=2))
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[2.]
[4.]]], shape=(1, 2, 1), dtype=float32)
Пример
Давайте применим слой с окном 2 и
шагом 1 к тензору из 6
элементов:
import tensorflow as tf
t = tf.constant([[[1], [2], [3], [4], [5], [6]]], dtype=tf.float32)
layer = tf.keras.layers.MaxPooling1D(pool_size=2, strides=1)
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[2.]
[3.]
[4.]
[5.]
[6.]]], shape=(1, 5, 1), dtype=float32)
Пример
Давайте используем заполнение same,
чтобы сохранить размерность временной оси:
import tensorflow as tf
t = tf.constant([[[1], [2], [3], [4], [5]]], dtype=tf.float32)
layer = tf.keras.layers.MaxPooling1D(pool_size=2, padding="same")
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[2.]
[4.]
[5.]]], shape=(1, 3, 1), dtype=float32)
Пример
Давайте применим слой к тензору с несколькими каналами:
import tensorflow as tf
t = tf.constant([[[1, 2], [3, 4], [5, 6], [7, 8]]], dtype=tf.float32)
layer = tf.keras.layers.MaxPooling1D(pool_size=2)
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[3. 4.]
[7. 8.]]], shape=(1, 2, 2), dtype=float32)
Смотрите также
-
класс
Conv1D,
который выполняет одномерную свертку -
класс
AveragePooling1D,
который выполняет усредняющий пулинг -
класс
GlobalMaxPooling1D,
который возвращает максимум по всей оси -
класс
MaxPooling2D,
который выполняет пулинг для изображений