Функция nn.avg_pool
Функция nn.avg_pool применяется к тензору и выполняет операцию усредняющего пулирования. Первым параметром передаётся входной тензор, вторым - размер окна пулирования ksize, третьим - шаг перемещения окна strides. Также можно указать тип заполнения границ padding и формат данных data_format. Функция возвращает тензор с уменьшенными пространственными размерами.
Синтаксис
tf.nn.avg_pool(value, ksize, strides, padding, [data_format])
Пример
Давайте применим усредняющее пулирование к двумерному тензору с окном 2 и шагом 2:
import tensorflow as tf
t = tf.constant([[[[1], [2], [3], [4]],
[[5], [6], [7], [8]],
[[9], [10], [11], [12]],
[[13], [14], [15], [16]]]], dtype=tf.float32)
res = tf.nn.avg_pool(t, ksize=2, strides=2, padding='VALID')
print(res)
Результат выполнения кода:
tf.Tensor([[[[ 3.5]
[ 5.5]]
[[11.5]
[13.5]]]], shape=(1, 2, 2, 1), dtype=float32)
Пример
Давайте применим усредняющее пулирование с заполнением SAME:
<+python+>
import tensorflow as tf
t = tf.constant([[[[1], [2], [3]],
[[4], [5], [6]],
[[7], [8], [9]]]], dtype=tf.float32)
res = tf.nn.avg_pool(t, ksize=2, strides=1, padding='SAME')
print(res)
<-python+>
Результат выполнения кода:
tf.Tensor([[[[3.]
[4.]]
[[6.]
[7.]]]], shape=(1, 2, 2, 1), dtype=float32)
Смотрите также
-
функцию
max_pool,
которая выполняет максимальное пулирование -
функцию
avg_pool2d,
которая выполняет усредняющее пулирование для 2D данных -
функцию
conv2d,
которая выполняет двумерную свёртку -
функцию
dropout,
которая применяет dropout к тензору