tf.nn.max_pool2d
| Просмотреть исходный код на GitHub |
Выполняет максимальное пулинговое (подвыборку) на 2D пространственных данных, таких как изображения.
tf.nn.max_pool2d(
input, ksize, strides, padding, data_format='NHWC', name=None
)
Это более специфическая версия tf.nn.max_pool, где тензор входных данных является 4D, представляющим 2D пространственные данные, такие как изображения. Использование этих API эквивалентно
Осуществляет усреднение входных изображений вдоль их пространственных измерений (высота и ширина), выбирая максимальное значение в окне входных данных, определенном ksize. Окно сдвигается на strides по каждому измерению.
Например, для strides=(2, 2) и padding=VALID окна, которые выходят за пределы входных данных, не включаются в выходные данные:
x = tf.constant([[1., 2., 3., 4.],
[5., 6., 7., 8.],
[9., 10., 11., 12.]])
# Add the `batch` and `channels` dimensions.
x = x[tf.newaxis, :, :, tf.newaxis]
result = tf.nn.max_pool2d(x, ksize=(2, 2), strides=(2, 2),
padding="VALID")
result[0, :, :, 0]
<tf.Tensor: shape=(1, 2), dtype=float32, numpy=
array([[6., 8.]], dtype=float32)>
С padding=SAME, мы получаем:
x = tf.constant([[1., 2., 3., 4.],
[5., 6., 7., 8.],
[9., 10., 11., 12.]])
x = x[tf.newaxis, :, :, tf.newaxis]
result = tf.nn.max_pool2d(x, ksize=(2, 2), strides=(2, 2),
padding='SAME')
result[0, :, :, 0]
<tf.Tensor: shape=(2, 2), dtype=float32, numpy=
array([[ 6., 8.],
[10.,12.]], dtype=float32)>
Мы также можем явно указать заполнение. Следующий пример добавляет заполнение шириной 1 со всех сторон (верх, низ, слева, справа):
x = tf.constant([[1., 2., 3., 4.],
[5., 6., 7., 8.],
[9., 10., 11., 12.]])
x = x[tf.newaxis, :, :, tf.newaxis]
result = tf.nn.max_pool2d(x, ksize=(2, 2), strides=(2, 2),
padding=[[0, 0], [1, 1], [1, 1], [0, 0]])
result[0, :, :, 0]
<tf.Tensor: shape=(2, 3), dtype=float32, numpy=
array([[ 1., 3., 4.],
[ 9., 11., 12.]], dtype=float32)>
Для получения дополнительных примеров и деталей см. tf.nn.max_pool.
| Аргументы | |
|---|---|
input | 4-мерный Tensor формата, указанного data_format. |
ksize | Целое число или список ints длиной 1, 2 или 4. Размер окна для каждого измерения тензора входных данных. Если указано только одно целое число, то применяется одно и то же окно для всех 4 измерений. Если указаны два, то используются для измерений H, W, а размер окна для измерений N, C устанавливается равным 1. |
strides | Целое число или список ints длиной 1, 2 или 4. Шаг скользящего окна для каждого измерения тензора входных данных. Если указано только одно целое число, то применяется один и тот же шаг для всех 4 измерений. Если указаны два, то используются для измерений H, W, а шаг для измерений N, C устанавливается равным 1. |
padding | Либо string "SAME" или "VALID" указывающий тип алгоритма заполнения, или список, указывающий явное заполнение в начале и конце каждого измерения. Смотрите здесь для получения дополнительной информации. При использовании явного заполнения и data_format "NHWC", оно должно быть в форме [[0, 0], [pad_top, pad_bottom], [pad_left, pad_right], [0, 0]]. При использовании явного заполнения и data_format "NCHW", оно должно быть в форме [[0, 0], [0, 0], [pad_top, pad_bottom], [pad_left, pad_right]]. При использовании явного заполнения, размер заполнения не может быть больше размера скользящего окна. |
data_format | Строка. Поддерживаются 'NHWC', 'NCHW' и 'NCHW_VECT_C'. |
name | Необязательное имя операции. |
| Возвращает | |
|---|---|
4-мерный тензор Tensor формата, указанного data_format. Максимально пулинговый тензор выходных данных. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/nn/max_pool2d