Слой GlobalAveragePooling1D
Слой GlobalAveragePooling1D применяется к последовательностям
и вычисляет среднее значение по временной оси для каждого канала.
На вход слой принимает трехмерный тензор формы
(batch_size, steps, features), а на выходе возвращает
двумерный тензор формы (batch_size, features).
Слой не имеет обучаемых параметров.
Параметр data_format задает порядок осей во входном
тензоре. По умолчанию используется значение channels_last,
что соответствует форме (batch, steps, features).
Синтаксис
tf.keras.layers.GlobalAveragePooling1D(data_format='channels_last')
Пример
Давайте создадим слой глобального усреднения и применим его к тензору с последовательностью:
import tensorflow as tf
layer = tf.keras.layers.GlobalAveragePooling1D()
t = tf.constant([[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]])
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor([[3. 4.]], shape=(1, 2), dtype=float32)
Значения вычислены как среднее по шагам:
(1+3+5)/3 = 3 и (2+4+6)/3 = 4.
Пример
Давайте применим слой к тензору с несколькими объектами в батче:
Результат выполнения кода:
tf.Tensor(
[[2. 3.]
[6. 7.]], shape=(2, 2), dtype=float32)
Пример
Давайте используем слой внутри модели Keras для классификации последовательностей:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Input(shape=(5, 3)),
tf.keras.layers.GlobalAveragePooling1D(),
tf.keras.layers.Dense(1, activation='sigmoid')
])
model.summary()
Результат выполнения кода:
"Model: \"sequential\"
_________________________________________________
Layer (type) Output Shape Param #
=================================================
input_layer (InputLayer) [(None, 5, 3)] 0
global_average_pooling1d (None, 3) 0
dense (Dense) (None, 1) 4
=================================================
Total params: 4 (16.00 B)
Trainable params: 4 (16.00 B)
Non-trainable params: 0 (0.00 B)"
Смотрите также
-
слой
GlobalAveragePooling2D,
который выполняет глобальное усреднение для двумерных данных -
слой
GlobalMaxPooling1D,
который выполняет глобальное взятие максимума -
слой
AveragePooling1D,
который выполняет локальное усреднение по окну -
слой
Flatten,
который преобразует многомерный тензор в вектор