Spec-Zone.ru › TensorFlow 2.3

tf.keras.layers.MaxPool2D

Просмотр исходного кода на GitHub

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

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

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

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" имеет размерность (число строк или столбцов) output_shape = (input_shape - pool_size + 1) / strides)

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

Например, для шага (1,1) и падинга "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)>

Например, для шага (2,2) и падинга "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)

Например, для шага (1,1) и падинга "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" добавляет заполнение таким образом, что если шаг равен 1, размер выходных данных такой же, как размер входных данных.
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.3/api_docs/python/tf/keras/layers/MaxPool2D

Spec-Zone.ru

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