tf.nn.max_pool2d
Выполняет максимальную пулинг-операцию над 2D-пространственными данными, например изображениями.
tf.nn.max_pool2d(
input, ksize, strides, padding, data_format='NHWC', name=None
)
Это более специализированная версия tf.nn.max_pool, в которой входной тензор имеет 4 измерения и представляет 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 | Необязательное имя операции. |
| Возвращает | |
|---|---|
Tensor в формате, заданном параметром data_format. Тензор выходных данных после максимальной пулинг-операции. |
| Вызывает исключения | |
|---|---|
ValueError | Если используется явное дополнение с data_format='NCHW_VECT_C'. |
© 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/api_docs/python/tf/nn/max_pool2d