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

Класс GlobalAveragePooling2D

Слой GlobalAveragePooling2D применяется к четырехмерным тензорам формы (batch, height, width, channels) и усредняет значения по пространственным измерениям height и width. На выходе получается тензор формы (batch, channels). Первый параметр data_format задает порядок измерений каналов и может принимать значения 'channels_last' или 'channels_first'. Второй параметр keepdims определяет, сохранять ли усредненные измерения с размером 1.

Синтаксис

tf.keras.layers.GlobalAveragePooling2D( data_format=None, keepdims=False, **kwargs )

Пример

Давайте применим слой к тензору формы (1, 2, 3, 1) и получим усредненное значение:

import tensorflow as tf t = tf.constant([[[[1], [2], [3]], [[4], [5], [6]]]]) layer = tf.keras.layers.GlobalAveragePooling2D() res = layer(t) print(res)

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

tf.Tensor([[3.5]], shape=(1, 1), dtype=float32)

Пример

Давайте обработаем тензор с тремя каналами и получим вектор из трех средних значений:

import tensorflow as tf t = tf.constant([ [ [[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]] ] ]) layer = tf.keras.layers.GlobalAveragePooling2D() res = layer(t) print(res)

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

tf.Tensor([[5.5 6.5 7.5]], shape=(1, 3), dtype=float32)

Пример

Давайте передадим параметр keepdims=True, чтобы сохранить пространственные измерения:

import tensorflow as tf t = tf.constant([ [ [[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]] ] ]) layer = tf.keras.layers.GlobalAveragePooling2D(keepdims=True) res = layer(t) print(res)

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

tf.Tensor([[[[5.5 6.5 7.5]]]], shape=(1, 1, 1, 3), dtype=float32)

Пример

Давайте используем слой внутри модели Keras после сверточного слоя:

import tensorflow as tf model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(4, 4, 3)), tf.keras.layers.Conv2D(2, (3, 3), activation='relu'), tf.keras.layers.GlobalAveragePooling2D(), tf.keras.layers.Dense(1) ]) res = model(tf.ones((1, 4, 4, 3))) print(res)

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

tf.Tensor([[-0.05478583]], shape=(1, 1), dtype=float32)

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

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