Spec-Zone.ru › TensorFlow 2.4

tf.keras.layers.MaxPool2D

Просмотреть исходный код на GitHub

Операция максимального пулинга для 2D пространственных данных.

Наследуется от: Layer, Module

Просмотр псевдонимов

Основные псевдонимы

tf.keras.layers.MaxPooling2D

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения дополнительной информации.

tf.compat.v1.keras.layers.MaxPool2D, tf.compat.v1.keras.layers.MaxPooling2D

tf.keras.layers.MaxPool2D(
    pool_size=(2, 2), strides=None, padding='valid', data_format=None,
    **kwargs
)

Уменьшает размерность входного представления, выбирая максимальное значение в окне, определённом pool_size для каждого измерения по оси признаков. Окно сдвигается на strides в каждом измерении. Результирующая форма выходных данных при использовании опции "valid" padding: output_shape = (input_shape - pool_size + 1) / strides)

Результирующая форма выходных данных при использовании опции "same" padding: output_shape = input_shape / strides

Например, для stride=(1,1) и padding="valid":

x = tf.constant([[1., 2., 3.],
                 [4., 5., 6.],
                 [7., 8., 9.]])
x = tf.reshape(x, [1, 3, 3, 1])
max_pool_2d = tf.keras.layers.MaxPooling2D(pool_size=(2, 2),
   strides=(1, 1), padding='valid')
max_pool_2d(x)
<tf.Tensor: shape=(1, 2, 2, 1), dtype=float32, numpy=
  array([[[[5.],
           [6.]],
          [[8.],
           [9.]]]], dtype=float32)>

Например, для stride=(2,2) и padding="valid":

x = tf.constant([[1., 2., 3., 4.],
                 [5., 6., 7., 8.],
                 [9., 10., 11., 12.]])
x = tf.reshape(x, [1, 3, 4, 1])
max_pool_2d = tf.keras.layers.MaxPooling2D(pool_size=(2, 2),
   strides=(1, 1), padding='valid')
max_pool_2d(x)
<tf.Tensor: shape=(1, 2, 3, 1), dtype=float32, numpy=
  array([[[[ 6.],
           [ 7.],
           [ 8.]],
          [[10.],
           [11.],
           [12.]]]], dtype=float32)>

Пример использования:

input_image = tf.constant([[[[1.], [1.], [2.], [4.]],
                           [[2.], [2.], [3.], [2.]],
                           [[4.], [1.], [1.], [1.]],
                           [[2.], [2.], [1.], [4.]]]])
output = tf.constant([[[[1], [0]],
                      [[0], [1]]]])
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2),
   input_shape=(4,4,1)))
model.compile('adam', 'mean_squared_error')
model.predict(input_image, steps=1)
array([[[[2.],
         [4.]],
        [[4.],
         [4.]]]], dtype=float32)

Например, для stride=(1,1) и padding="same":

x = tf.constant([[1., 2., 3.],
                 [4., 5., 6.],
                 [7., 8., 9.]])
x = tf.reshape(x, [1, 3, 3, 1])
max_pool_2d = tf.keras.layers.MaxPooling2D(pool_size=(2, 2),
   strides=(1, 1), padding='same')
max_pool_2d(x)
<tf.Tensor: shape=(1, 3, 3, 1), dtype=float32, numpy=
  array([[[[5.],
           [6.],
           [6.]],
          [[8.],
           [9.],
           [9.]],
          [[8.],
           [9.],
           [9.]]]], dtype=float32)>
Аргументы
pool_size целое число или кортеж из 2 целых чисел, размер окна, по которому нужно взять максимальное значение. (2, 2) будет брать максимальное значение из окна 2x2. Если указано только одно целое число, то длина окна будет одинаковой для обоих измерений.
strides Целое число, кортеж из 2 целых чисел или None. Значения шагов. Определяет, насколько сдвигается окно пулинга на каждом шаге пулинга. Если None, то по умолчанию будет pool_size.
padding Одно из "valid" или "same" (регистр не учитывается). "valid" означает отсутствие заполнения. "same" приводит к равномерному дополнению слева/справа или сверху/снизу входа, таким образом, чтобы выходные высота/ширина были такими же, как у входных данных.
data_format Строка, одна из channels_last (по умолчанию) или channels_first. Порядок измерений во входных данных. channels_last соответствует входным данным с формой (batch, height, width, channels), а channels_first соответствует входным данным с формой (batch, channels, height, width). По умолчанию используется значение image_data_format в файле конфигурации Keras по адресу ~/.keras/keras.json. Если оно никогда не устанавливалось, то будет "channels_last".

Форма входных данных:

  • Если data_format='channels_last': 4D тензор с формой (batch_size, rows, cols, channels).
  • Если data_format='channels_first': 4D тензор с формой (batch_size, channels, rows, cols).

Форма выходных данных:

  • Если data_format='channels_last': 4D тензор с формой (batch_size, pooled_rows, pooled_cols, channels).
  • Если data_format='channels_first': 4D тензор с формой (batch_size, channels, pooled_rows, pooled_cols).
Возвращаемое значение
4D тензор, представляющий максимальные значения пулинга. См. выше для формы выходных данных.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/layers/MaxPool2D

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API