Функция nn.avg_pool2d
Функция avg_pool2d применяется к четырехмерному тензору
и выполняет операцию усредняющего пулинга над пространственными
размерами. Первым параметром передается входной тензор формы
[batch, height, width, channels]. Вторым параметром
задается размер окна пулинга ksize. Третьим параметром
передается шаг смещения окна strides. Четвертым -
строка padding, определяющая тип дополнения
('VALID' или 'SAME').
Синтаксис
tf.nn.avg_pool2d(input, ksize, strides, padding, [data_format])
Пример
Давайте применим усредняющий пулинг к тензору
с окном 2 на 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_pool2d(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)
Пример
Давайте сравним режимы дополнения 'VALID' и
'SAME' на тензоре с нечетными размерами:
import tensorflow as tf
t = tf.constant([[[[1], [2], [3]],
[[4], [5], [6]],
[[7], [8], [9]]]], dtype=tf.float32)
res_valid = tf.nn.avg_pool2d(t, ksize=2, strides=1, padding='VALID')
res_same = tf.nn.avg_pool2d(t, ksize=2, strides=1, padding='SAME')
print(res_valid)
print(res_same)
Результат выполнения кода:
tf.Tensor(
[[[[3.]
[4.]]
[[6.]
[7.]]]], shape=(1, 2, 2, 1), dtype=float32)
tf.Tensor(
[[[[3.]
[4.]
[4.5]]
[[6.]
[7.]
[7.5]]
[[7.5]
[8.5]
[9.]]]], shape=(1, 3, 3, 1), dtype=float32)
Пример
Давайте применим усредняющий пулинг к тензору с тремя каналами:
import tensorflow as tf
t = tf.constant([[[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]]]], dtype=tf.float32)
res = tf.nn.avg_pool2d(t, ksize=2, strides=1, padding='VALID')
print(res)
Результат выполнения кода:
tf.Tensor(
[[[[5.5 6.5 7.5]]]], shape=(1, 1, 1, 3), dtype=float32)
Смотрите также
-
функцию
avg_pool,
которая выполняет усредняющий пулинг для произвольной размерности -
функцию
max_pool2d,
которая выполняет максимальный пулинг над изображениями -
функцию
conv2d,
которая выполняет двумерную свертку над изображениями -
функцию
dropout,
которая применяет dropout к элементам тензора