tf.keras.layers.MaxPool2D
| Просмотр исходного кода на GitHub |
Операция максимального пулинга для 2D пространственных данных.
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