Функция nn.max_pool2d
Функция nn.max_pool2d применяется к тензору
для выполнения операции максимального пулинга
над двумерными данными. Первым параметром
передается входной тензор, вторым - размер
пулирующего окна ksize. Третьим параметром
задается шаг strides, четвертым - тип
дополнения padding.
Синтаксис
tf.nn.max_pool2d(input, ksize, strides, padding)
Пример
Давайте применим максимальный пулинг к тензору
с формой 4x4 и окном 2x2:
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)
t = tf.reshape(t, [1, 4, 4, 1])
res = tf.nn.max_pool2d(t, ksize=2, strides=2, padding='VALID')
print(res)
Результат выполнения кода:
tf.Tensor(
[[[[ 6.]
[ 8.]]
[[14.]
[16.]]]], shape=(1, 2, 2, 1), dtype=float32)
Пример
Давайте применим максимальный пулинг с дополнением
SAME:
import tensorflow as tf
t = tf.constant([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
], dtype=tf.float32)
t = tf.reshape(t, [1, 3, 3, 1])
res = tf.nn.max_pool2d(t, ksize=2, strides=1, padding='SAME')
print(res)
Результат выполнения кода:
tf.Tensor(
[[[[5.]
[6.]
[6.]]
[[8.]
[9.]
[9.]]
[[8.]
[9.]
[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],
[13, 14, 15, 16, 17, 18],
[19, 20, 21, 22, 23, 24],
[25, 26, 27, 28, 29, 30],
[31, 32, 33, 34, 35, 36]
], dtype=tf.float32)
t = tf.reshape(t, [1, 6, 6, 1])
res = tf.nn.max_pool2d(t, ksize=2, strides=3, padding='VALID')
print(res)
Результат выполнения кода:
tf.Tensor(
[[[[ 8.]
[10.]]
[[32.]
[34.]]]], shape=(1, 2, 2, 1), dtype=float32)
Смотрите также
-
функцию
max_pool,
которая выполняет максимальный пулинг -
функцию
max_pool1d,
которая выполняет максимальный пулинг для одномерных данных -
функцию
avg_pool2d,
которая выполняет усредняющий пулинг -
функцию
conv2d,
которая выполняет двумерную свертку