Класс AveragePooling1D
Класс AveragePooling1D применяется к временным рядам
и последовательностям для уменьшения их длины.
Слой разбивает входные данные на окна заданного размера
и вычисляет среднее значение внутри каждого окна.
Первым параметром передается размер пулинг-окна pool_size,
вторым - шаг strides,
третьим - тип заполнения padding.
Синтаксис
tf.keras.layers.AveragePooling1D(
pool_size=2,
strides=None,
padding='valid',
data_format=None
)
Пример
Давайте создадим слой усредняющего пулинга
с размером окна 2 и применим его к тензору:
import tensorflow as tf
t = tf.constant([[[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]]])
layer = tf.keras.layers.AveragePooling1D(pool_size=2)
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[1.5]
[3.5]
[5.5]]], shape=(1, 3, 1), dtype=float32)
Пример
Давайте изменим шаг пулинга на 3
и посмотрим, как изменится результат:
import tensorflow as tf
t = tf.constant([[[1.0], [2.0], [3.0], [4.0], [5.0], [6.0]]])
layer = tf.keras.layers.AveragePooling1D(pool_size=2, strides=3)
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[1.5]
[4.5]]], shape=(1, 2, 1), dtype=float32)
Пример
Давайте применим слой с заполнением same,
чтобы сохранить размерность выхода:
import tensorflow as tf
t = tf.constant([[[1.0], [2.0], [3.0], [4.0], [5.0]]])
layer = tf.keras.layers.AveragePooling1D(pool_size=2, padding='same')
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[1.5]
[3.5]
[5.0]]], shape=(1, 3, 1), dtype=float32)
Смотрите также
-
класс
MaxPooling1D,
который выполняет максимальный пулинг над одномерными данными -
класс
GlobalAveragePooling1D,
который усредняет всю последовательность целиком -
класс
AveragePooling2D,
который выполняет усредняющий пулинг над двумерными данными -
класс
Conv1D,
который выполняет одномерную свертку над последовательностями